---
# System prepended metadata

title: DB

---

### `users`

| 欄位名稱   | 型態      | 關聯   | 規則                        | 中文說明     |
|------------|-----------|--------|-----------------------------|--------------|
| id         | uuid      |        | primary key                 | 使用者 ID    |
| email      | varchar   |        |                             | 電子信箱     |
| password   | varchar   |        |                             | 密碼         |
| provider   | varchar   |        |                             | 第三方登入來源 |
| provider_id| varchar   |        |                             | 第三方帳號 ID |
| role       | enum      |        | consumer \| store \| admin | 使用者角色   |
| created_at | timestamp |        |                             | 建立時間     |
| updated_at | timestamp |        |                             | 更新時間     |

---
### `user_brand`

| 欄位名稱   | 型態      | 關聯           | 規則                                  | 中文說明             |
|------------|-----------|----------------|---------------------------------------|----------------------|
| id         | uuid      |                | primary key                           | 主鍵                 |
| user_id    | uuid      | → users.id     | foreign key                           | 使用者 ID            |
| brand_id   | uuid      | → brand.id     | foreign key                           | 品牌 ID              |
| role       | enum      |                | owner \| manager \| staff             | 使用者在品牌中的角色 |
| is_active  | boolean   |                | default: true                         | 是否啟用             |
| created_at | timestamp |                | default: now()                        | 建立時間             |
| updated_at | timestamp |                | on update current_timestamp           | 更新時間             |

---

### `user_profile`

| 欄位名稱   | 型態      | 關聯         | 規則     | 中文說明     |
|------------|-----------|--------------|----------|--------------|
| id         | uuid      |              | primary key | 個人資料 ID |
| user_id    | uuid      | → users.id   | foreign key | 使用者 ID   |
| name       | varchar   |              |          | 姓名         |
| phone      | varchar   |              |          | 電話         |
| birthday   | date      |              |          | 生日         |
| gender     | enum      |              | m \| f   | 性別         |
| avatar     | varchar   |              |          | 頭像 URL     |
| created_at | timestamp |              |          | 建立時間     |
| updated_at | timestamp |              |          | 更新時間     |

---

### `payment_methods`

| 欄位名稱     | 型態      | 關聯         | 規則        | 中文說明     |
|--------------|-----------|--------------|-------------|--------------|
| id           | uuid      |              | primary key | 付款方式 ID  |
| user_id      | uuid      | → users.id   | foreign key | 所屬使用者 ID |
| card_brand   | varchar   |              |             | 卡片品牌     |
| last4        | varchar   |              |             | 卡號後四碼   |
| exp_month    | int       |              |             | 到期月份     |
| exp_year     | int       |              |             | 到期年份     |
| created_at   | timestamp |              |             | 建立時間     |
| updated_at   | timestamp |              |             | 更新時間     |

---

### `subscriptions`

| 欄位名稱         | 型態      | 關聯                   | 規則                      | 中文說明       |
|------------------|-----------|------------------------|---------------------------|----------------|
| id               | uuid      |                        | primary key               | 訂閱紀錄 ID    |
| user_id          | uuid      | → users.id             | foreign key               | 所屬使用者 ID  |
| plan             | enum      |                        | free \| plus \| pro       | 訂閱方案       |
| price            | int       |                        |                           | 價格           |
| started_at       | timestamp |                        |                           | 開始時間       |
| end_at           | timestamp |                        |                           | 結束時間       |
| is_recurring     | boolean   |                        |                           | 是否自動續訂   |
| cancelled_at     | timestamp |                        |                           | 取消時間       |
| paytime          | timestamp |                        |                           | 實際付款時間   |
| payment_method_id| uuid      | → payment_methods.id   | foreign key               | 使用的付款方式 |

### `plans_room`

| 欄位名稱              | 型態      | 關聯                     | 規則        | 中文說明           |
|-----------------------|-----------|--------------------------|-------------|--------------------|
| id                    | uuid      |                          | primary key | 方案房型 ID        |
| hotel_id              | uuid      | → hotels.id              | foreign key | 所屬飯店 ID        |
| hotel_room_id         | uuid      | → hotel_rooms.id         | foreign key | 對應實體房型 ID    |
| price                 | decimal   |                          |             | 原始價格           |
| subscription_discount | decimal   |                          |             | 訂閱價格        |
| imageUrl              | varchar   |                          |             | 房型圖片 URL       |
| start_time            | timestamp |                          |             | 可預約開始時間     |
| end_time              | timestamp |                          |             | 可預約結束時間     |
| is_active             | boolean   |                          |             | 是否啟用           |
| created_at            | timestamp |                          |             | 建立時間           |
| updated_at            | timestamp |                          |             | 最後更新時間       |


