# Admin UX Foundation — Cấu trúc thông tin, khái niệm và trạng thái (đề xuất)

> **Admin Foundation R8 đã được ChatGPT chấp nhận về Visual Baseline.** Phần *trạng thái nội dung* và *luồng AI* vẫn là **đề xuất UX** (baseline chưa quy định chuyển trạng thái); **Publication Language V1** (mục 6) là quyết định đã khóa. Chỉ là khái niệm thông tin để thiết kế giao diện — **không phải lược đồ cơ sở dữ liệu**, không phải quy trình production. Phase 1 không có tài liệu trong dự án; nếu mâu thuẫn thì Phase 1 thắng. Admin dùng tiếng Việt ở vòng đầu (đa ngôn ngữ cho Admin chưa quyết định). Sơ đồ: `admin-navigation-map.svg`.

## 1. Điều hướng tối giản (5 mục)
| # | Mục | Prototype | Ghi chú |
|---|---|---|---|
| 1 | Tổng quan | `admin-dashboard.html` | Việc cần xử lý, số đề theo trạng thái và nguồn |
| 2 | Đề thi | `admin-exams.html` | Danh sách, lọc, chi tiết (ngăn bên), tạo đề nháp |
| 3 | Ngân hàng câu hỏi | `admin-question-editor.html` | Trình biên soạn theo cấu trúc đề; danh sách ngân hàng chéo đề chưa thiết kế |
| 4 | Kiểm duyệt AI | `admin-ai-review.html` | Hàng chờ và duyệt lời giải/bản dịch |
| 5 | Media | hộp thoại “Thư viện media” trong trình biên soạn | Chọn/xem; không upload; trang quản lý media riêng chưa thiết kế |
**Không có:** tài chính, doanh thu, khóa học trả phí, CRM, hệ thống phân quyền. **Nhu cầu phân quyền quản trị đã được ghi nhận** (ví dụ tách người biên soạn/người duyệt/người xuất bản) nhưng **chưa thiết kế và chưa khóa** vai trò hay quyền (câu 108; `OPEN-DECISIONS.md`).

## 2. Khái niệm thông tin (không phải schema)
| Khái niệm | Vai trò trong giao diện |
|---|---|
| **Question** (Câu hỏi) | Một câu: hướng dẫn, nội dung, loại câu, đáp án. Độc lập hoặc thuộc nhóm. |
| **Question Group** (Nhóm câu hỏi) | Nhiều câu cùng hướng dẫn “※ [x~y]” và cùng bối cảnh. Loại: dùng chung đoạn văn / audio / hình ảnh / biểu đồ. |
| **Shared Context** (Bối cảnh dùng chung) | Đoạn văn, audio, hình hoặc biểu đồ mà **nhiều câu tham chiếu**. Sửa một lần → ảnh hưởng mọi câu dùng nó (giao diện cảnh báo). |
| **Answer** (Đáp án) | Đáp án đúng (trắc nghiệm). Tự luận: đáp án tham khảo chưa quy định; không rubric/điểm AI. |
| **Explanation** (Lời giải) | Giải thích cho một câu **theo ngôn ngữ**; chỉ bản đã duyệt tới người học. |
| **Translation** (Bản dịch) | Bản dịch nội dung đề **theo ngôn ngữ**; chỉ bản đã duyệt tới người học. |
| **Media Asset** (Tài nguyên media) | Audio/hình/biểu đồ/đính kèm lưu **tách khỏi câu hỏi**, tái sử dụng; câu/bối cảnh chỉ tham chiếu. |
Quan hệ: Question Group → Shared Context → Question(s) → {Answer, Explanation×ngôn ngữ, Translation×ngôn ngữ}; Shared Context/Question → Media Asset (tham chiếu, nhiều-nhiều).
Loại câu theo cấu trúc TOPIK II: trắc nghiệm 4 đáp án; tự luận ngắn (điền câu, 51–52); tự luận dài (53–54). **Không** ràng buộc loại câu cho TOPIK I và đề trước kỳ 35 (chưa có cấu trúc xác nhận).

## 3. Ba nhóm đề (hai nguồn tách riêng)
| Nhóm | Danh mục | Nguồn |
|---|---|---|
| TOPIK trước kỳ 35 | Sơ cấp, Trung cấp, Cao cấp | Đề TOPIK theo kỳ |
| TOPIK từ kỳ 35 | TOPIK I, TOPIK II | Đề TOPIK theo kỳ |
| Đề mô phỏng TIENGHANTOPIK | TOPIK I, TOPIK II | Đề mô phỏng |
Chỉ TOPIK II (từ kỳ 35 và mô phỏng) có cấu trúc xác nhận (Nghe → Viết liên tục → nghỉ 15 phút → Đọc). Các nhóm khác hiển thị “Chưa có thông tin cấu trúc”, không áp cấu trúc TOPIK II, không kiểm điều kiện xuất bản.

