# Hotel Constants 文件說明

> 📄 本文件為 [Pet Hotel API 文件](../pet-hotel/api-documentation.md) 的補充文件，詳細說明寵物旅館系統中所有操作的標準回應碼與訊息定義。

## 概述

本文件定義了寵物旅館系統中所有 CRUD 操作的標準回應格式，包含狀態字串（status）、狀態碼（code）與訊息（message）。這些常數用於確保整個系統的 API 回應具有一致性，涵蓋：

- 房型管理（建立、讀取、更新、刪除）
- 房型狀態管理（發布、取消發布、封存）
- 房型排序與樹狀結構
- 房間管理
- 價格規則管理
- 住宿排班管理
- 前台與後台操作的分離定義

### 常數結構

每個常數包含三個欄位：

| 欄位 | 類型 | 說明 | 範例 |
|------|------|------|------|
| `status` | string | 原始常數名稱字串，用於精確識別操作類型 | `"HOTEL_ROOM_TYPE_CREATE_SUCCESS"` |
| `code` | integer | HTTP 狀態碼 | `200` |
| `message` | string | 人類可讀的訊息 | `"Hotel room type create success"` |

## 文件位置

- **常數定義檔**：`src/constants/hotel.php`
- **相關配置檔**：`src/configs/dddream.php`
- **API 主文件**：`docs/pet-hotel/api-documentation.md`

## 常數命名規則

### 命名結構
```
HOTEL_[MODULE]_[SCOPE]_[ACTION]_[RESULT]
```

### 組成部分說明

| 部分 | 說明 | 可選值 |
|------|------|--------|
| `HOTEL` | 模組前綴 | 固定為 `HOTEL` |
| `[MODULE]` | 子模組 | `ROOM_TYPE`（房型）、`ROOM`（房間）、`PRICE_RULE`（價格規則）、`ROOM_SCHEDULE`（排班） |
| `[SCOPE]` | 操作範圍（可選） | `ADMIN`（管理後台）、`FRONT`（前台）、無（通用） |
| `[ACTION]` | 操作類型 | `CREATE`、`UPDATE`、`DELETE`、`PUBLISH`、`SEARCH` 等 |
| `[RESULT]` | 操作結果 | `SUCCESS`（成功）、`FAIL`（失敗）、其他特殊狀態 |

### 命名範例

- `HOTEL_ROOM_TYPE_CREATE_SUCCESS`：通用房型建立成功
- `HOTEL_ROOM_TYPE_ADMIN_UPDATE_FAIL`：管理後台房型更新失敗
- `HOTEL_ROOM_TYPE_FRONT_SEARCH_SUCCESS`：前台房型搜尋成功
- `HOTEL_ROOM_TYPE_ITEM_NOT_EXIST`：房型項目不存在

## HTTP 狀態碼說明

| 狀態碼 | 說明 | 使用場景 |
|--------|------|----------|
| 200 | 操作成功 | 所有成功的操作（建立、更新、查詢等） |
| 403 | 禁止訪問 | 權限不足、資源衝突（別名已存在、路徑已存在、資源被鎖定） |
| 404 | 資源不存在 | 查詢的房型項目不存在 |
| 500 | 伺服器內部錯誤 | 操作執行失敗（資料庫錯誤、系統錯誤等） |

---

## 200 - 操作成功

### 房型建立成功
```php
'status' => 'HOTEL_ROOM_TYPE_CREATE_SUCCESS'
'code' => 200
'message' => 'Hotel room type create success'
```
- **使用場景**：通用房型建立操作成功時返回
- **對應 API**：`POST /api/admin/hotel/room/type/store`（新增模式）

### 管理後台房型建立成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_CREATE_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin create success'
```
- **使用場景**：管理員在後台建立房型成功時返回
- **對應 API**：`POST /api/admin/hotel/room/type/store`（管理後台）

### 前台房型建立成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_CREATE_SUCCESS'
'code' => 200
'message' => 'Hotel room type front create success'
```
- **使用場景**：前台用戶建立房型成功時返回

### 巢狀房型建立成功
```php
'status' => 'HOTEL_ROOM_TYPE_CREATE_NESTED_SUCCESS'
'code' => 200
'message' => 'Hotel room type create nested success'
```
- **使用場景**：成功建立具有父子關係的房型結構

### 管理後台巢狀房型建立成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_CREATE_NESTED_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin create nested success'
```
- **使用場景**：管理後台成功建立巢狀結構

### 前台巢狀房型建立成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_CREATE_NESTED_SUCCESS'
'code' => 200
'message' => 'Hotel room type front create nested success'
```
- **使用場景**：前台成功建立巢狀結構

