Skip to content

SC-021 機種イベント期間差枚サマリーショートコード ​

概要 ​

  • 指定機種・イベント・期間について、全ホール合算の合計差枚数と台毎平均差枚数をコンパクトな表で表示する。
  • 日別記事の考察内で、特定機種が特定イベント期間にどの程度出ているかを引用するために使う。
  • 属性を受け取り、Converter でバリデーション・DTO 変換後、Controller → Service 経由でデータを取得し、View(Twig)で HTML にレンダリングする。
  • ホール指定は持たない。イベント日はいずれかのホールの event JSON に対象イベント名があれば採用し、差枚はその日にイベントが開催されたホール分だけ合算する。

外部インターフェース ​

ショートコードタグ ​

  • タグ名: [kishu_event_samai_summary]
  • 入力例:
    [kishu_event_samai_summary kishu="機種名" event="6の日" period_start="20240101" period_end="20240131"]

属性一覧 ​

属性役割必須
kishu対象機種名(文字列。機種マスタ ID ではなく表示名。SC-010 と同じ方針)○
event対象イベント名(完全一致。event=all はサポートしない)○
period_start集計開始日(YYYYMMDD / YYYY-MM-DD / YYYY/MM/DD、2020年〜当年)○
period_end集計終了日(同上、period_start 以降)○

集計仕様 ​

項目内容
イベント日の抽出LinkDayRepository::select_by_date_range で期間内の db_Link_day を取得し、対象イベント名が含まれるホールとの対(Ymd, hall)を採用する
イベント JSONホールキー配下の文字列配列、または {name: ...} オブジェクト配列(SC-020 と同じ形状)
差枚の取得DailyDataPerUnitRepository::select_daily_data_group_by_day_and_hall_and_kishu_by_ymd(ymd_list, 一致ホールの日本語名)
機種フィルタDTO の kishu_name が属性 kishu と完全一致し、かつその日にイベント開催したホールの行のみ
合計差枚数対象行の diff_coin 合計
平均差枚数合計差枚 ÷ 対象行の count 合計(台毎平均。SC-010 と同じ)。小数第 1 位に丸める
ホール属性なし。イベント開催ホールのみ合算(未開催ホールの同日データは含めない)
期間上限period_start〜period_end は 366 日以内

表示仕様 ​

要素内容
キャプション機種名 / イベント名 / 期間(Y-m-d〜Y-m-d)
列合計差枚、平均差枚、台数(任意列。SC-010 と同系のコンパクト表)
色分け合計・平均に DataVisualizationClassGenerator の差枚水準クラスを付与
0 件no-data メッセージを段落表示

見た目は period_samai_summary と同系のパネル枠・ヘッダー背景を用いる。

エラー ​

条件ユーザー向け挙動メッセージ / ログ
kishu 未指定または空ErrorHandler の返す文言ValidationException(KishuEventSamaiSummaryMessages::KISHU_REQUIRED)
event 未指定または空ErrorHandler の返す文言ValidationException(KishuEventSamaiSummaryMessages::EVENT_REQUIRED)
period_start / period_end 未指定・形式不正ErrorHandler の返す文言ValidationException(日付バリデーション)
period_start > period_endErrorHandler の返す文言ValidationException(KishuEventSamaiSummaryMessages::PERIOD_ORDER)
period_start / period_end が 366 日超ErrorHandler の返す文言ValidationException(KishuEventSamaiSummaryMessages::PERIOD_MAX_DAYS)
対象イベント日なし、または機種行なし段落テキストKishuEventSamaiSummaryMessages::NO_DATA
コントローラー・サービスの \ExceptionErrorHandler の返す文言ErrorHandler::handle_error() 経由

更新不可とみなすもの(git管理外の内容に依存し、リポジトリだけでは追従できない依存) ​

  • ショートコード名 kishu_event_samai_summary を変更しない
    • 理由: 過去投稿本文に文字列が直書きされるため
  • 属性名 kishu / event / period_start / period_end を変更しない
    • 理由: 過去投稿本文に属性名が直書きされるため