<!-- https://unlockos.io/ja/manual/connecting-rooms -->

# 連結部屋（続き部屋）ヘルプ

## 概要

連結部屋（続き部屋）機能を使うと、A室・B室をそれぞれ個別の部屋として販売しながら、同時に「AB スイート」としてまとめて一括販売することができます。AB を予約すると A と B の在庫が同時に消化され、A 単独の予約が入ると AB も自動的に塞がります。逆方向も同様に機能します。

<!-- [スクリーンショット: 連結部屋タブの概要画面] -->

**主なユースケース:**

- ホテルの隣室を繋いでスイートルームとして販売したい
- 2部屋を結んで家族向けの大部屋プランを提供したい
- 個室 + リビングルームをセットで販売したい

> **iCal 連携（OTA 連携）について:** 今リリースでは iCal 同期は未対応です。Airbnb などの OTA と連携している施設では、本機能を有効化しないでください。対応予定は Issue #1052 で追跡中です。

---

## できること

| 機能 | 説明 |
|------|------|
| 連結部屋の作成 | 既存の物理部屋 2〜16 件を組み合わせた「続き部屋」を定義する |
| 在庫の自動連動 | AB を予約すると A・B 個別の在庫が同時に消化される |
| 自動ブロック | A 単独が予約されると AB が自動でブロックされる（逆も同様） |
| 名前・タイプの設定 | 連結部屋に独自の表示名と部屋タイプを設定できる |
| 編集・削除 | 連結部屋の設定はいつでも編集・削除できる（予約中は削除不可） |
| KEYVOX 鍵の自動発行 | チェックイン時に全メンバ部屋の鍵がまとめて自動発行される |

---

## 設定手順

### 事前準備

連結部屋を作成する前に、以下を確認してください。

1. **物理部屋が登録済みか確認する** — 施設設定 → Rooms タブ → 部屋一覧 で、メンバにしたい部屋が存在することを確認します
2. **スイート用の部屋タイプを作成する** — 施設設定 → Rooms タブ → 部屋タイプ で、「AB スイート」などの部屋タイプを先に作成しておきます（連結部屋作成フォームで選択します）

### 連結部屋の作成手順

1. メインアプリ上部メニューから **施設設定（歯車アイコン）** を開きます
2. **Rooms タブ**（左から 4 番目）を選択します
3. **連結部屋** サブタブ（5 番目のタブ）をクリックします

   <!-- [スクリーンショット: Rooms タブ内の「連結部屋」サブタブ] -->

4. **「+ 連結部屋を作成」** ボタンをクリックします
5. フォームに以下を入力します：

   | 項目 | 説明 | 例 |
   |------|------|----|
   | 名前 | 予約画面・管理画面に表示される名前 | `AB Suite`、`ひろすイート` |
   | タイプ | あらかじめ作成しておいた部屋タイプを選択 | `スイート` |
   | メンバ部屋 | 組み合わせる物理部屋をチェックボックスで選択（2〜16 件） | `101号室`、`102号室` |

   <!-- [スクリーンショット: 連結部屋の作成フォーム（名前・タイプ・メンバ部屋チェックボックス）] -->

6. **「保存」** をクリックします

保存が完了すると、連結部屋一覧にテーブル行として表示されます。予約画面には A 室・B 室・AB（連結）の 3 室が並ぶようになります。

### 連結部屋の編集

1. 連結部屋タブの一覧から対象の行を見つけます
2. 右端の **「編集」** ボタンをクリックします
3. 名前・タイプ・メンバ部屋を変更して **「保存」** をクリックします

### 連結部屋の削除

1. 連結部屋タブの一覧から対象の行を見つけます
2. 右端の **「削除」** ボタンをクリックします
3. 確認ダイアログで **「削除」** をクリックします

> **注意:** アクティブな予約が紐づいている間は削除できません（409 エラーが表示されます）。既存予約をキャンセルしてから削除してください。

---

## 予約フロー（ゲスト視点）

連結部屋を作成すると、ゲスト向け予約画面に以下のように表示されます。

