# 抽出された業務ルール

下記は `legacy/` のコードから機械抽出したもの。
コードの定数・コメント・JavaDoc から業務ルールを取り出している。
**実際の運用では、これを Claude に渡して詳細補完するのが第 2 段階**。


## `OrderService.java` から抽出

### 定数(閾値・上限・税率など)

| 名前 | 値 | 業務上の意味(コメント由来) |
|------|-----|---------------------------|
| `SHIPPING_REMOTE` | `new BigDecimal("1500")` | 送料は離島が高い ── 北海道・沖縄は 1500 円、それ以外 800 円 |
| `SHIPPING_NORMAL` | `new BigDecimal("800")` | (コメントなし) |
| `SHIPPING_FREE_THRESHOLD` | `new BigDecimal("10000")` | 小計が 10,000 円以上で送料無料 |
| `MEMBER_DISCOUNT_RATE` | `new BigDecimal("0.05")` | 会員割引: 5% |
| `BULK_DISCOUNT_THRESHOLD` | `new BigDecimal("30000")` | 大口割引(会員割引適用後の小計が 30,000 円以上で 3% 引き) |
| `BULK_DISCOUNT_RATE` | `new BigDecimal("0.03")` | (コメントなし) |
| `TAX_RATE` | `new BigDecimal("0.10")` | 消費税率(2026 年現在 10%) |

### JavaDoc / DocString からの仕様

> 注文の請求書を計算する。  
> 業務ルール:  
>   1. 小計 = 数量 × 単価  
>   2. 送料 (北海道・沖縄/その他、10000 円以上で無料)  
>   3. 会員割引 (5%, 切り捨て)  
>   4. 大口割引 (会員割引後 30000 円以上で 3%, 切り捨て)  
>   5. 消費税 = 税前合計 × 10% (切り捨て)


## `PaymentService.cs` から抽出

### 定数(閾値・上限・税率など)

| 名前 | 値 | 業務上の意味(コメント由来) |
|------|-----|---------------------------|
| `FAILURE_THRESHOLD` | `3` | 決済成功率の判定: 過去 24 時間以内に 3 回以上失敗していると要確認 |
| `FAILURE_WINDOW_HOURS` | `24` | (コメントなし) |
| `SINGLE_PAYMENT_LIMIT` | `500_000m` | 1 回の決済上限: 50 万円(これ以上は別途承認フロー) |
| `MONTHLY_LIMIT_B2B` | `5_000_000m` | 月次累計上限: 500 万円(B2B 顧客のみ、それ以外は 100 万円) |
| `MONTHLY_LIMIT_RETAIL` | `1_000_000m` | (コメントなし) |
| `RETRY_INTERVAL_MINUTES` | `15` | 自動再試行の間隔(分) |
| `MAX_RETRIES` | `3` | (コメントなし) |
| `FEE_RATE` | `0.036m` | 決済手数料: 3.6% + 30 円(クレジットカード) |
| `FEE_FIXED` | `30m` | (コメントなし) |


---

**抽出時間**: 0.6 ms
**抽出した定数**: 16 個
**処理ファイル**: 2 個