### 房型更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_UPDATE_SUCCESS'
'code' => 200
'message' => 'Hotel room type update success'
```
- **使用場景**：通用房型更新操作成功時返回
- **對應 API**：`POST /api/admin/hotel/room/type/store`（編輯模式）

### 管理後台房型更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_UPDATE_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin update success'
```
- **使用場景**：管理員在後台更新房型成功時返回
- **對應 API**：`POST /api/admin/hotel/room/type/store`

### 管理後台房型儲存成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_STORE_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin store success'
```
- **使用場景**：管理員在後台儲存房型（新增或更新）成功時返回
- **對應 API**：`POST /api/admin/hotel/room/type/store`

### 前台房型更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_UPDATE_SUCCESS'
'code' => 200
'message' => 'Hotel room type front update success'
```
- **使用場景**：前台用戶更新房型成功時返回

### 巢狀房型更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_UPDATE_NESTED_SUCCESS'
'code' => 200
'message' => 'Hotel room type update nested success'
```
- **使用場景**：更新具有父子關係的房型結構成功

### 管理後台巢狀房型更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_UPDATE_NESTED_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin update nested success'
```
- **使用場景**：管理後台更新巢狀結構成功

### 前台巢狀房型更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_UPDATE_NESTED_SUCCESS'
'code' => 200
'message' => 'Hotel room type front update nested success'
```
- **使用場景**：前台更新巢狀結構成功

### 房型移至垃圾桶成功
```php
'status' => 'HOTEL_ROOM_TYPE_TRASH_SUCCESS'
'code' => 200
'message' => 'Hotel room type trash success'
```
- **使用場景**：軟刪除房型，移至垃圾桶（可恢復）

### 管理後台房型移至垃圾桶成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_TRASH_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin trash success'
```
- **使用場景**：管理後台軟刪除房型

### 前台房型移至垃圾桶成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_TRASH_SUCCESS'
'code' => 200
'message' => 'Hotel room type front trash success'
```
- **使用場景**：前台軟刪除房型

### 房型刪除成功
```php
'status' => 'HOTEL_ROOM_TYPE_DELETE_SUCCESS'
'code' => 200
'message' => 'Hotel room type delete success'
```
- **使用場景**：永久刪除房型（不可恢復）

### 管理後台房型刪除成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_DELETE_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin delete success'
```
- **使用場景**：管理後台永久刪除房型

### 前台房型刪除成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_DELETE_SUCCESS'
'code' => 200
'message' => 'Hotel room type front delete success'
```
- **使用場景**：前台永久刪除房型

### 巢狀房型刪除成功
```php
'status' => 'HOTEL_ROOM_TYPE_DELETE_NESTED_SUCCESS'
'code' => 200
'message' => 'Hotel room type delete nested success'
```
- **使用場景**：刪除具有父子關係的房型結構成功

### 管理後台巢狀房型刪除成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_DELETE_NESTED_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin delete nested success'
```
- **使用場景**：管理後台刪除巢狀結構成功

### 前台巢狀房型刪除成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_DELETE_NESTED_SUCCESS'
'code' => 200
'message' => 'Hotel room type front delete nested success'
```
- **使用場景**：前台刪除巢狀結構成功

### 房型發布成功
```php
'status' => 'HOTEL_ROOM_TYPE_PUBLISH_SUCCESS'
'code' => 200
'message' => 'Hotel room type publish success'
```
- **使用場景**：將房型狀態設為已發布，對外可見
- **對應 API**：`POST /api/admin/hotel/room/type/state`（state=1）

### 管理後台房型發布成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_PUBLISH_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin publish success'
```
- **使用場景**：管理後台發布房型

### 前台房型發布成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_PUBLISH_SUCCESS'
'code' => 200
'message' => 'Hotel room type front publish success'
```
- **使用場景**：前台發布房型

### 房型取消發布成功
```php
'status' => 'HOTEL_ROOM_TYPE_UNPUBLISH_SUCCESS'
'code' => 200
'message' => 'Hotel room type unpublish success'
```
- **使用場景**：將房型狀態設為未發布，對外不可見
- **對應 API**：`POST /api/admin/hotel/room/type/state`（state=0）

### 管理後台房型取消發布成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_UNPUBLISH_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin unpublish success'
```
- **使用場景**：管理後台取消發布房型

### 前台房型取消發布成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_UNPUBLISH_SUCCESS'
'code' => 200
'message' => 'Hotel room type front unpublish success'
```
- **使用場景**：前台取消發布房型

### 管理後台房型狀態更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_STATE_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin state success'
```
- **使用場景**：管理員在後台更新房型狀態成功時返回
- **對應 API**：`POST /api/admin/hotel/room/type/state`

