get_availability
指定した店舗の予約可能な空き枠を、日時・人数・メニュー・スタッフ・禁煙喫煙・クーポン等の条件で取得する。事前に search_shops(店舗検索ツール)で取得した shopId を指定すること。予約方式(timeUnit/tableUnit)によって返却項目が異なる。フィルタ条件を指定した場合、条件に合致しない空き枠は除外(canReserve: falseに更新)され、選択できないメニュー・スタッフ・クーポンには isSelectable: false と unselectableReason(選択不可の理由コード)が付与される。AIがユーザーに予約条件を提示し、条件を確定するための情報として使用する。【reservationType による create_reservation への影響】取得した reservationType によって次ステップ create_reservation の必須パラメータが変わる。timeUnit(全ジャンル向け):headcount不要・staffId指定可・smokingPreference不要。tableUnit(グルメ向け):headcountBreakdownEnabled が false なら headcount 必須、true なら headcountBreakdown(内訳)必須。smokingSetting が separate(分煙)なら smokingPreference 必須。staffId はトルツメ。menuSelectionRequired が true の場合は menuId 必須。【人数上限の確認】tableUnit(グルメ向け)で headcountBreakdownEnabled が true の場合、各 slots[] の headcountBreakdownMax が日時・禁煙喫煙・選択済みメニューの限定数・連結可能なテーブルの最大定員数を反映した合計人数の動的な上限値。ユーザーに人数を提示・確認する際はこの値を上限として使用すること。【選択不可の判定に含まれる要素】menuId・staffId を指定した場合、限定条件(利用可能時間・曜日・日・1日の限定数)に加えて、メニューの同時対応可能件数・スタッフの同時担当可能件数が該当時間枠で上限に達していないかも判定される。staffId・couponId を先に指定した場合、対応不可・併用不可のメニューも isSelectable: false となる(メニュー側の判定はスタッフ・クーポン起点でも双方向に働く)。【tableUnit のテーブル割り当て】tableUnit で headcount または smokingPreference を指定した場合の canReserve 判定は、実際の予約確定時にテーブルを割り当てるアルゴリズムと同一のロジックで判定される(最少人数を満たす単独テーブル優先→連結テーブル→最少人数未満の単独テーブルの順、禁煙/喫煙は同属性同士のみ連結可)。【初回呼び出しの注意】menuId・staffId・couponId・headcountBreakdownの有効な値は店舗ごとに異なり事前にはわからないため、初回呼び出し時はこれらを指定せず、レスポンスのmenus/staffs/coupons/headcountBreakdownItemsから選択肢を取得すること。ユーザーが選択した後、必要であればその値を指定して再度呼び出す。【次のステップ】取得した条件をもとにユーザーへ日時・人数・メニュー等を質問し、create_reservation を呼び出す。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | 空席情報の取得開始日。YYYY-MM-DD 形式。省略時は当日。reservationDate を指定した場合はそちらが優先される。until との期間(until - since)は14日以内とすること | |
| until | No | 空席情報の取得終了日。YYYY-MM-DD 形式。省略時は当日から2週間後。reservationDate を指定した場合はそちらが優先される。since との期間(until - since)は14日以内とすること | |
| menuId | No | メニューID。指定した場合、そのメニューの限定条件(利用可能時間・曜日・日・1日の限定数)および該当時間枠の同時対応可能件数に合致する枠のみ canReserve: true とする。省略可 | |
| shopId | Yes | 店舗ID。必須。店舗検索ツールで取得した shopId を指定 | |
| staffId | No | スタッフID。timeUnit(全ジャンル向け)のみ有効。指定した場合、そのスタッフの受付可能時間および該当時間枠の同時担当可能件数に合致する枠のみ canReserve: true とする。省略可 | |
| couponId | No | クーポンID。指定した場合、そのクーポンの限定条件に合致する枠のみ canReserve: true とする。省略可 | |
| headcount | No | 予約人数。tableUnit(グルメ向け予約)かつ内訳なしの場合に指定。省略可 | |
| reservationDate | No | 予約希望日(単一日)。YYYY-MM-DD 形式。指定した場合 since / until より優先し、その日の空き枠のみ返す。省略可 | |
| reservationTime | No | 予約希望時間。HH:MM 形式。指定した場合、該当時間の枠のみ返す。省略可 | |
| smokingPreference | No | 禁煙/喫煙希望。tableUnit(グルメ向け)かつ分煙店舗の場合に指定。省略可 noSmoking / smoking / noPreference | |
| headcountBreakdown | No | 来店人数の内訳。tableUnit かつ内訳ありの場合に指定。キーは headcountBreakdownItems[].itemKey、値は各内訳の人数。省略可 |