Feature

テーブル / POS 12 Scenarios

Table & POS Operations — UC-04 〜 UC-09

UC-04 テーブル着席登録 POS-001 · POS-002

ホールスタッフが来店グループをテーブルに着席登録し、VISITORレコードを生成して注文受付を開始する。

Background 各シナリオの共通前提
Givenスタッフは認証済みでPOS画面 /pos を表示している
Scenarios
01
Scenario · @happy-path
新規グループの着席登録
Givenスタッフは空きテーブルを選択している
When人数を入力して「着席登録」ボタンをクリックする
Then新しいVISITORレコードが生成される
Andテーブルのステータスが "seated" に更新される
And注文入力画面へ遷移する
02
Scenario · @alternative
使用中テーブルの選択
Givenスタッフは使用中のテーブルをクリックしている
Thenテーブルの現在のオーダー状況が表示される
UC-05 注文履歴確認 POS-003 · POS-004

スタッフが着席中テーブルの注文履歴・合計金額(税込)を確認する。

Background 各シナリオの共通前提
Givenスタッフは認証済みでPOS画面 /pos を表示している
And少なくとも1つのテーブルに着席グループが存在する
Scenarios
03
Scenario · @happy-path
注文履歴の表示
Givenスタッフは着席中のテーブルをクリックしている
Whenテーブル詳細パネルが開く
Then注文商品一覧・数量・金額・注文時刻が表示される
And現在の合計金額(税込 10%)が表示される
04
Scenario · @alternative
注文が存在しない場合
Givenスタッフは着席登録直後でまだ注文がないテーブルを選択している
Then「注文はまだありません」が表示される
UC-06 注文入力(POS) POS-005 · POS-006 · POS-007

スタッフがカテゴリ・商品を選択して注文を登録する。ORDERおよびORDER_ITEMレコードが生成され、キッチン画面に表示される。合計金額はサーバーサイドで算出(クライアント送信値は無視)。

Background 各シナリオの共通前提
Givenスタッフは認証済みでPOS画面 /pos を表示している
Andテーブルが着席登録済みである
Scenarios
05
Scenario · @happy-path
商品の注文登録
Givenスタッフはカテゴリから商品を選択している
And数量を入力している
When「注文確定」ボタンをクリックする
ThenORDERレコードとORDER_ITEMレコードが生成される
Andキッチン画面 /kitchen に新しい注文が表示される
Andテーブルの合計金額がサーバーサイドで再計算される
# 合計はDBから算出 — クライアント送信の金額は無視する
06
Scenario · @happy-path
カテゴリによる商品フィルタリング
Givenスタッフはカテゴリタブを選択している
Then対象カテゴリの商品のみが表示される
07
Scenario · @error
カートが空の状態での注文確定試行
Givenスタッフはカートに商品を入れていない
When「注文確定」ボタンをクリックしようとする
Thenボタンが無効化されており操作できない
UC-07 追加注文 POS-008

着席グループが追加で商品を注文する。既存のVISITOR_IDに紐づく新たなORDERレコードが生成される。

Background 各シナリオの共通前提
Givenスタッフは認証済みでPOS画面を表示している
Andテーブルは着席登録済みで既に注文が1件以上ある
Scenarios
08
Scenario · @happy-path
追加注文の登録
Givenスタッフは着席中のテーブルを選択している
And追加する商品を選択している
When「注文追加」ボタンをクリックする
Then既存のVISITOR_IDに紐づく新たなORDERレコードが生成される
Andキッチン画面に追加注文が表示される
Andテーブルの累計合計金額が更新される
UC-08 店員呼び出し POS-025 · POS-026

スタッフがPOS画面からテーブルの呼び出しフラグを設定する。フラグはD1のVISITORレコード(staff_called INTEGER DEFAULT 0)に永続化され、POSのポーリング(30秒間隔)によって全スタッフのデバイスに状態が伝播する。

Background 各シナリオの共通前提
Givenスタッフは認証済みである
Andテーブルが着席登録済みである
Scenarios
09
Scenario · @happy-path
呼び出しフラグの設定
GivenスタッフはPOS画面でテーブルカードの呼び出しアイコンをタップしている
WhenPATCH /v1/visitors/{visitor_id}/staff-call{ "active": true } が送信される
ThenD1のVISITORレコードの staff_called1 に更新される
AndPOSのポーリングにより全スタッフのPOS画面のテーブルカードにベルアイコンとアンバーハイライトが表示される
# GET /v1/visitors?active=true を 30 秒ごとにポーリングしてフラグを取得する
10
Scenario · @happy-path
呼び出しの解除
Given対象テーブルの staff_called1 の状態である
Whenスタッフがテーブルカードの呼び出しアイコンをタップして解除する(PATCH /v1/visitors/{visitor_id}/staff-call{ "active": false }
Thenstaff_called0 にクリアされる
And次回のポーリング取得時にテーブルカードのベルアイコンとハイライトが消える
UC-09 会計依頼 POS-027 · POS-028

スタッフがテーブルに会計依頼フラグ(bill_requested INTEGER DEFAULT 0)を立て、POSのポーリングで他スタッフのデバイスに状態を伝播する。フラグを確認したスタッフが会計確認画面へ遷移し、精算を開始する(UC-11へ続く)。

Background 各シナリオの共通前提
Givenスタッフは認証済みでPOS画面を表示している
Andテーブルが着席登録済みで注文が1件以上ある
Scenarios
11
Scenario · @happy-path
会計依頼フラグの設定と通知
GivenスタッフはPOS画面でテーブルカードの「会計依頼」アイコンをタップしている
WhenPATCH /v1/visitors/{visitor_id}/bill-request{ "active": true } が送信される
ThenD1のVISITORレコードの bill_requested1 に更新される
AndPOSのポーリングにより全スタッフのPOS画面のテーブルカードに会計依頼アイコンが表示される
# UC-08 の staff_called と同一パターン。GET /v1/visitors?active=true のレスポンスにフラグを含む
12
Scenario · @happy-path
会計依頼の受付と画面遷移
Givenテーブルカードに会計依頼アイコンが表示されている(bill_requested = 1
Whenスタッフはテーブルを選択して「会計へ」ボタンをクリックする
Then会計確認画面が表示される
And注文済み商品の一覧と合計金額(税込 10%)が表示される
Andbill_requested が自動的に 0 にクリアされる
# 会計完了(UC-11 精算)と同時に bill_requested = 0 にリセット

キーワード凡例 / Keyword Legend

Given事前条件 When操作 Then期待結果 And前のステップを継続 But例外・除外条件