課金履歴:集計・amount 算出ロジックの重複(生成API / 再計算)

優先度: 低 コード重複 リファクタリング

概要

解消済みの論点(2026-06-08)

  • 一括生成 API(route.ts)と再計算(actions/billing-record/recalculate-billing-record.ts)は、いずれも catch-all 集計・Asia/Tokyo 月境界・DateTime へ統一され一致。
  • 区分1 は 「区分2/3 以外すべて(renovation 含む)」を正と確定。用語集・機能ドキュメントも更新済み(renovation 除外を実装していた lib/billing-record/calculate.ts は削除)。

残る論点は 集計・amount 算出ロジックが一括生成 API と再計算アクションに重複実装されていること。 ほぼ同等のコード(区分集計の reduceBigNumber による amount 計算)が2箇所にあり、片方だけ直すと再びズレる保守上のリスクがある。

影響

対応案

区分集計(catch-all)と amount 算出を共有関数へ括り出し、一括生成 API・再計算の両経路から呼ぶ。 編集(update-billing-record)の amount 算出は既に lib/billing-record/effective.tscalculateBillingAmount を使用しているため、これに揃える方向で検討する。

先送りとした理由

重複はあるが両経路は現状一致しており、機能的な不具合ではないため。動作確認・仕様確定を優先し、リファクタリングは後続で行う。

優先度

低。現状は両経路が一致しており不具合はない。集計式・区分を変更する改修の前に共有関数へ括り出すのが望ましい。

関連