Skip to content

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 enumbackend/internal/adapters/graph/schema/recommended_scenarios.gql (RecommendationSurface.EVENT_DETAIL)

3. 既知の課題 / 未実装項目 ​

  • [ ] EventDetailStrategy.Aggregate を実装する (event_score = max × time_proximity、spec §3.3)
  • [ ] EventDetailStrategy.PreFilter を実装する (EventScenarios で絞り込み、開催日時で更にフィルタ)
  • [ ] adminEventDetailScenarios admin query を足す
  • [ ] イベント詳細画面 mobile / web の resolver から呼び出す