> ## Documentation Index
> Fetch the complete documentation index at: https://tomotek.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# US-MER-03: Thiết lập Cửa hàng

> Merchant cấu hình thông tin cơ bản, ảnh đại diện, và giờ hoạt động (Business Hours) của cửa hàng.

## 1. Điều kiện tiên quyết (Pre-conditions)

* Merchant đã đăng nhập thành công và truy cập vào phân hệ **Cấu hình cửa hàng**.
* Hệ thống hiển thị các form nhập liệu trống hoặc dữ liệu đã lưu trước đó.

## 2. Tiêu chí chấp nhận (Acceptance Criteria)

> [accordion] US-MER-03.1: Thiết lập thông tin định danh (Profile)
>
> Cho phép nhập các thông tin sau:
>
> * **Tên Shop:** Bắt buộc, tối đa 50 ký tự.
> * **SĐT:** Bắt buộc, 10 số (theo chuẩn VN).
> * **Địa chỉ:** Nhập theo cấp hành chính (Tỉnh, Phường, …).
> * **Upload Avatar:** Định dạng JPG/PNG \< 5MB.
> * **Upload Hình ảnh cửa hàng:** Tối đa 4 ảnh chụp về Merchant (định dạng JPG/PNG \< 5MB mỗi ảnh).

> [accordion] US-MER-03.2 & 03.3: Cấu hình giờ hoạt động (Business Hours)
>
> * Hiển thị trình chọn giờ Mở/Đóng cửa cho từng ngày trong tuần (Thứ 2 - Chủ Nhật).
> * Bộ giờ tính theo giờ phương Đông (VD: 13:00, 14:00). Mặc định là 08:00 - 20:00.
> * **Chức năng thêm khung giờ (Split Shift):** Để Merchant thuận tiện trong việc setup giờ làm việc, mỗi Thứ sẽ có chức năng thêm khung giờ (Giới hạn tối đa 5 khung giờ/ngày).
>   * *Ví dụ:* `8:00-11:00` và `13:00-18:00`.

> [accordion] US-MER-03.4: Chức năng sao chép và xoá
>
> * **Sao chép:** Khi kích hoạt sao chép từ 1 Thứ bất kỳ, hệ thống hiển thị multi-select từ T2-CN để copy khung giờ sang các ngày khác.
> * **Xoá:** Khi kích hoạt xoá từ 1 thứ bất kỳ, hệ thống tự động làm mờ và không lưu thứ đó vào lịch hoạt động trong tuần của cửa hàng.

> [accordion] US-MER-03.6: Thiết lập giờ lưu trú (Stay-based Defaults)
>
> * Cho phép cấu hình giờ Check-in - Check-out (ví dụ: In 14:00 - Out 12:00) để làm mốc tính toán.
> * Default cho hai trường này là 14:00 - 12:00.
> * Dữ liệu này dùng để tính toán số đêm (Nights) cho dịch vụ Lưu trú (Hotels) nếu có.

## 3. Ràng buộc & Xử lý xung đột (Business Rules)

**1. US-MER-03.5: Ràng buộc logic thời gian**

Hệ thống báo lỗi và không cho lưu nếu **Giờ Đóng cửa ≤ Giờ Mở cửa** hoặc để trống các trường bắt buộc.

**2. US-MER-03.7: Luồng xử lý phân loại thay đổi**

Khi Merchant nhấn "Lưu thay đổi", hệ thống so sánh giờ cũ và mới:

* **Mở rộng khung giờ:** (VD: cũ 8h-17h, mới 8h-21h) ➡️ Cho phép lưu ngay (không ảnh hưởng booking cũ).
* **Thu hẹp/Xóa khung giờ:** (VD: cũ 8h-17h, mới 8h-12h hoặc xóa hẳn Thứ 2) ➡️ Kích hoạt **Kiểm tra xung đột**.
  * Hệ thống quét Booking (`Confirmed` hoặc `Pending`) trong 14 ngày tới mà bị rơi ra ngoài khung giờ mới vừa cấu hình hoặc ngày bị xóa.

**3. US-MER-03.8: Hiển thị Dialog giải quyết xung đột**

Nếu có xung đột, hệ thống **không được chặn cứng (Hard-stop)** mà hiển thị Dialog với danh sách các Booking bị ảnh hưởng và 3 tùy chọn:

1. **Tùy chọn 1: Giữ nguyên các Booking cũ (Khuyên dùng)**
   * Logic: Lưu giờ mới cho các ngày tương lai, nhưng riêng các ngày đã có booking thì vẫn sinh ra khung giờ ngoại lệ để phục vụ nốt khách.
2. **Tùy chọn 2: Hủy các Booking bị xung đột và thông báo**
   * Logic: Hệ thống tự động chuyển trạng thái các Booking xung đột thành `Cancelled` và gửi thông báo cho khách.
3. **Tùy chọn 3: Tự xử lý thủ công**
   * Logic: Lưu giờ mới ngay lập tức. Merchant cam kết sẽ tự liên hệ khách để dời lịch hoặc hủy trong Quản lý Booking.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.