SRS_Nền tảng (Thông báo · Cài đặt · Audit)
Giới thiệu & tài liệu liên quan
Đặc tả yêu cầu phần mềm cho module Nền tảng (F-04 · OW-10 · SYS-02), phủ ba trụ cột Thông báo, Cài đặt và Audit log. Xem thêm Tổng quan module · UC · UI.
1/ Luồng Sequence
2/ Luồng di chuyển màn hình
3/ Đặc tả chi tiết theo màn hình
MH1: Trung tâm thông báo
Mô tả màn hình: Biểu tượng chuông kèm badge số chưa đọc; mở ra timeline thông báo theo thời gian, mỗi dòng có tiêu đề, mốc thời gian và trạng thái đọc/chưa đọc; nhấn để deep link vào module liên quan.
Sự kiện 1 — Xem & đánh dấu đã đọc
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Quản lý ca | Mở biểu tượng chuông, xem timeline thông báo |
| 2 | Quản lý ca | Đánh dấu một thông báo hoặc [Đánh dấu tất cả đã đọc] |
| 3 | Notification Engine | Hợp lệ: Cập nhật trạng thái đọc và badge chưa đọc |
Sự kiện 2 — Mở thông báo (deep link)
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Quản lý ca | Nhấn một thông báo trong timeline |
| 2 | Notification Client | Điều hướng tới đúng màn hình module liên quan |
Không hợp lệ — Sự kiện 2
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Mục tiêu deep link không còn tồn tại | "Nội dung liên quan không còn khả dụng." | Toàn màn hình · cảnh báo | Vẫn đánh dấu đã đọc, quay lại inbox |
MH2: Cấu hình thông báo & giờ yên tĩnh
Mô tả màn hình: Danh sách loại thông báo với công tắc bật/tắt theo từng loại; loại bắt buộc bị khoá; khu vực đặt khung giờ yên tĩnh (DND).
Sự kiện 1 — Bật/tắt loại & đặt giờ yên tĩnh
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Bật/tắt công tắc theo từng loại thông báo |
| 2 | Chủ sân | Đặt khung giờ yên tĩnh (Từ - Đến) |
| 3 | Notification Engine | Hợp lệ: Lưu cấu hình; áp cho thông báo phát sinh sau đó |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Cố tắt loại bắt buộc | "Thông báo này là bắt buộc, không thể tắt." | Dòng loại · cảnh báo | Giữ công tắc ở trạng thái bật |
| 2 | Giờ yên tĩnh có Từ ≥ Đến | "Khung giờ yên tĩnh không hợp lệ." | Dưới trường giờ · lỗi | Chặn lưu |
MH3: Cài đặt cơ sở
Mô tả màn hình: Form cài đặt cơ sở gồm tên sân, logo, giờ mở/đóng theo ngày, múi giờ, thông tin thuế; có các tab điều hướng sang Chính sách, Tích hợp và Audit log.
Sự kiện 1 — Cập nhật thông tin cơ sở
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Cập nhật tên, logo, giờ hoạt động, múi giờ, thông tin thuế |
| 2 | Chủ sân | Nhấn [Lưu] |
| 3 | Settings API | Hợp lệ: Lưu cài đặt, ghi audit, đồng bộ sang module liên quan |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Bỏ trống tên sân | "Vui lòng nhập tên cơ sở." | Dưới trường · lỗi | Chặn lưu, focus trường thiếu |
| 2 | Giờ mở muộn hơn giờ đóng | "Giờ mở cửa phải sớm hơn giờ đóng cửa." | Dưới trường giờ · lỗi | Chặn lưu |
| 3 | Không đủ quyền chỉnh cài đặt | "Bạn không có quyền chỉnh cài đặt này." | Toàn màn hình · cảnh báo | Ẩn nút lưu, chỉ cho xem |
MH4: Chính sách huỷ & đặt cọc
Mô tả màn hình: Danh sách rule hoàn tiền theo mốc thời gian trước giờ chơi; trường % đặt cọc; công tắc tự duyệt booking.
Sự kiện 1 — Thiết lập chính sách huỷ
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Thêm rule: mốc thời gian + % hoàn tiền |
| 2 | Chủ sân | Đặt % đặt cọc, bật/tắt tự duyệt booking |
| 3 | Settings API | Hợp lệ: Lưu chính sách, áp cho booking tạo sau thời điểm lưu |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | % hoàn / đặt cọc ngoài 0–100 | "Tỉ lệ phải nằm trong khoảng 0 đến 100." | Ô tỉ lệ · lỗi | Chặn lưu |
| 2 | Hai rule trùng mốc thời gian | "Mốc thời gian bị trùng, vui lòng điều chỉnh." | Dòng rule · lỗi | Chặn lưu |
MH5: Tích hợp bên thứ ba
Mô tả màn hình: Danh sách tích hợp (Zalo OA, Google Calendar, VNPay/MoMo, máy in nhiệt) với trạng thái kết nối, nút kết nối/ngắt và nút test in receipt.
Sự kiện 1 — Kết nối & kiểm thử tích hợp
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Chọn một tích hợp, nhấn [Kết nối] và nhập thông tin |
| 2 | Chủ sân | Nhấn [Test in receipt] với máy in |
| 3 | Settings API | Hợp lệ: Lưu kết nối, hiển thị trạng thái Đã kết nối |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Thông tin kết nối sai | "Không kết nối được, vui lòng kiểm tra lại thông tin." | Hộp thoại · lỗi | Giữ trạng thái Chưa kết nối |
| 2 | Manager chỉnh tích hợp thanh toán | "Chỉ Chủ sân được cấu hình tích hợp thanh toán." | Toàn màn hình · cảnh báo | Ẩn thao tác nhạy cảm |
MH6: Nhật ký kiểm toán (Audit log)
Mô tả màn hình: Thanh bộ lọc (Loại thao tác / Người dùng / Khoảng ngày); bảng log với cột thời điểm, người thực hiện, thao tác, diff tóm tắt; nút mở chi tiết và nút xuất CSV.
Sự kiện 1 — Lọc & xem chi tiết log
| STT | Tác nhân | Mô tả |
|---|---|---|
| 1 | Chủ sân | Chọn bộ lọc Loại thao tác / Người dùng / Khoảng ngày |
| 2 | Audit API | Truy vấn bản ghi immutable khớp bộ lọc |
| 3 | Chủ sân | Mở chi tiết một bản ghi: giá trị cũ → mới, actor, IP, thời điểm |
| 4 | Audit API | Hợp lệ: Trả về danh sách log kèm diff |
Không hợp lệ — Sự kiện 1
| STT | Trường hợp | Thông báo | Vị trí · Loại | Xử lý |
|---|---|---|---|---|
| 1 | Không có log khớp bộ lọc | "Không tìm thấy bản ghi nào khớp điều kiện." | Khu vực bảng · thông tin | Hiển thị danh sách rỗng, gợi ý nới lỏng |
| 2 | Không đủ quyền xem audit log | "Bạn không có quyền truy cập nhật ký kiểm toán." | Toàn màn hình · cảnh báo | Từ chối truy cập màn hình |
4/ Trường hợp đặc biệt
Case đặc biệt cần xử lý
- Case: Giờ yên tĩnh (DND). Trong khung giờ yên tĩnh, kênh đẩy ngoài ứng dụng bị hoãn nhưng thông báo vẫn được ghi vào inbox để người dùng xem sau.
- Case: Lỗi một kênh gửi. Một kênh tạm lỗi không chặn các kênh còn lại và không làm mất bản ghi inbox của các người nhận khác.
- Case: Chính sách không hồi tố. Booking đã tạo giữ nguyên chính sách tại thời điểm tạo; cài đặt/chính sách mới chỉ áp cho booking sau đó.
- Case: Audit immutable. Bản ghi log không thể sửa/xoá; mọi truy vấn chỉ đọc, lưu tối thiểu 5 năm phục vụ kiểm toán.