### `products`

| 欄位名稱   | 型態      | 關聯            | 規則        | 中文說明       |
|------------|-----------|-----------------|-------------|----------------|
| id         | uuid      |                 | primary key | 商品 ID        |
| hotel_id   | uuid      | → hotels.id     | foreign key | 所屬飯店 ID    |
| name       | varchar   |                 |             | 商品名稱       |
| feature    | varchar   |                 |             | 商品特色       |
| description| text      |                 |             | 商品描述       |
| imageUrl   | varchar   |                 |             | 商品圖片 URL   |
| created_at | timestamp |                 |             | 建立時間       |
| updated_at | timestamp |                 |             | 最後更新時間   |

---

### `plans_product`

| 欄位名稱   | 型態      | 關聯             | 規則        | 中文說明         |
|------------|-----------|------------------|-------------|------------------|
| id         | uuid      |                  | primary key | 方案商品 ID      |
| product_id | uuid      | → products.id    | foreign key | 對應商品 ID      |
| imageUrl   | varchar   |                  |             | 方案圖片 URL     |
| description| text      |                  |             | 方案描述         |
| is_active  | boolean   |                  |             | 是否啟用         |
| created_at | timestamp |                  |             | 建立時間         |
| updated_at | timestamp |                  |             | 最後更新時間     |


### `room_types`

| 欄位名稱     | 型態        | 關聯 | 規則        | 中文說明       |
|--------------|-------------|------|-------------|----------------|
| id           | uuid        |      | primary key | 房型類別 ID    |
| brand_id     | uuid        | → brand.id       | foreign key | 所屬品牌 ID      |
| name         | varchar     |      |             | 房型名稱       |
| description  | text        |      |             | 房型描述(房型特色,貼心服務)   |
| room_service | text[]      |      |             | 提供房內服務清單    |
| created_at   | timestamp   |      |             | 建立時間       |
| updated_at   | timestamp   |      |             | 最後更新時間    |


### 飯店圖片表（hotel_images）

| 欄位名稱       | 型態     | 關聯                   | 規則   | 中文說明                  |
|--------------|-----------|------------------------|-------------|-----------|
| id           | uuid      | → hotels.id            | primary  key | 飯店圖片 ID      |
| hotel_id     | uuid      | → hotels.id            | foreign key  | 所屬飯店 ID      |
| image_url    | text      |                        |              | 圖片URL         |
| is_cover     | booleam   |                        |              | 是否為封面       |
| position     | int       |                        |              |顯示順序          |
| created_at   | timestamp |                        |              | 建立時間         |
| updated_at   | timestamp |                        |              | 最後更新時間     |




### `hotel_rooms`

| 欄位名稱     | 型態      | 關聯                   | 規則        | 中文說明         |
|--------------|-----------|------------------------|-------------|------------------|
| id           | uuid      |                        | primary key | 飯店房間 ID      |
| hotel_id     | uuid      | → hotels.id            | foreign key | 所屬飯店 ID      |
| room_type_id | uuid      | → room_types.id        | foreign key | 房型類別 ID      |
| base_price   | decimal   |                        |             | 基本房價         |
| description  | text      |                        |             | 房間描述         |
| description  | text      |                        |             | 房間描述         |
| imageUrl     | varchar   |                        |             | 房間圖片 URL     |
| is_active    | boolean   |                        |             | 是否啟用         |
| created_at   | timestamp |                        |             | 建立時間         |
| updated_at   | timestamp |                        |             | 最後更新時間     |


### `rooms`（實體房間）

| 欄位名稱      | 型態      | 關聯                    | 規則                                          | 中文說明     |
|---------------|-----------|-------------------------|-----------------------------------------------|--------------|
| id            | uuid      |                         | primary key                                   | 房間實體 ID  |
| hotel_room_id | uuid      | → hotel_rooms.id        | foreign key                                   | 所屬房型 ID  |
| room_number   | varchar   |                         |                                               | 房號         |
| status        | enum      |                         | available \| occupied \| cleaning \| maintenance | 房間狀態     |
| floor         | int       |                         |                                               | 所在樓層     |
| created_at    | timestamp |                         |                                               | 建立時間     |
| updated_at    | timestamp |                         |                                               | 最後更新時間 |

---

### ` room_occupancy`（每日房況表）