### 房型封存成功
```php
'status' => 'HOTEL_ROOM_TYPE_ARCHIVE_SUCCESS'
'code' => 200
'message' => 'Hotel room type archive success'
```
- **使用場景**：將房型狀態設為封存，保留但不對外顯示

### 管理後台房型封存成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_ARCHIVE_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin archive success'
```
- **使用場景**：管理後台封存房型

### 前台房型封存成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_ARCHIVE_SUCCESS'
'code' => 200
'message' => 'Hotel room type front archive success'
```
- **使用場景**：前台封存房型

### 房型搜尋成功
```php
'status' => 'HOTEL_ROOM_TYPE_SEARCH_SUCCESS'
'code' => 200
'message' => 'Hotel room type search success'
```
- **使用場景**：搜尋房型列表成功

### 管理後台房型搜尋成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_SEARCH_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin search success'
```
- **使用場景**：管理後台搜尋房型成功

### 前台房型搜尋成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_SEARCH_SUCCESS'
'code' => 200
'message' => 'Hotel room type front search success'
```
- **使用場景**：前台搜尋房型成功

### 取得房型詳細資料成功
```php
'status' => 'HOTEL_ROOM_TYPE_GET_ITEM_SUCCESS'
'code' => 200
'message' => 'Hotel room type get item success'
```
- **使用場景**：根據 ID 取得單一房型資料成功
- **對應 API**：`GET /api/admin/hotel/room/type/{id}`

### 管理後台取得房型詳細資料成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_GET_ITEM_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin get item success'
```
- **使用場景**：管理後台取得單一房型資料成功

### 前台取得房型詳細資料成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_GET_ITEM_SUCCESS'
'code' => 200
'message' => 'Hotel room type front get item success'
```
- **使用場景**：前台取得單一房型資料成功

### 房型排序更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_UPDATE_ORDERING_SUCCESS'
'code' => 200
'message' => 'Hotel room type update ordering success'
```
- **使用場景**：更新房型的顯示順序成功

### 管理後台房型排序更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_UPDATE_ORDERING_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin update ordering success'
```
- **使用場景**：管理後台更新房型排序成功

### 前台房型排序更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_UPDATE_ORDERING_SUCCESS'
'code' => 200
'message' => 'Hotel room type front update ordering success'
```
- **使用場景**：前台更新房型排序成功

### 巢狀房型排序更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_UPDATE_ORDERING_NESTED_SUCCESS'
'code' => 200
'message' => 'Hotel room type update ordering nested success'
```
- **使用場景**：更新具有父子關係的房型排序成功

### 管理後台巢狀房型排序更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_UPDATE_ORDERING_NESTED_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin update ordering nested success'
```
- **使用場景**：管理後台更新巢狀排序成功

### 前台巢狀房型排序更新成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_UPDATE_ORDERING_NESTED_SUCCESS'
'code' => 200
'message' => 'Hotel room type front update ordering nested success'
```
- **使用場景**：前台更新巢狀排序成功

### 取得房型樹狀結構成功
```php
'status' => 'HOTEL_ROOM_TYPE_GET_TREE_SUCCESS'
'code' => 200
'message' => 'Hotel room type get tree success'
```
- **使用場景**：取得具有父子關係的完整房型樹狀結構

### 管理後台取得房型樹狀結構成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_GET_TREE_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin get tree success'
```
- **使用場景**：管理後台取得樹狀結構

### 前台取得房型樹狀結構成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_GET_TREE_SUCCESS'
'code' => 200
'message' => 'Hotel room type front get tree success'
```
- **使用場景**：前台取得樹狀結構

### 房型簽出成功
```php
'status' => 'HOTEL_ROOM_TYPE_CHECKOUT_SUCCESS'
'code' => 200
'message' => 'Hotel room type checkout success'
```
- **使用場景**：用戶開始編輯房型，成功鎖定資源

### 管理後台房型簽出成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_CHECKOUT_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin checkout success'
```
- **使用場景**：管理後台成功鎖定房型進行編輯

### 前台房型簽出成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_CHECKOUT_SUCCESS'
'code' => 200
'message' => 'Hotel room type front checkout success'
```
- **使用場景**：前台成功鎖定房型進行編輯

### 取得房型列表成功
```php
'status' => 'HOTEL_ROOM_TYPE_GET_LIST_SUCCESS'
'code' => 200
'message' => 'Hotel room type get list success'
```
- **使用場景**：取得房型列表資料成功

### 管理後台取得房型列表成功
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_GET_LIST_SUCCESS'
'code' => 200
'message' => 'Hotel room type admin get list success'
```
- **使用場景**：管理後台取得列表成功

### 前台取得房型列表成功
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_GET_LIST_SUCCESS'
'code' => 200
'message' => 'Hotel room type front get list success'
```
- **使用場景**：前台取得列表成功

