30. Quản lý mã (Code Management)#
Mục tiêu#
Cho phép Admin tạo và quản lý mã tham gia thử thách (promo code / invite code).
Luồng nghiệp vụ#
- Admin tạo mã mới: nhập mã hoặc sinh tự động, gán cho thử thách cụ thể.
- Import hàng loạt từ Excel.
- Xem danh sách mã: mã, thử thách liên kết, trạng thái (đã dùng / chưa dùng), ngày tạo.
- Xóa mã chưa sử dụng.
Ràng buộc dữ liệu#
| Trường | Kiểu | Bắt buộc | Ghi chú |
|---|---|---|---|
| Mã code | Text | Có | Duy nhất, không trùng |
| Thử thách | Ref (Event) | Có | Liên kết với chiến dịch |
| Trạng thái | Enum | Tự động | UNUSED / USED |
| Ngày tạo | DateTime | Tự động | |
| Người sử dụng | Ref (User) | Tự động | Ghi nhận khi mã được dùng |
API đã triển khai#
POST /manage-codes— Tạo mãGET /manage-codes— Danh sáchPOST /manage-codes/import-excel— Import từ ExcelDELETE /manage-codes/:id— Xóa mã
Tiêu chí chấp nhận (Acceptance Criteria)#
| # | Tiêu chí | Điều kiện đạt |
|---|---|---|
| AC-30.1 | Tạo mã | Tạo mã + gán thử thách → lưu thành công, hiển thị trong danh sách |
| AC-30.2 | Mã không trùng | Tạo mã đã tồn tại → hiển thị lỗi |
| AC-30.3 | Import Excel | Upload Excel → tạo hàng loạt, báo lỗi dòng trùng/sai |
| AC-30.4 | Xóa mã | Xóa mã chưa dùng → thành công. Xóa mã đã dùng → từ chối |
| AC-30.5 | Sử dụng mã | Creator nhập mã → tham gia thử thách invite-only, mã chuyển trạng thái USED |