• erio's avatar
    refactor: merge RecordUsage and RecordUsageWithLongContext into shared core · 58b26cb4
    erio authored
    - Extract recordUsageCore with recordUsageOpts for parameterized differences
    - RecordUsage (276 lines) → thin wrapper (~40 lines)
    - RecordUsageWithLongContext (251 lines) → thin wrapper (~20 lines)
    - Split billing logic into calculateSoraMediaCost, calculateImageCost,
      calculateTokenCost sub-functions
    - Extract buildRecordUsageLog for usage log construction
    - Net reduction: -79 lines, eliminated ~170 lines of duplication
    58b26cb4
gateway_service.go 300 KB