### 管理後台房間搜尋成功
```php
'status' => 'HOTEL_ROOM_ADMIN_SEARCH_SUCCESS'
'code' => 200
'message' => 'Hotel room admin search success'
```
- **使用場景**：管理後台搜尋房間列表成功
- **對應 API**：`POST /api/admin/hotel/room/availability`

### 管理後台價格規則建立成功
```php
'status' => 'HOTEL_PRICE_RULE_ADMIN_CREATE_SUCCESS'
'code' => 200
'message' => 'Hotel price rule admin create success'
```
- **使用場景**：管理後台成功建立價格規則（如連續住宿折扣、節日加價等）
- **對應 API**：`POST /api/admin/hotel/price/rule/store`

### 管理後台價格規則搜尋成功
```php
'status' => 'HOTEL_PRICE_RULE_ADMIN_SEARCH_SUCCESS'
'code' => 200
'message' => 'Hotel price rule admin search success'
```
- **使用場景**：管理後台搜尋價格規則列表成功

### 管理後台價格規則刪除成功
```php
'status' => 'HOTEL_PRICE_RULE_ADMIN_DELETE_SUCCESS'
'code' => 200
'message' => 'Hotel price rule admin delete success'
```
- **使用場景**：管理後台成功刪除價格規則

### 管理後台住宿排班儲存成功
```php
'status' => 'HOTEL_ROOM_SCHEDULE_ADMIN_STORE_SUCCESS'
'code' => 200
'message' => 'Hotel room schedule admin store success'
```
- **使用場景**：管理後台成功儲存房間的排班設定（開放日期、休息日期等）
- **對應 API**：`POST /api/admin/hotel/room/schedule/store`

### 管理後台住宿排班更新成功
```php
'status' => 'HOTEL_ROOM_SCHEDULE_ADMIN_UPDATE_SUCCESS'
'code' => 200
'message' => 'Hotel room Schedule admin update success'
```
- **使用場景**：管理後台成功更新房間的排班設定（開放日期、休息日期等）
- **對應 API**：`POST /api/admin/hotel/room/schedule/store`

---

## 403 - 禁止訪問

### 房型建立時別名已存在
```php
'status' => 'HOTEL_ROOM_TYPE_STORE_WITH_EXIST_ALIAS'
'code' => 403
'message' => 'Hotel room type create with exist alias'
```
- **使用場景**：當系統檢測到別名（alias）重複時返回
- **對應 API**：`POST /api/admin/hotel/room/type/store`

### 管理後台房型建立時別名已存在
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_STORE_WITH_EXIST_ALIAS'
'code' => 403
'message' => 'Hotel room type admin create with exist alias'
```
- **使用場景**：管理後台建立時別名重複

### 前台房型建立時別名已存在
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_STORE_WITH_EXIST_ALIAS'
'code' => 403
'message' => 'Hotel room type front create with exist alias'
```
- **使用場景**：前台建立時別名重複

### 巢狀房型建立時路徑已存在
```php
'status' => 'HOTEL_ROOM_TYPE_STORE_NESTED_WITH_EXIST_PATH'
'code' => 403
'message' => 'Hotel room type create nested with exist alias'
```
- **使用場景**：建立巢狀結構的房型時，路徑衝突

### 管理後台巢狀房型建立時路徑已存在
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_STORE_NESTED_WITH_EXIST_PATH'
'code' => 403
'message' => 'Hotel room type admin create nested with exist alias'
```
- **使用場景**：管理後台巢狀結構路徑衝突

### 前台巢狀房型建立時路徑已存在
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_STORE_NESTED_WITH_EXIST_PATH'
'code' => 403
'message' => 'Hotel room type front create nested with exist alias'
```
- **使用場景**：前台巢狀結構路徑衝突

### 房型簽出失敗（權限不足）
```php
'status' => 'HOTEL_ROOM_TYPE_CHECKOUT_FAIL'
'code' => 403
'message' => 'Hotel room type checkout insufficient permission'
```
- **使用場景**：用戶沒有編輯權限或資源已被他人鎖定

### 管理後台房型簽出失敗（權限不足）
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_CHECKOUT_FAIL'
'code' => 403
'message' => 'Hotel room type admin checkout insufficient permission'
```
- **使用場景**：管理後台權限不足無法鎖定

### 前台房型簽出失敗（權限不足）
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_CHECKOUT_FAIL'
'code' => 403
'message' => 'Hotel room type front checkout insufficient permission'
```
- **使用場景**：前台權限不足無法鎖定

### 房型已被鎖定
```php
'status' => 'HOTEL_ROOM_TYPE_IS_LOCKED'
'code' => 403
'message' => 'Hotel room type is locked'
```
- **使用場景**：資源正在被其他用戶編輯，無法進行操作

