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画面でテーブルカードの呼び出しアイコンをタップしている
When
PATCH /v1/visitors/{visitor_id}/staff-call に { "active": true } が送信されるThenD1のVISITORレコードの
staff_called が 1 に更新されるAndPOSのポーリングにより全スタッフのPOS画面のテーブルカードにベルアイコンとアンバーハイライトが表示される
# GET /v1/visitors?active=true を 30 秒ごとにポーリングしてフラグを取得する
10
Scenario · @happy-path
呼び出しの解除
Given対象テーブルの
staff_called が 1 の状態であるWhenスタッフがテーブルカードの呼び出しアイコンをタップして解除する(
PATCH /v1/visitors/{visitor_id}/staff-call に { "active": false })Then
staff_called が 0 にクリアされる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画面でテーブルカードの「会計依頼」アイコンをタップしている
When
PATCH /v1/visitors/{visitor_id}/bill-request に { "active": true } が送信されるThenD1のVISITORレコードの
bill_requested が 1 に更新されるAndPOSのポーリングにより全スタッフのPOS画面のテーブルカードに会計依頼アイコンが表示される
# UC-08 の staff_called と同一パターン。GET /v1/visitors?active=true のレスポンスにフラグを含む
12
Scenario · @happy-path
会計依頼の受付と画面遷移
Givenテーブルカードに会計依頼アイコンが表示されている(
bill_requested = 1)Whenスタッフはテーブルを選択して「会計へ」ボタンをクリックする
Then会計確認画面が表示される
And注文済み商品の一覧と合計金額(税込 10%)が表示される
And
bill_requested が自動的に 0 にクリアされる# 会計完了(UC-11 精算)と同時に bill_requested = 0 にリセット
キーワード凡例 / Keyword Legend
Given事前条件
When操作
Then期待結果
And前のステップを継続
But例外・除外条件