| 欄位名稱   | 型態      | 關聯               | 規則        | 中文說明     |
|------------|-----------|--------------------|-------------|--------------|
| id         | uuid      |                    |             | 房況紀錄 ID  |
| room_id    | uuid      | → rooms.id         | foreign key | 所屬房間 ID  |
| date       | date      |                    | primary key | 日期        |
| detail     | jsonb     |                    |             | json        |
| created_at | timestamp |                    |             | 建立時間     |
| updated_at | timestamp |                    |             | 最後更新時間 |

---

### `room_record`（房務紀錄表）

| 欄位名稱     | 型態      | 關聯                  | 規則                                                | 中文說明         |
|--------------|-----------|-----------------------|-----------------------------------------------------|------------------|
| id           | uuid      |                       | primary key                                         | 房務紀錄 ID      |
| room_id      | uuid      | → rooms.id            | foreign key                                         | 所屬房間 ID      |
| task_type    | enum      |                       | cleaning \| maintenance \| inspection              | 房務類型         |
| description  | text      |                       |                                                     | 任務描述         |
| status       | enum      |                       | pending \| in_progress \| completed                 | 任務狀態         |
| assigned_to  | uuid      | → users.id            | foreign key                                         | 指派員工 ID      |
| scheduled_at | timestamp |                       |                                                     | 預定執行時間     |
| completed_at | timestamp |                       |                                                     | 完成時間         |
| created_at   | timestamp |                       |                                                     | 建立時間         |
| updated_at   | timestamp |                       |                                                     | 最後更新時間     |

### `hotels`（分館據點）

| 欄位名稱        | 型態      | 關聯             | 規則        | 中文說明         |
|-----------------|-----------|------------------|-------------|------------------|
| id              | uuid      |                  | primary key | 飯店 ID           |
| brand_id        | uuid      | → brand.id       | foreign key | 所屬品牌 ID        |
| region          | varchar   |                  |             | 地區              |
| name            | varchar   |                  |             | 飯店名稱           |
| address         | varchar   |                  |             | 飯店地址           |
| phone           | varchar   |                  |             | 連絡電話           |
| transportation  | varchar   |                  |             | 交通方式           |
| hotel_policies  | varchar   |                  |             | 飯店訂房須知        |
| latitude        | decimal   |                  |             | 緯度              |
| longitude       | decimal   |                  |             | 經度              |

| hotel_facilities| text[]    |                  |             | 飯店設施         |
| is_active       | bool      |                  |             | 是否啟用         |
| created_at      | timestamp |                  |             | 建立時間         |
| updated_at      | timestamp |                  |             | 最後更新時間     |

---

### `brand`（品牌資料）

| 欄位名稱   | 型態    | 關聯 | 規則        | 中文說明     |
|------------|---------|------|-------------|--------------|
| id         | uuid    |      | primary key | 品牌 ID      |
| logo_url   | varchar |      |             | 品牌 Logo    |
| title      | varchar |      |             | 品牌名稱     |
| description| varchar |      |             | 品牌介紹     |

---

### `payment_transaction`（付款交易）

| 欄位名稱               | 型態    | 關聯                | 規則                                                        | 中文說明         |
|------------------------|---------|---------------------|-------------------------------------------------------------|------------------|
| id                     | uuid    |                     | primary key                                                 | 交易 ID          |
| user_id                | uuid    | → users.id          | foreign key                                                 | 使用者 ID        |
| order_type             | enum    |                     | room \| subscription                                        | 訂單類型         |
| status                 | enum    |                     | pending \| paid \| failed \| refunded                       | 付款狀態         |
| method                 | varchar |                     | 信用卡、Line Pay、ATM 等                                      | 付款方式         |
| amount                 | decimal |                     |                                                             | 總金額           |
| paid_at                | timestamp |                   |                                                             | 付款時間         |
| gateway_transaction_id | varchar |                     |                                                             | 金流交易編號     |
| gateway_status         | varchar |                     |                                                             | 金流回傳狀態     |
| confirmed_at           | timestamp |                   |                                                             | 確認時間         |
| reconciliation_status  | enum    |                     | matched \| unmatched \| duplicate \| refunded               | 對帳狀態         |
| reconciliation_at      | string  |                     |                                                             | 對帳時間         |
| fee                    | decimal |                     |                                                             | 手續費           |
| net_income             | decimal |                     |                                                             | 實收金額         |
| created_at             | timestamp |                   |                                                             | 建立時間         |
| updated_at             | timestamp |                   |                                                             | 最後更新時間     |

---

### `order_subscription`（訂閱訂單）

