Appearance
SC-015 機種台数変化一覧ショートコード
概要
- 指定期間・ホールにおいて、
db_daily_article_kishu_count_deltaに登録された台数前日比変化を一覧表示する。 period_start・period_end(期間)・hall(ホール名)を属性で受け取り、KishuCountDeltaListConverterでバリデーション・DTO 変換後、KishuCountDeltaListController→KishuCountDeltaListService経由でデータを取得、Twig で HTML にレンダリングする。- 期間は最大 366 日(
period_start≤period_endかつ差が 366 日以内)。SC-010 と同型。 - 表示対象は 変化検出済み行のみ(
count_delta_vs_previous_day !== 0で DB に存在する行)。前後同数・前日ホール欠損は行が無いため表示されない。新台(+N)・撤去(-N)・既存機種の増減は登録・表示される(issue-2070-kishu-count-delta-design.md 参照)。
外部インターフェース
ショートコードタグ
- タグ名:
[kishu_count_delta_list] - 入力例:
[kishu_count_delta_list period_start="20240101" period_end="20240131" hall="アイランド秋葉原"]
属性一覧
| 属性 | 役割 | 必須 |
|---|---|---|
period_start | 集計開始日(YYYY-MM-DD / YYYY/MM/DD / YYYYMMDD 形式、2020年〜当年) | ○ |
period_end | 集計終了日(同上、period_start 以降かつ 366 日以内) | ○ |
hall | 対象ホール名(HallEnum 対応) | ○ |
出力
| 列 | 内容 |
|---|---|
| 日付 | period_key(表示は Y年n月j日 形式) |
| 機種名 | kishu |
| 前日比 | 符号付き差分(例: +2台、-1台) |
- ソート:
period_keyDESC →kishuASC(ADM-016 一覧と同順) - 0 件: 空状態メッセージ(
KishuCountDeltaListMessages::NO_DATA) - 読取上限: 2000 行(超過時は先頭 2000 行のみ表示。Repository 定数で制御)
エラー
| 条件 | ユーザー向け挙動 | メッセージ / ログ |
|---|---|---|
period_start / period_end 未指定または空 | ErrorHandler の返す文言 | ValidationException(Messages::VALIDATION_DATE_REQUIRED) |
| 日付が不正な形式・範囲外 | 同上 | ValidationException(Messages::VALIDATION_DATE_INVALID_*) |
period_start > period_end | 同上 | ValidationException(KishuCountDeltaListMessages::PERIOD_ORDER) |
| 期間が 366 日超 | 同上 | ValidationException(KishuCountDeltaListMessages::PERIOD_MAX_DAYS) |
hall 未指定または不正値 | 同上 | ValidationException(HallEnum 照合失敗) |
コントローラー・サービスの \Exception | ErrorHandler の返す文言 | ErrorHandler::handle_error() 経由 |
今後の更新で崩してはいけないところ(互換性契約)
公開契約(Breaking change 扱い)
- ショートコード名
kishu_count_delta_listを変更しない - 属性名
period_start/period_end/hallを変更しない