### 管理後台房型已被鎖定
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_IS_LOCKED'
'code' => 403
'message' => 'Hotel room type admin is locked'
```
- **使用場景**：管理後台資源被鎖定

### 前台房型已被鎖定
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_IS_LOCKED'
'code' => 403
'message' => 'Hotel room type front is locked'
```
- **使用場景**：前台資源被鎖定

---

## 404 - 資源不存在

### 房型項目不存在
```php
'status' => 'HOTEL_ROOM_TYPE_ITEM_NOT_EXIST'
'code' => 404
'message' => 'Hotel room type item not exist'
```
- **使用場景**：查詢的房型 ID 不存在於系統中
- **對應 API**：`GET /api/admin/hotel/room/type/{id}`

### 管理後台房型項目不存在
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_ITEM_NOT_EXIST'
'code' => 404
'message' => 'Hotel room type admin item not exist'
```
- **使用場景**：管理後台查詢的房型不存在

### 前台房型項目不存在
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_ITEM_NOT_EXIST'
'code' => 404
'message' => 'Hotel room type front item not exist'
```
- **使用場景**：前台查詢的房型不存在

---

## 500 - 伺服器內部錯誤

### 房型建立失敗
```php
'status' => 'HOTEL_ROOM_TYPE_CREATE_FAIL'
'code' => 500
'message' => 'Hotel room type create fail'
```
- **使用場景**：房型建立過程中發生伺服器錯誤
- **對應 API**：`POST /api/admin/hotel/room/type/store`

### 管理後台房型建立失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_CREATE_FAIL'
'code' => 500
'message' => 'Hotel room type admin create fail'
```
- **使用場景**：管理後台房型建立過程中發生錯誤

### 前台房型建立失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_CREATE_FAIL'
'code' => 500
'message' => 'Hotel room type front create fail'
```
- **使用場景**：前台房型建立過程中發生錯誤

### 巢狀房型建立失敗
```php
'status' => 'HOTEL_ROOM_TYPE_CREATE_NESTED_FAIL'
'code' => 500
'message' => 'Hotel room type create nested fail'
```
- **使用場景**：建立巢狀結構時發生錯誤

### 管理後台巢狀房型建立失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_CREATE_NESTED_FAIL'
'code' => 500
'message' => 'Hotel room type admin create nested fail'
```
- **使用場景**：管理後台建立巢狀結構時失敗

### 前台巢狀房型建立失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_CREATE_NESTED_FAIL'
'code' => 500
'message' => 'Hotel room type front create nested fail'
```
- **使用場景**：前台建立巢狀結構時失敗

### 房型更新失敗
```php
'status' => 'HOTEL_ROOM_TYPE_UPDATE_FAIL'
'code' => 500
'message' => 'Hotel room type update fail'
```
- **使用場景**：房型更新過程中發生伺服器錯誤

### 管理後台房型更新失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_UPDATE_FAIL'
'code' => 500
'message' => 'Hotel room type admin update fail'
```
- **使用場景**：管理後台更新過程中發生錯誤

### 前台房型更新失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_UPDATE_FAIL'
'code' => 500
'message' => 'Hotel room type front update fail'
```
- **使用場景**：前台更新過程中發生錯誤

### 巢狀房型更新失敗
```php
'status' => 'HOTEL_ROOM_TYPE_UPDATE_NESTED_FAIL'
'code' => 500
'message' => 'Hotel room type update nested fail'
```
- **使用場景**：更新巢狀結構時發生錯誤

### 管理後台巢狀房型更新失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_UPDATE_NESTED_FAIL'
'code' => 500
'message' => 'Hotel room type admin update nested fail'
```
- **使用場景**：管理後台更新巢狀結構時失敗

### 前台巢狀房型更新失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_UPDATE_NESTED_FAIL'
'code' => 500
'message' => 'Hotel room type front update nested fail'
```
- **使用場景**：前台更新巢狀結構時失敗

### 房型移至垃圾桶失敗
```php
'status' => 'HOTEL_ROOM_TYPE_TRASH_FAIL'
'code' => 500
'message' => 'Hotel room type trash fail'
```
- **使用場景**：軟刪除過程中發生錯誤

### 管理後台房型移至垃圾桶失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_TRASH_FAIL'
'code' => 500
'message' => 'Hotel room type admin trash fail'
```
- **使用場景**：管理後台軟刪除時失敗

### 前台房型移至垃圾桶失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_TRASH_FAIL'
'code' => 500
'message' => 'Hotel room type front trash fail'
```
- **使用場景**：前台軟刪除時失敗

### 房型刪除失敗
```php
'status' => 'HOTEL_ROOM_TYPE_DELETE_FAIL'
'code' => 500
'message' => 'Hotel room type delete fail'
```
- **使用場景**：刪除過程中發生伺服器錯誤

