EventDetail(イベント詳細)
開催予定のイベントを見ているユーザーに、そのイベントの周辺で「似たシナリオ」を推す枠。まだ Strategy が無い stub 状態。
WARNING
Recommender.Recommend(EventDetailRequest) を呼ぶと Registry.Build が EventDetail strategy not implemented yet でエラーを返す。本番呼び出しも Admin Preview も無い。実装に手をつけるときはこの doc も更新する。
0. レコメンドの概要
| 項目 | 内容 |
|---|---|
| 入力 | EventDetailRequest{ EventID, ViewerID, Common{ K, Candidates?, ExcludeAlreadyPlayed } } |
| 出力 | Response{ Items, ModelVersion, RecommendationID } |
| mobile / web 画面 | 未定 (イベント詳細画面で「このイベントに似たシナリオ」枠を出す想定) |
| 本番経路 | ❌ resolver 未追加 |
| Admin Preview | ❌ adminEventDetailScenarios query 未追加 |
| 実装ステータス | EventDetailStrategy 未着手。registry.go が not implemented yet を返す |
1. 評価関数の設計 (spec での想定)
spec §3.3 の想定式は event_score(u, s) = max(score(u, s'), s' ∈ EventScenarios) × time_proximity(event)。
- イベントに紐づくシナリオ集合
EventScenariosのうち、user との Base Score が一番高いものを代表値にする - 開催日時が近いイベントほど
time_proximityで持ち上げる
今は Strategy.Aggregate 自体が無いのでエラーが返るだけ。FOR_YOU の Identity でフォールバックすると意図しない結果が混じるので、わざとエラーにしている。
2. 現状の実装ファイル
| 関心 | ファイル |
|---|---|
共通型 (EventDetailRequest) | backend/internal/usecase/recommendation/types.go |
| Registry の stub 分岐 | backend/internal/usecase/recommendation/surfaces/registry.go |
| Surface enum | backend/internal/adapters/graph/schema/recommended_scenarios.gql (RecommendationSurface.EVENT_DETAIL) |
3. 既知の課題 / 未実装項目
- [ ]
EventDetailStrategy.Aggregateを実装する (event_score = max × time_proximity、spec §3.3) - [ ]
EventDetailStrategy.PreFilterを実装する (EventScenarios で絞り込み、開催日時で更にフィルタ) - [ ]
adminEventDetailScenariosadmin query を足す - [ ] イベント詳細画面 mobile / web の resolver から呼び出す