| 欄位名稱          | 型態    | 關聯                      | 規則                                | 中文說明         |
|-------------------|---------|---------------------------|-------------------------------------|------------------|
| id                | uuid    |                           | primary key                         | 訂閱訂單 ID      |
| user_id           | uuid    | → users.id                | foreign key                         | 使用者 ID        |
| subscription_id   | uuid    | → subscriptions.id        | foreign key                         | 訂閱項目 ID      |
| cycle             | enum    |                           | monthly \| quarterly \| yearly      | 訂閱週期         |
| next_billing_date | date    |                           |                                     | 下次扣款日       |
| status            | enum    |                           | active \| paused \| cancelled       | 訂閱狀態         |
| created_at        | timestamp |                         |                                     | 建立時間         |
| updated_at        | timestamp |                         |                                     | 最後更新時間     |

---

### `payment_order_subscription`（訂閱付款對應）

| 欄位名稱      | 型態    | 關聯                              | 規則        | 中文說明         |
|---------------|---------|-----------------------------------|-------------|------------------|
| id            | uuid    |                                   | primary key | 訂閱付款關聯 ID  |
| transaction_id| uuid    | → payment_transaction.id          | foreign key | 對應付款 ID      |
| order_id      | uuid    | → order_subscription.id           | foreign key | 對應訂單 ID      |
| created_at    | timestamp |                                 |             | 建立時間         |

---

### `order_room_product`（房間商品訂單）

| 欄位名稱        | 型態    | 關聯                       | 規則                              | 中文說明           |
|-----------------|---------|----------------------------|-----------------------------------|--------------------|
| id              | uuid    |                            | primary key                       | 房間訂單 ID        |
| user_id         | uuid    | → users.id                 | foreign key                       | 使用者 ID          |
| hotel_id        | uuid    | → hotels.id                | foreign key                       | 飯店 ID            |
| plans_room_id   | uuid    | → plans_room.id            | foreign key                       | 房型方案 ID        |
| check_in_date   | date    |                            |                                   | 入住日期           |
| check_out_date  | date    |                            |                                   | 退房日期           |
| total_price     | decimal |                            |                                   | 總金額               |
| status          | enum    |                            | pending \| confirmed \| cancelled | 訂單狀態           |
| payment_name    | varchar |                            |                                   | 付款人姓名         |
| payment_phone   | varchar |                            |                                   | 付款人電話         |
| payment_email   | varchar |                            |                                   | 付款人信箱         |
| contact_name    | varchar |                            |                                   | 聯絡人姓名         |
| contact_phone   | varchar |                            |                                   | 聯絡人電話         |
| contact_email   | varchar |                            |                                   | 聯絡人信箱         |
| created_at      | timestamp |                          |                                   | 建立時間           |
| updated_at      | timestamp |                          |                                   | 最後更新時間       |

---

### `order_room_product_item`（訂單內商品項目）

| 欄位名稱        | 型態    | 關聯                              | 規則        | 中文說明           |
|-----------------|---------|-----------------------------------|-------------|--------------------|
| id              | uuid    |                                   | primary key | 商品項目 ID        |
| order_id        | uuid    | → order_room_product.id           | foreign key | 所屬訂單 ID        |
| plans_product_id| uuid    | → plans_product.id                | foreign key | 對應商品方案 ID    |
| status          | enum    |                                   | pending \| confirmed \| cancelled | 訂單狀態           |
| quantity        | int     |                                   |             | 數量               |
| unit_price      | decimal |                                   |             | 單價               |
| created_at      | timestamp |                                 |             | 建立時間           |
| updated_at      | timestamp |                                 |             | 最後更新時間       |

---

### `payment_order_room_product`（房間訂單付款）

| 欄位名稱      | 型態    | 關聯                            | 規則        | 中文說明           |
|---------------|---------|---------------------------------|-------------|--------------------|
| id            | uuid    |                                 | primary key | 房間訂單付款 ID    |
| transaction_id| uuid    | → payment_transaction.id        | foreign key | 對應付款 ID        |
| order_id      | uuid    | → order_room_product.id         | foreign key | 對應訂單 ID        |
| created_at    | timestamp |                               |             | 建立時間           |

---

### `documents`（前台文件）

| 欄位名稱     | 型態    | 關聯 | 規則                                | 中文說明         |
|--------------|---------|------|-------------------------------------|------------------|
| id           | uuid    |      | primary key                         | 文件 ID           |
| type         | enum    |      | faq \| news \| terms \| privacy     | 文件類型          |
| title        | varchar |      |                                     | 文件標題          |
| content      | varchar |      |                                     | 文件內容          |
| is_published | boolean |      |                                     | 是否發布          |
| published_at | timestamp |    |                                     | 發布時間          |
| created_at   | timestamp |    |                                     | 建立時間          |
| updated_at   | timestamp |    |                                     | 最後更新時間       |