### 管理後台房型刪除失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_DELETE_FAIL'
'code' => 500
'message' => 'Hotel room type admin delete fail'
```
- **使用場景**：管理後台刪除時失敗

### 前台房型刪除失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_DELETE_FAIL'
'code' => 500
'message' => 'Hotel room type front delete fail'
```
- **使用場景**：前台刪除時失敗

### 巢狀房型刪除失敗
```php
'status' => 'HOTEL_ROOM_TYPE_DELETE_NESTED_FAIL'
'code' => 500
'message' => 'Hotel room type delete nested fail'
```
- **使用場景**：刪除巢狀結構時發生錯誤

### 管理後台巢狀房型刪除失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_DELETE_NESTED_FAIL'
'code' => 500
'message' => 'Hotel room type admin delete nested fail'
```
- **使用場景**：管理後台刪除巢狀結構時失敗

### 前台巢狀房型刪除失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_DELETE_NESTED_FAIL'
'code' => 500
'message' => 'Hotel room type front delete nested fail'
```
- **使用場景**：前台刪除巢狀結構時失敗

### 房型發布失敗
```php
'status' => 'HOTEL_ROOM_TYPE_PUBLISH_FAIL'
'code' => 500
'message' => 'Hotel room type publish fail'
```
- **使用場景**：發布過程中發生錯誤

### 管理後台房型發布失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_PUBLISH_FAIL'
'code' => 500
'message' => 'Hotel room type admin publish fail'
```
- **使用場景**：管理後台發布時失敗

### 前台房型發布失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_PUBLISH_FAIL'
'code' => 500
'message' => 'Hotel room type front publish fail'
```
- **使用場景**：前台發布時失敗

### 房型取消發布失敗
```php
'status' => 'HOTEL_ROOM_TYPE_UNPUBLISH_FAIL'
'code' => 500
'message' => 'Hotel room type unpublish fail'
```
- **使用場景**：取消發布過程中發生錯誤

### 管理後台房型取消發布失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_UNPUBLISH_FAIL'
'code' => 500
'message' => 'Hotel room type admin unpublish fail'
```
- **使用場景**：管理後台取消發布時失敗

### 前台房型取消發布失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_UNPUBLISH_FAIL'
'code' => 500
'message' => 'Hotel room type front unpublish fail'
```
- **使用場景**：前台取消發布時失敗

### 房型封存失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ARCHIVE_FAIL'
'code' => 500
'message' => 'Hotel room type archive fail'
```
- **使用場景**：封存過程中發生錯誤

### 管理後台房型封存失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_ARCHIVE_FAIL'
'code' => 500
'message' => 'Hotel room type admin archive fail'
```
- **使用場景**：管理後台封存時失敗

### 前台房型封存失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_ARCHIVE_FAIL'
'code' => 500
'message' => 'Hotel room type front archive fail'
```
- **使用場景**：前台封存時失敗

### 房型搜尋失敗
```php
'status' => 'HOTEL_ROOM_TYPE_SEARCH_FAIL'
'code' => 500
'message' => 'Hotel room type search fail'
```
- **使用場景**：搜尋過程中發生錯誤

### 管理後台房型搜尋失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_SEARCH_FAIL'
'code' => 500
'message' => 'Hotel room type admin search fail'
```
- **使用場景**：管理後台搜尋時失敗

### 前台房型搜尋失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_SEARCH_FAIL'
'code' => 500
'message' => 'Hotel room type front search fail'
```
- **使用場景**：前台搜尋時失敗

### 房型排序更新失敗
```php
'status' => 'HOTEL_ROOM_TYPE_UPDATE_ORDERING_FAIL'
'code' => 500
'message' => 'Hotel room type update ordering fail'
```
- **使用場景**：更新排序過程中發生錯誤

### 管理後台房型排序更新失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_UPDATE_ORDERING_FAIL'
'code' => 500
'message' => 'Hotel room type admin update ordering fail'
```
- **使用場景**：管理後台更新排序時失敗

