Chấm điểm ôn luyện sa hình bằng xe gắn chip (GNSS-RTK + cảm biến): cấu hình 12 bài sa hình, nhận kết quả phiên ôn, đọc lỗi từng bài. Không cần thẩm định — bán được ngay; dữ liệu tích lũy là hồ sơ chứng minh khi đi thẩm định hệ sát hạch sau này.
| Feature | BO chính | Action |
|---|---|---|
| device | Thiết bị chip trên xe + trạm RTK | viewcreateedit |
| lesson | 12 bài sa hình (config điểm trừ/vị trí) | viewconfigure |
| session | Phiên ôn + kết quả/lỗi từng bài | viewimportexportscore |
| BO | Trường chính |
|---|---|
| Thiết bị | Seri · xe gắn · phiên bản firmware · trạm base RTK của sân |
| Bài sa hình | 12 bài theo chuẩn thi · bản đồ số vị trí/vạch · lỗi + điểm trừ (config — đổi bài thi chỉ cập nhật bản đồ) |
| Phiên ôn | Học viên (quẹt thẻ/khuôn mặt) × xe × thời gian · điểm tổng · lỗi từng bài · quỹ đạo |
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 đủ: chip.main.<feature>.<action>.
⚠️ Action đặc thù (score) cần bổ sung vào validator manifest — xem plan data-scope P1.
| Feature | QTHT | GIAM_DOC | KY_THUAT | GIAO_VU | GIAO_VIEN | HOC_VIEN |
|---|---|---|---|---|---|---|
| device | R | R | W | — | — | — |
| lesson | R | R | W | — | — | — |
| session | R | R | — | W | R¹ | R² |
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ù: session +import (GIAO_VU) · score = hệ thống chấm tự động
(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 |
|---|---|---|
| GIAO_VIEN | session (view) | ma_dk ∈ ctx.current_assigned_ma_dk_list (học viên phụ trách) |
| HOC_VIEN | session (view) | ma_dk ∈ ctx.current_ma_dk_list |
(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.