# Requirements: time_col / unit サポート

## 概要

現在の `datetime_col`（日付型限定）を拡張し、日付型・整数型の両方を受け付けられるようにする。
あわせて `unit` パラメータを追加し、何日単位で Recency を集計するかをユーザーが指定できるようにする。

## 背景

- 現在の入力はアクセスログを想定した日付カラムのみを受け付ける
- 「日付ではなく整数値（例: イベントシーケンス番号、経過日数）」を入力としたいユースケースが存在する
- アクセスログ形式（日付あり）は引き続きデフォルトのユースケースとして維持する

## ユーザーストーリー

- データアナリストとして、日付カラムを持つアクセスログをそのまま入力し、日・週・月などの粒度で Recency を計算したい
- 開発者として、すでに整数値に変換済みのシーケンスカラムをそのまま入力し、スコアを計算したい

## 機能要件

### 1. `time_col` パラメータ（`datetime_col` の拡張）

- 日付型（`datetime64`、文字列）および整数型（`int`、`float`）の両方を受け付ける
- 入力直後に整数へ正規化する（以降の内部処理は整数のみを扱う）
  - 日付型: `pd.Timestamp.toordinal()` で整数に変換
  - 整数型: そのまま `int` にキャスト
- パラメータ名は `time_col` とする
- `datetime_col` は削除する（破壊的変更）

### 2. `unit` パラメータ

- 型: `int`、デフォルト: `1`
- 意味: Recency を計算する際に何日単位でまとめるか
  - `unit=1`: 日単位（デフォルト）
  - `unit=7`: 週単位
  - `unit=30`: 月単位（近似）
  - `unit=N`: N日単位（任意の正整数）
- 内部計算: `recency = (ref_int - val_int) // unit + 1`
- カレンダー月（月ごとの日数差）への対応は対象外とする。厳密な月単位が必要なユーザーは入力前に月番号カラムを作成して `unit=1` で渡すこと

### 3. 内部正規化

- `_normalize_sequence_col(df)` プライベートメソッドを追加し、`fit()` / `transform()` の入口で一度だけ呼ぶ
- 正規化以降のすべての処理（フィルタリング・Recency 計算・期間分割）は整数で統一する
- `ref_date` に相当する参照値も同じ正規化を適用する

## 非機能要件

- 破壊的変更: `datetime_col` → `time_col`、`ref_date` → `ref` にリネームし、旧パラメータは削除する
- リリースノートと README に破壊的変更を明記する
- テスト: 日付入力・整数入力それぞれのケースをカバーするテストを追加する
- ドキュメント: README / docstring を更新し、両入力形式の使用例を記載する

## 受け入れ条件

- [ ] 日付カラムを持つアクセスログが `time_col` パラメータで正常に動作する
- [ ] 整数カラムを入力として `RecencyFrequencyScorer` が正常にスコアを計算できる
- [ ] `unit=7` を指定したとき、Recency 値が `unit=1` の場合の `// 7` になること（例: 日次 Recency が 7 なら週次 Recency は 1）
- [ ] `unit` に 0 以下の値を渡したとき `ValueError` が発生する
- [ ] リント・型チェック・テストがすべて通過する