### 前台房型排序更新失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_UPDATE_ORDERING_FAIL'
'code' => 500
'message' => 'Hotel room type front update ordering fail'
```
- **使用場景**：前台更新排序時失敗

### 巢狀房型排序更新失敗
```php
'status' => 'HOTEL_ROOM_TYPE_UPDATE_ORDERING_NESTED_FAIL'
'code' => 500
'message' => 'Hotel room type update ordering nested fail'
```
- **使用場景**：更新巢狀排序時發生錯誤

### 管理後台巢狀房型排序更新失敗
```php
'status' => 'HOTEL_ROOM_TYPE_ADMIN_UPDATE_ORDERING_NESTED_FAIL'
'code' => 500
'message' => 'Hotel room type admin update ordering nested fail'
```
- **使用場景**：管理後台更新巢狀排序時失敗

### 前台巢狀房型排序更新失敗
```php
'status' => 'HOTEL_ROOM_TYPE_FRONT_UPDATE_ORDERING_NESTED_FAIL'
'code' => 500
'message' => 'Hotel room type front update ordering nested fail'
```
- **使用場景**：前台更新巢狀排序時失敗

---

## 附錄：常數索引

### 按狀態碼分類

#### 200 - 成功 (69 個常數)
- HOTEL_ROOM_TYPE_CREATE_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_CREATE_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_CREATE_SUCCESS
- HOTEL_ROOM_TYPE_CREATE_NESTED_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_CREATE_NESTED_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_CREATE_NESTED_SUCCESS
- HOTEL_ROOM_TYPE_UPDATE_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_UPDATE_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_UPDATE_SUCCESS
- HOTEL_ROOM_TYPE_STORE_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_STORE_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_STORE_SUCCESS
- HOTEL_ROOM_TYPE_UPDATE_NESTED_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_UPDATE_NESTED_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_UPDATE_NESTED_SUCCESS
- HOTEL_ROOM_TYPE_TRASH_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_TRASH_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_TRASH_SUCCESS
- HOTEL_ROOM_TYPE_DELETE_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_DELETE_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_DELETE_SUCCESS
- HOTEL_ROOM_TYPE_DELETE_NESTED_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_DELETE_NESTED_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_DELETE_NESTED_SUCCESS
- HOTEL_ROOM_TYPE_PUBLISH_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_PUBLISH_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_PUBLISH_SUCCESS
- HOTEL_ROOM_TYPE_UNPUBLISH_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_UNPUBLISH_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_UNPUBLISH_SUCCESS
- HOTEL_ROOM_TYPE_STATE_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_STATE_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_STATE_SUCCESS
- HOTEL_ROOM_TYPE_ARCHIVE_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_ARCHIVE_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_ARCHIVE_SUCCESS
- HOTEL_ROOM_TYPE_SEARCH_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_SEARCH_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_SEARCH_SUCCESS
- HOTEL_ROOM_TYPE_GET_ITEM_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_GET_ITEM_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_GET_ITEM_SUCCESS
- HOTEL_ROOM_TYPE_UPDATE_ORDERING_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_UPDATE_ORDERING_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_UPDATE_ORDERING_SUCCESS
- HOTEL_ROOM_TYPE_UPDATE_ORDERING_NESTED_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_UPDATE_ORDERING_NESTED_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_UPDATE_ORDERING_NESTED_SUCCESS
- HOTEL_ROOM_TYPE_GET_TREE_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_GET_TREE_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_GET_TREE_SUCCESS
- HOTEL_ROOM_TYPE_CHECKOUT_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_CHECKOUT_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_CHECKOUT_SUCCESS
- HOTEL_ROOM_TYPE_GET_LIST_SUCCESS
- HOTEL_ROOM_TYPE_ADMIN_GET_LIST_SUCCESS
- HOTEL_ROOM_TYPE_FRONT_GET_LIST_SUCCESS
- HOTEL_ROOM_ADMIN_SEARCH_SUCCESS
- HOTEL_PRICE_RULE_ADMIN_CREATE_SUCCESS
- HOTEL_PRICE_RULE_ADMIN_SEARCH_SUCCESS
- HOTEL_PRICE_RULE_ADMIN_DELETE_SUCCESS
- HOTEL_ROOM_SCHEDULE_STORE_SUCCESS
- HOTEL_ROOM_SCHEDULE_ADMIN_STORE_SUCCESS
- HOTEL_ROOM_SCHEDULE_FRONT_STORE_SUCCESS
- HOTEL_ROOM_SCHEDULE_ADMIN_UPDATE_SUCCESS

#### 403 - 禁止訪問 (12 個常數)
- HOTEL_ROOM_TYPE_STORE_WITH_EXIST_ALIAS
- HOTEL_ROOM_TYPE_ADMIN_STORE_WITH_EXIST_ALIAS
- HOTEL_ROOM_TYPE_FRONT_STORE_WITH_EXIST_ALIAS
- HOTEL_ROOM_TYPE_STORE_NESTED_WITH_EXIST_PATH
- HOTEL_ROOM_TYPE_ADMIN_STORE_NESTED_WITH_EXIST_PATH
- HOTEL_ROOM_TYPE_FRONT_STORE_NESTED_WITH_EXIST_PATH
- HOTEL_ROOM_TYPE_CHECKOUT_FAIL
- HOTEL_ROOM_TYPE_ADMIN_CHECKOUT_FAIL
- HOTEL_ROOM_TYPE_FRONT_CHECKOUT_FAIL
- HOTEL_ROOM_TYPE_IS_LOCKED
- HOTEL_ROOM_TYPE_ADMIN_IS_LOCKED
- HOTEL_ROOM_TYPE_FRONT_IS_LOCKED

#### 404 - 資源不存在 (3 個常數)
- HOTEL_ROOM_TYPE_ITEM_NOT_EXIST
- HOTEL_ROOM_TYPE_ADMIN_ITEM_NOT_EXIST
- HOTEL_ROOM_TYPE_FRONT_ITEM_NOT_EXIST

#### 500 - 伺服器錯誤 (57 個常數)
- HOTEL_ROOM_TYPE_CREATE_FAIL
- HOTEL_ROOM_TYPE_ADMIN_CREATE_FAIL
- HOTEL_ROOM_TYPE_FRONT_CREATE_FAIL
- HOTEL_ROOM_TYPE_CREATE_NESTED_FAIL
- HOTEL_ROOM_TYPE_ADMIN_CREATE_NESTED_FAIL
- HOTEL_ROOM_TYPE_FRONT_CREATE_NESTED_FAIL
- HOTEL_ROOM_TYPE_UPDATE_FAIL
- HOTEL_ROOM_TYPE_ADMIN_UPDATE_FAIL
- HOTEL_ROOM_TYPE_FRONT_UPDATE_FAIL
- HOTEL_ROOM_TYPE_STORE_FAIL
- HOTEL_ROOM_TYPE_ADMIN_STORE_FAIL
- HOTEL_ROOM_TYPE_FRONT_STORE_FAIL
- HOTEL_ROOM_TYPE_UPDATE_NESTED_FAIL
- HOTEL_ROOM_TYPE_ADMIN_UPDATE_NESTED_FAIL
- HOTEL_ROOM_TYPE_FRONT_UPDATE_NESTED_FAIL
- HOTEL_ROOM_TYPE_TRASH_FAIL
- HOTEL_ROOM_TYPE_ADMIN_TRASH_FAIL
- HOTEL_ROOM_TYPE_FRONT_TRASH_FAIL
- HOTEL_ROOM_TYPE_DELETE_FAIL
- HOTEL_ROOM_TYPE_ADMIN_DELETE_FAIL
- HOTEL_ROOM_TYPE_FRONT_DELETE_FAIL
- HOTEL_ROOM_TYPE_DELETE_NESTED_FAIL
- HOTEL_ROOM_TYPE_ADMIN_DELETE_NESTED_FAIL
- HOTEL_ROOM_TYPE_FRONT_DELETE_NESTED_FAIL
- HOTEL_ROOM_TYPE_PUBLISH_FAIL
- HOTEL_ROOM_TYPE_ADMIN_PUBLISH_FAIL
- HOTEL_ROOM_TYPE_FRONT_PUBLISH_FAIL
- HOTEL_ROOM_TYPE_UNPUBLISH_FAIL
- HOTEL_ROOM_TYPE_ADMIN_UNPUBLISH_FAIL
- HOTEL_ROOM_TYPE_FRONT_UNPUBLISH_FAIL
- HOTEL_ROOM_TYPE_STATE_FAIL
- HOTEL_ROOM_TYPE_ADMIN_STATE_FAIL
- HOTEL_ROOM_TYPE_FRONT_STATE_FAIL
- HOTEL_ROOM_TYPE_ARCHIVE_FAIL
- HOTEL_ROOM_TYPE_ADMIN_ARCHIVE_FAIL
- HOTEL_ROOM_TYPE_FRONT_ARCHIVE_FAIL
- HOTEL_ROOM_TYPE_SEARCH_FAIL
- HOTEL_ROOM_TYPE_ADMIN_SEARCH_FAIL
- HOTEL_ROOM_TYPE_FRONT_SEARCH_FAIL
- HOTEL_ROOM_TYPE_UPDATE_ORDERING_FAIL
- HOTEL_ROOM_TYPE_ADMIN_UPDATE_ORDERING_FAIL
- HOTEL_ROOM_TYPE_FRONT_UPDATE_ORDERING_FAIL
- HOTEL_ROOM_TYPE_UPDATE_ORDERING_NESTED_FAIL
- HOTEL_ROOM_TYPE_ADMIN_UPDATE_ORDERING_NESTED_FAIL
- HOTEL_ROOM_TYPE_FRONT_UPDATE_ORDERING_NESTED_FAIL

---

**最後更新**: 2025年10月30日  
**版本**: 1.0  
**相關檔案**: `src/constants/hotel.php`  
**對應 API 文件**: [Pet Hotel API 文件](../pet-hotel/api-documentation.md)
