Vận hành nguồn thu thuê xe chip ôn sa hình: lịch sân/xe, đặt phiên qua app, tính giờ tự động theo phiên chip, thu phí và đối soát doanh thu từng xe/khung giờ.
| Feature | BO chính | Action |
|---|---|---|
| calendar | Lịch sân / xe theo khung giờ | viewconfigure |
| rent | Phiên thuê + bảng giá | viewcreatereportbookcollect |
| BO | Trường chính |
|---|---|
| Lịch | Xe chip × khung giờ × sân · trạng thái (trống/đã đặt/bảo trì) |
| Phiên thuê | Học viên · xe · khung giờ đặt ↔ thời gian thực tế từ phiên chip · đơn giá · thành tiền · trạng thái thu |
| Bảng giá | Theo khung giờ (cao điểm/thấp điểm) · theo gói (5/10 phiên) · hiệu lực |
Khối permissions[] dán vào manifest.json; bảng dưới là gán quyền theo vai trò (seed rt_role). Permission key đầy đủ: booking.main.<feature>.<action>.
⚠️ Action đặc thù (book, collect) cần bổ sung vào validator manifest — xem plan data-scope P1.
| Feature | QTHT | GIAM_DOC | GIAO_VU | KE_TOAN | HOC_VIEN |
|---|---|---|---|---|---|
| calendar | R | R | W | — | R |
| rent | R | R | W | R | W² |
R xem · W tạo/sửa · A duyệt · — không có quyền · ¹ dữ liệu phân công · ² của chính mình · ³ theo trạng thái hồ sơ. Vai trò không liệt kê = không có quyền.
Đặc thù: rent +collect (KE_TOAN) · +book (GIAO_VU, HOC_VIEN)
(a) Manifest bổ sung fields + scopeVars cho feature bị scope (mở rộng schema — plan data-scope P1; manifest chỉ khai "cái gì scope được", không chứa rule):
(b) Điều kiện record theo vai trò:
| Vai trò | Feature (action) | Điều kiện record |
|---|---|---|
| HOC_VIEN | rent (view, book) | ma_dk ∈ ctx.current_ma_dk_list (phiên thuê của mình) |
(c) Seed rt_role.grants (kind rule — nhiều rule cùng resource+action = OR):
Biến ngữ cảnh: current_user_id — engine có sẵn · current_giao_vien_id/current_ma_gv — module teacher tra từ user đăng nhập (ctxVars, plan P3) · current_nguoi_lxid/current_ma_dk_list — module student tra (1 người nhiều lượt đăng ký) · current_assigned_* — danh sách phụ trách/được phân công.