# Pet Hotel 部署文件

## 概述

本文檔詳細說明 Pet Hotel 功能的測試環境、正式環境上版部署流程。

## 測試環境

### 環境資訊
- 網址：`admin.ipetbooking.daydream-lab.com`
- 伺服器：查看NAS中的文件
- SSH 連線憑證：`<NAS:/key/developer.pem>`
- Git 分支：`ipetbooking/feat/pet-hotel`
- 主機專案目錄：/var/www/html/com/daydream-lab/ipetbooking.daydream-lab.com
- PHP 版本：7.4
- 部署工具：Git + Laravel Artisan

### 部署流程

#### Step 1：連線至測試機
```bash
ssh -i <private-key.pem> ubuntu@<ip>
```

#### Step 2：切換使用者
```bash
sudo su apache
```

#### Step 3：進入 package 目錄
```bash
cd /var/www/html/com/daydream-lab/ipetbooking.daydream-lab.com/vendor/daydreamlab/dddream
```

#### Step 4：拉取指定分支最新程式碼
分支：`ipetbooking/feat/pet-hotel`
```bash
git pull
```

#### Step 5：執行 migrate
回專案根目錄：/var/www/html/com/daydream-lab/ipetbooking.daydream-lab.com/
```bash
php artisan migrate
```

此 migration 會自動執行以下操作：
- 在 `plans_components` 表中新增「寵物住宿」component（alias: `hotel`）
- 在 `users_groups_access` 表中，為 `group_id` 為 `7, 8, 9, 10, 12` 的記錄，在 `assets` 欄位中加入 `hotel`, `view-hotel`, `add-hotel`

#### Step 6：（可選）為指定 Merchant 分配 Hotel Component
如果需要為特定 merchant 啟用住宿功能，可以使用以下 command：

```bash
php artisan ddream:assign-merchant-component {merchant_alias_or_id} hotel --isFree=1 --price=0 --available=1
```

**參數說明：**
- `{merchant_alias_or_id}`：Merchant 的 alias 或 ID
- `hotel`：Component 的 alias（或可使用 component ID）
- `--isFree=1`：是否為免費 component（預設：1）
- `--price=0`：Component 價格（預設：0）
- `--buyUnit=0`：購買單位數（預設：0）
- `--available=1`：可用單位數（預設：0）

**範例：**
```bash
# 使用 merchant alias
php artisan ddream:assign-merchant-component wegood hotel --isFree=1 --available=1

# 使用 merchant ID
php artisan ddream:assign-merchant-component 1 hotel --isFree=1 --available=1
```

**注意：**
- 如果 merchant 已經擁有該 component，command 會自動更新現有記錄
- 此步驟為可選，僅在需要為特定 merchant 啟用住宿功能時執行
