UC_Đặt sân & Lịch
Giới thiệu & tài liệu liên quan
Đặc tả Use Case cho 3 nghiệp vụ chính của module Đặt sân & Lịch (OW-02). Xem thêm Tổng quan module · SRS · UI.
UC1 — Theo dõi lịch Gantt qua bộ lọc & popup inline
| Mục | Nội dung |
|---|---|
| Use Case ID | UC_OW02_GANTT_001 |
| Use Case Name | Theo dõi lịch Gantt & xem chi tiết booking |
| Use Case Description | Người trực ca lọc lịch theo chi nhánh, loại sân và thời gian; lịch Gantt hiển thị slot màu theo trạng thái cùng 4 card thống kê. Nhấn vào một slot có booking để mở popup chi tiết ngay dưới ô mà không rời trang. |
| System Under Design | Booking Client · Booking Server |
| Primary Actor | Quản lý ca · Thu ngân |
| Supporting/External Actor | Chủ sân |
| Priority | HIGH |
| Trigger | Người dùng mở trang Đặt sân và chọn bộ lọc |
| Pre-Condition | Người dùng đã đăng nhập; đã có chi nhánh và sân được khai báo |
| Post-Condition | Lịch Gantt, 4 card thống kê và panel chờ duyệt hiển thị đúng bộ lọc; popup chi tiết mở khi nhấn slot có booking |
Sơ đồ luồng — Basic Flow & ngoại lệ
Basic Flow
Basic Flow
| Bước | Actor | Mô tả hành động |
|---|---|---|
| 1 | Quản lý ca · Thu ngân | Mở trang Đặt sân & Lịch |
| 2 | Quản lý ca · Thu ngân | Chọn bộ lọc Chi nhánh · Loại sân · Thời gian (Ngày/Tháng/Năm) |
| 3 | Booking Server | Trả về 4 card thống kê, lịch Gantt theo slot và danh sách chờ duyệt |
| 4 | Booking Client | Hiển thị Gantt với slot màu theo trạng thái (trống/đã đặt/chờ duyệt/đang chơi/khoá) |
| 5 | Quản lý ca · Thu ngân | Nhấn một slot có booking |
| 6 | Booking Client | Mở popup chi tiết ngay dưới ô, kèm các nút theo trạng thái booking |
Alternative Flow
Alternative Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | AF_4A.1 | 4 | Nhấn slot xám (khoá bảo trì) → hệ thống hiện tooltip lý do, chỉ để xem, không có nút thao tác |
| 2 | AF_4B.1 | 4 | Nhấn slot trống → không mở popup thao tác; việc tạo booking thủ công thực hiện ở Bán hàng POS |
| 3 | AF_2A.1 | 2 | Người dùng đổi bộ lọc → toàn màn hình tự làm mới theo lựa chọn mới |
Exception Flow
Exception Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | EF_3.1 | 3 | Không có sân/booking khớp bộ lọc → hệ thống hiển thị trạng thái trống và gợi ý chỉnh bộ lọc |
| 2 | EF_3.2 | 3 | Mất kết nối realtime → hệ thống thông báo và tự kết nối lại để đồng bộ Gantt |
Business Rules
Business Rules
| TT | Mã | Quy tắc nghiệp vụ |
|---|---|---|
| 1 | BR1 | Mỗi slot trên Gantt thể hiện một khung 30 phút và mang đúng một màu trạng thái |
| 2 | BR2 | Phạm vi dữ liệu trong bộ lọc giới hạn theo chi nhánh người dùng được phân công |
| 3 | BR3 | Slot khoá chỉ để xem; mọi thao tác booking trên slot khoá đều bị chặn |
| 4 | BR4 | Lịch và card thống kê tự cập nhật realtime khi có booking mới hoặc khi sân bị khoá |
UC2 — Duyệt / từ chối booking online
| Mục | Nội dung |
|---|---|
| Use Case ID | UC_OW02_APPROVE_002 |
| Use Case Name | Duyệt / từ chối booking online |
| Use Case Description | Khách đặt sân từ app đẩy yêu cầu vào panel chờ duyệt kèm đếm ngược 30 phút. Quản lý ca duyệt để xác nhận (slot chuyển sang đã đặt) hoặc từ chối kèm lý do; nếu quá hạn, yêu cầu tự hết hiệu lực. |
| System Under Design | Booking Client · Booking Server |
| Primary Actor | Quản lý ca |
| Supporting/External Actor | Chủ sân · App khách hàng |
| Priority | HIGH |
| Trigger | Có booking online mới đẩy vào panel chờ duyệt (badge đếm +1) |
| Pre-Condition | Người dùng có quyền duyệt/từ chối trên chi nhánh được phân công |
| Post-Condition | Booking chuyển sang xác nhận hoặc bị từ chối; khách nhận thông báo tương ứng; Gantt cập nhật |
Sơ đồ luồng — Basic Flow & ngoại lệ
Basic Flow
Basic Flow
| Bước | Actor | Mô tả hành động |
|---|---|---|
| 1 | App khách hàng | Gửi yêu cầu đặt sân, đẩy card mới vào panel chờ duyệt |
| 2 | Booking Client | Hiện card với badge đếm và đồng hồ đếm ngược 30 phút |
| 3 | Quản lý ca | Mở chi tiết yêu cầu, nhấn [Duyệt] |
| 4 | Booking Server | Chuyển booking sang xác nhận, slot Gantt chuyển "Đã đặt" |
| 5 | Booking Server | Gửi thông báo "Đã xác nhận" về app khách |
Alternative Flow
Alternative Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | AF_2A.1 | 2 | Quản lý ca nhấn [Từ chối] và nhập lý do → slot trở về trống, khách nhận thông báo kèm lý do |
| 2 | AF_2B.1 | 2 | Quản lý ca nhấn xem chi tiết để kiểm tra thông tin khách trước khi quyết định |
Exception Flow
Exception Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | EF_2.1 | 2 | Quá 30 phút chưa xử lý → yêu cầu tự hết hiệu lực, card biến mất khỏi panel |
| 2 | EF_3.1 | 3 | Khung giờ vừa bị một booking khác chiếm → hệ thống báo xung đột, không cho duyệt |
| 3 | EF_3.2 | 3 | Người dùng không có quyền duyệt → ẩn nút và chỉ cho xem |
Business Rules
Business Rules
| TT | Mã | Quy tắc nghiệp vụ |
|---|---|---|
| 1 | BR5 | Booking online phải được xử lý trong 30 phút, hết hạn sẽ tự hết hiệu lực |
| 2 | BR6 | Từ chối bắt buộc kèm lý do để gửi về khách |
| 3 | BR7 | Chỉ vai trò có quyền duyệt mới thấy và thao tác trên panel chờ duyệt |
| 4 | BR8 | Sau khi duyệt, slot không cho yêu cầu khác chiếm cùng khung giờ |
UC3 — Check-in & gia hạn booking
| Mục | Nội dung |
|---|---|
| Use Case ID | UC_OW02_CHECKIN_003 |
| Use Case Name | Check-in, gia hạn & huỷ booking qua popup inline |
| Use Case Description | Từ popup chi tiết trên Gantt, người trực ca xác nhận khách đến (check-in) để chuyển slot sang "Đang chơi", gia hạn thêm giờ với giá tính theo bảng giá, hoặc huỷ kèm lý do và ghi chú nội bộ. |
| System Under Design | Booking Client · Booking Server |
| Primary Actor | Thu ngân · Quản lý ca |
| Supporting/External Actor | Chủ sân · Module Quản lý Chi nhánh & Sân (bảng giá) |
| Priority | HIGH |
| Trigger | Người dùng nhấn một slot có booking và mở popup inline |
| Pre-Condition | Booking đang ở trạng thái đã đặt hoặc đang chơi; người dùng đang trong ca trực |
| Post-Condition | Slot phản ánh trạng thái mới (đang chơi / kéo dài / trống); ghi chú và lý do được lưu |
Sơ đồ luồng — Basic Flow & ngoại lệ
Basic Flow
Basic Flow
| Bước | Actor | Mô tả hành động |
|---|---|---|
| 1 | Thu ngân · Quản lý ca | Nhấn slot có booking, mở popup chi tiết inline |
| 2 | Thu ngân · Quản lý ca | Với booking đã đặt, nhấn [Check-in] xác nhận khách đến |
| 3 | Booking Server | Chuyển slot sang "Đang chơi", cập nhật Gantt realtime |
| 4 | Thu ngân · Quản lý ca | Khi cần, chọn gia hạn +30 phút / +1 giờ trên popup |
| 5 | Booking Server | Hiển thị giá gia hạn theo bảng giá (Module Quản lý Chi nhánh & Sân) |
| 6 | Thu ngân · Quản lý ca | Xác nhận lưu; slot Gantt kéo dài theo thời gian gia hạn |
Alternative Flow
Alternative Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | AF_2B.1 | 2 | Người dùng nhấn [Huỷ], nhập lý do → slot về trống, kích hoạt hoàn tiền nếu chính sách yêu cầu |
| 2 | AF_2C.1 | 2 | Người dùng thêm ghi chú nội bộ cho booking để các ca sau nắm thông tin |
Exception Flow
Exception Flow
| TT | Mã | Liên quan bước | Mô tả |
|---|---|---|---|
| 1 | EF_3.1 | 5 | Khung giờ liền sau đã có booking khác → hệ thống báo không thể gia hạn, gợi ý đổi sân |
| 2 | EF_2.1 | 2 | Người dùng chỉ có quyền xem (Xem báo cáo) → ẩn nút thao tác, chỉ cho xem chi tiết |
Business Rules
Business Rules
| TT | Mã | Quy tắc nghiệp vụ |
|---|---|---|
| 1 | BR9 | Check-in chỉ áp dụng cho booking ở trạng thái đã đặt và chuyển slot sang "Đang chơi" |
| 2 | BR10 | Giá gia hạn lấy theo bảng giá hiện hành của loại sân (Module Quản lý Chi nhánh & Sân) |
| 3 | BR11 | Không cho gia hạn vượt qua khung giờ đã có booking khác |
| 4 | BR12 | Huỷ bắt buộc kèm lý do; hoàn tiền kích hoạt theo chính sách cấu hình ở OW-03 |
Non-Functional Requirements
Non-Functional Requirements
| TT | Loại | Yêu cầu |
|---|---|---|
| 1 | Realtime | Gantt và panel chờ duyệt cập nhật ngay khi có booking mới, được duyệt hoặc khi sân bị khoá |
| 2 | Khả dụng | Thao tác check-in, gia hạn, duyệt phản hồi tức thì ngay trên popup/panel mà không rời trang |
| 3 | Phân quyền | Bộ lọc và thao tác giới hạn theo phạm vi chi nhánh và vai trò người dùng |
| 4 | Toàn vẹn | Mọi thao tác đổi trạng thái booking kiểm tra xung đột khung giờ trước khi lưu |