WP-ADM-AUDIT-01 — Audit Dashboard + plan hoàn thiện
Domain: D-DOCS / S-ADM · WP: WP-ADM-AUDIT-01 · Ngày: 2026-08-20
Surfaces: ADM (dashboard/) · API chỉ đọc (không invent)
Canvas: plan visual cạnh chat (Cursor canvases)
1. Kết luận
Dashboard đã có 19 màn gắn API admin thật, nhưng chưa rõ việc (label EN, nhóm «Vertical», header kỹ thuật) và ma trận ghi quá so với Nest: nhiều cột Admin Dashboard chưa có route ADMIN nên không được vẽ UI giả.
| Lớp | Số | Ý |
|---|---|---|
| Sidebar có module | 19 | dashboard/src/App.tsx NAV |
| Có action (duyệt / hủy / sửa) | 13 | KYC, Partner, Driver, Ops xe+FNB, Hotel, Med, Pharm, School, Rent, Park, Places, CMS, Users |
| Mỏng / chỉ đọc / JSON | 6 | Fuel list, Delivery list, Wallet không cổng Pay, Health JSON, grocery trộn FNB, Driver capability confirm() |
| Domain ma trận «Admin» nhưng 0 UI + 0 admin API | 12 | Social, Review, Chat, ATM, Charging, Transit, Home, Bills, QR, Pay ops, Media lib, Assistant config |
2. Việc từng màn (admin đang làm gì)
| Nhóm | Màn cũ | Việc | API |
|---|---|---|---|
| — | Tổng quan | KPI users/xe/giao/FNB + queue duyệt | GET /users/admin/overview + list KYC/Partner/Driver/Support |
| Duyệt | eKYC | Approve/reject CCCD | GET/PATCH /kyc/admin |
| Duyệt | Partner | Approve/reject MST | GET/PATCH /partners/admin/applications |
| Duyệt | Driver | Approve/reject GPLX + capability | GET/PATCH /driver/admin/applications |
| Duyệt | Agent AI | Pause / chọn WP catalog | GET/PATCH /feature-flags/admin/agent-gate |
| Vận hành | Chuyến & đơn | Hủy chuyến, hủy đơn FNB, list giao | rides/admin · orders/admin · GET /delivery/admin |
| Vận hành | Sổ ví | Lọc CREDIT/DEBIT | GET /wallet/admin/ledger |
| Vận hành | Hỗ trợ | Reply / đóng ticket | GET/PATCH /support/admin/tickets |
| Đặt chỗ | Hotel … Parking | Confirm/hủy/verify theo vertical | */admin/overview + POST action |
| Bản đồ | Places CMS | CRUD POI + import Google | places admin |
| Bản đồ | Fuel | Xem trạm/giá/tồn | GET /fuel/admin/overview (không action) |
| Hệ thống | Phân quyền | 4 hat × 7 JWT | GET/PATCH /users/admin |
| Hệ thống | CMS / KM | Terms, promo, broadcast | cms · promotions · notifications/admin/broadcast |
| Hệ thống | Health | Ping deps | GET /health/admin/deps |
3. Thiếu giao diện — không làm nếu chưa có API
Ma trận 01 cột Admin Dashboard:
| Domain | Ma trận | Blocker |
|---|---|---|
| D-SOCIAL / D-REVIEW / D-CHAT | content / chat mod | Không */admin |
| D-ATM / D-CHARGING / D-TRANSIT | ATM CMS / map ops | Nearby CON; Places có thể nhận category sau |
| D-HOME / D-BILLS / D-QR | ops P8 | CON only |
| D-PAY | Payment ops | OWNER Pay/MoMo; ledger chưa aggregate cổng |
| D-MEDIA | Media lib | Upload dùng cho KYC/Places, không thư viện admin |
| D-ASSIST | AI config | Agent module = OWNER gate, không LLM settings |
| D-GROCERY | grocery ops | Cùng orders/admin với FNB |
| D-DELIVERY | ops đầy đủ | List rồi; chưa force-cancel admin (WP-FE-DELIVERY-ORDER-01 đã ghi gap) |
4. Plan (1 WP / turn)
| # | WP | Việc | BE mới? |
|---|---|---|---|
| 1 | WP-FE-ADM-IA-01 | Nav VI, nhóm Duyệt / Vận hành / Đặt chỗ / Bản đồ / Hệ thống, dòng mục đích, Health thẻ ok/fail | Không |
| 2 | WP-ADM-DELIVERY-OPS-01 | Chi tiết + hủy đơn giao | Có (PATCH admin) — OWNER chip |
| 3 | WP-FE-ADM-OPS-SPLIT-01 | Filter grocery vs FNB trên Ops | Query nếu BE đã có kind; không thì BE nhỏ |
| 4 | WP-FE-ADM-DRIVER-CAP-01 | Checkbox RIDE/COURIER/DELIVERY | Không |
| 5 | WP-ADM-MOD-01 | Moderation social/review/chat | Có — OWNER |
| 6 | WP-ADM-MAP-CMS-01 | ATM/sạc/buýt qua Places category hoặc overview | Có thể tái Places |
| 7 | WP-ADM-PAY-OPS-01 | Payment ops | OWNER Pay |
| 8 | WP-ADM-P8-OPS-01 | Bills / QR / home-service bookings | Có — OWNER |
Stop-gate: secret Pay/SMS/MoMo; không invent API khi agent-work-queue STUB empty.
5. AC wave 1 (IA)
- Sidebar tiếng Việt, nhóm theo việc admin.
- Mỗi màn có 1 câu «màn này để làm gì».
- Không hiện mã WP trên UI.
- Health: postgres / redis / minio, không JSON thuần.
- Swagger link theo
VITE_API_URL, không hardcode localhost.
6. File
- Plan này + canvas
dashboard-audit-plan.canvas.tsx - Code IA:
dashboard/src/nav.ts,App.tsx, modules titles,HealthModule.tsx