1. 予約ページを開くと、A 室・B 室・AB（連結部屋）が別々の選択肢として並ぶ
2. ゲストが AB を選択して予約を完了すると、A 室と B 室の両方の在庫が自動で消化される
3. 別のゲストが A 室を個別予約しようとすると、AB は自動でブロックされ選択不可になる
4. チェックイン時、KEYVOX が設定されていれば A 室・B 室それぞれの PIN コード / QR コードがまとめて発行される

<!-- [スクリーンショット: ゲスト向け予約画面での連結部屋の表示例] -->

---

## よくある質問

### Q: アクティブな予約がある間に連結部屋を削除しようとするとどうなりますか？

削除がブロックされ、エラーが表示されます（409 Conflict）。連結部屋に紐づいている予約をすべてキャンセルしてから削除してください。メンバ部屋（A 室・B 室）自体は削除されず、そのまま残ります。

### Q: KEYVOX の鍵は自動発行されますか？

はい。連結部屋の予約でチェックインが発生すると、全メンバ部屋の KEYVOX 鍵（PIN / QR）がまとめて自動発行されます。ゲストには A 室の鍵と B 室の鍵がそれぞれ表示されます。

> **重要:** 鍵発行は原子的に処理されます。A の鍵だけ発行されて B が失敗するような中途半端な状態は発生しません。万一発行処理全体が失敗した場合は、予約が自動的にキャンセルされ全額返金となります（FATAL refund）。

### Q: Airbnb（OTA）と iCal 連携している施設でも使えますか？

**今リリースでは未対応です。** iCal 同期との組み合わせは現時点でサポートされていません。OTA 連携施設では本機能を有効化しないでください。iCal 対応は Issue #1052 で計画中です。

### Q: 連結部屋自体をメンバ部屋として別の連結部屋に組み込めますか？

できません。連結部屋（composite）をメンバに指定しようとすると、選択肢に表示されません（DB トリガーでもブロックされます）。連結部屋はかならず物理部屋のみで構成してください。

### Q: 異施設の部屋をメンバに追加できますか？

できません。メンバに選択できるのは同じ施設の物理部屋のみです。異施設の部屋を指定しようとすると、DB レベルでブロックされます。

### Q: 連結部屋専用の料金プランはどこで設定しますか？

連結部屋を作成しただけでは料金プランは付与されません。**予約管理 → プラン設定** から、連結部屋に対応する料金プランを別途作成・紐付けする必要があります。プランと連結部屋のマッピングは RoomPlanMappingEditor から行います。

> プランのクイックリンク機能（Issue #1055）は Phase 2 で対応予定です。

### Q: フロントデスクアプリから連結部屋の予約を操作できますか？

フロントデスクアプリでの連結部屋対応は Issue #1056 で計画中です。現時点ではメインアプリのカレンダー・予約一覧からご確認ください。

---

## トラブルシューティング

### 「連結部屋をメンバ部屋として選択できない」

連結部屋はメンバ部屋として選択できません（composite-of-composite 禁止）。選択肢には物理部屋のみが表示されます。

### 「メンバ部屋の候補が表示されない」

選択可能な部屋が存在しない場合、フォームに「選択可能な部屋がありません」と表示されます。先に **部屋一覧** タブで物理部屋を登録してください。

### 「保存しようとしたらエラーになった」

- **名前が空欄** — 名前は必須です
- **タイプが未選択** — タイプを選択してください
- **メンバ部屋が 1 件以下** — 2 件以上の部屋を選択してください
- **メンバ部屋が 17 件以上** — 16 件以下に絞ってください

### 「削除しようとしたら 409 エラーが出た」

その連結部屋に紐づくアクティブな予約が存在します。予約をすべてキャンセルしてから削除してください。

### 「KEYVOX 鍵が発行されない」

- 各メンバ部屋に KEYVOX ユニット（`keyvox_units`）が正しく紐づいているか確認してください
- ロック割り当てタブ（Rooms → ロック割り当て）で割り当て状況を確認できます
- 鍵発行に問題が生じた場合は FATAL refund が発動し、予約がキャンセルされます

---

## 関連ページ

- [予約管理ダッシュボード（管理者向け）](booking.md)
- [プラン一覧（料金プランの管理）](plan-list.md)
- [施設基本設定](base-settings.md)
- [ロック接続設定](lock-connection.md)