## 4. Trạng thái nội dung của đề (ĐỀ XUẤT UX — chưa có định nghĩa chuyển trạng thái)
**Bản nháp → Cần kiểm duyệt → Sẵn sàng xuất bản → Đã xuất bản** (chip: biểu tượng + chữ + kiểu viền). Baseline chưa quy định ai/điều kiện chuyển; prototype chỉ hiển thị và mô phỏng phản hồi. Nút **Xuất bản…** chỉ bật khi đề “Sẵn sàng xuất bản” **và** đủ điều kiện (mục 6), luôn qua hộp thoại xác nhận.

## 5. Trạng thái nội dung AI (mỗi lời giải/bản dịch theo ngôn ngữ)
| Trạng thái | Ý nghĩa giao diện | Hiển thị cho người học |
|---|---|---|
| Chưa tạo nội dung AI | Chưa có bản nháp | Không |
| Đang chờ kiểm duyệt | Có bản nháp Gemini, admin chưa xử lý | **Không** |
| Đã duyệt | Admin đã duyệt (tiếng Việt: bắt buộc V1; ngôn ngữ khác: bổ sung) | Chỉ khi đề được xuất bản (không tự động); ngôn ngữ khác chỉ khi bản ngôn ngữ đó đã duyệt |
| Yêu cầu chỉnh sửa | Admin trả về kèm ghi chú bắt buộc | Không |
| Không thể sử dụng / lỗi | Nháp hỏng hoặc admin loại; kèm lý do bắt buộc | Không |
Luồng: Nội dung câu hỏi → Gemini đề xuất → Admin kiểm duyệt → Đã duyệt → Đủ điều kiện xuất bản. **Không tự động xuất bản kết quả AI.** Giao diện luôn tách hai khung: “Đang áp dụng cho người học (đã duyệt)” (viền liền, biểu tượng khiên) và “Nháp AI — chưa duyệt — người học KHÔNG thấy” (viền nét đứt + nền sọc, nhãn cảnh báo).

## 6. Điều kiện xuất bản — Publication Language V1 (QUYẾT ĐỊNH ĐÃ KHÓA)
1. Mọi câu hỏi cần có **lời giải tiếng Việt** đã được admin duyệt.
2. Mọi câu hỏi cần có **bản dịch tiếng Việt** đã được admin duyệt.
3. Chỉ khi **toàn bộ câu hỏi** đáp ứng cả hai điều kiện, đề mới đủ điều kiện (kiểm duyệt nội dung) để xuất bản. Đề chưa có cấu trúc xác nhận (TOPIK I, trước kỳ 35) chưa kiểm được điều kiện.
4. **Gemini chỉ đề xuất nội dung; admin là người quyết định phê duyệt.** Không tự xuất bản kết quả AI.
5. Tiếng Anh, Hàn, Trung, Thái **không bắt buộc** để xuất bản V1. Trong giao diện Admin, các ngôn ngữ này là **nội dung bổ sung**: có trạng thái và số liệu hiển thị nhưng **không chặn** xuất bản.
6. Chỉ hiển thị cho người học nội dung bổ sung khi **phiên bản ngôn ngữ đó đã được admin duyệt**. Không tự dịch khi người học đang xem. Nội dung đề TOPIK gốc được bảo toàn.
Prototype: ma trận điều kiện theo ngôn ngữ có cột “Vai trò” (tiếng Việt “Bắt buộc V1: Đủ/Thiếu”; ngôn ngữ khác “Bổ sung (không chặn xuất bản)”). Chính sách này **thay thế** giả định cũ về việc phải đủ 5 ngôn ngữ (công tắc giả định đã gỡ).

## 7. Thao tác nguy hiểm (không bao giờ chỉ một cú nhấp)
Xuất bản (hộp thoại xác nhận) · Gỡ xuất bản (hộp thoại + **gõ mã đề**) · Xóa bản nháp (hộp thoại + gõ mã đề) · Duyệt AI (hộp thoại nêu hệ quả) · Yêu cầu chỉnh sửa (bắt buộc ghi chú) · Đánh dấu không thể sử dụng (bắt buộc lý do) · Chuyển câu khi có thay đổi chưa lưu (hộp thoại; bản chỉnh sửa được giữ). Nút nguy hiểm dùng viền mận, không dùng coral; nút mặc định trong hộp thoại là “Hủy”.
