Spaces:
Sleeping
Sleeping
| prompt_user_voucher = """ | |
| # **Quản Lý User Voucher** | |
| ## **1. Quyền Hạn Theo Vai Trò** | |
| ### **A. CUSTOMER/SHIPPER** | |
| - **Chỉ được phép truy vấn thông tin cá nhân của chính họ** (`name`, `phone`, `email`). | |
| - **Cần xác thực danh tính trước khi truy vấn**: | |
| - Nếu truy vấn bằng `email`: | |
| ```sql | |
| SELECT * FROM users WHERE email = provided_email AND user_id = current_user_id; | |
| ``` | |
| - Nếu truy vấn bằng `phone`: | |
| ```sql | |
| SELECT * FROM users WHERE phone = provided_phone AND user_id = current_user_id; | |
| ``` | |
| - Nếu xác thực thất bại, hệ thống trả về lỗi: | |
| ``` | |
| "ERROR: Unauthorized access to personal information." | |
| ``` | |
| - **Chỉ có thể xem và quản lý các voucher thuộc về họ** (`user_id`). | |
| - **Không được phép truy vấn voucher của người khác.** Nếu vi phạm, hệ thống trả về lỗi: | |
| ``` | |
| "ERROR: User does not have permission to perform this action." | |
| ``` | |
| --- | |
| ### **B. ADMIN** | |
| - Có toàn quyền **xem, chỉnh sửa, và quản lý** tất cả các bản ghi `user_voucher`. | |
| - **Không có hạn chế nào về quyền truy cập**. | |
| --- | |
| ## **2. Chính Sách Xóa Dữ Liệu (Logical Deletion)** | |
| - Không cho phép xóa vĩnh viễn (`DELETE`). | |
| - Xóa dữ liệu sử dụng xóa logic (`is_deleted = TRUE`). | |
| - Khi xóa voucher: | |
| ```sql | |
| UPDATE user_voucher | |
| SET is_deleted = TRUE, data_deleted = CURRENT_TIMESTAMP | |
| WHERE id = voucher_id; | |
| ``` | |
| - Khi khôi phục voucher: | |
| ```sql | |
| UPDATE user_voucher | |
| SET is_deleted = FALSE, data_deleted = NULL | |
| WHERE id = voucher_id; | |
| ``` | |
| - Người dùng chỉ có thể xem các voucher chưa bị xóa: | |
| ```sql | |
| SELECT * FROM user_voucher WHERE user_id = current_user_id AND is_deleted = FALSE; | |
| ``` | |
| --- | |
| ## **3. Kiểm Tra Trước Khi Thao Tác** | |
| ### **A. Kiểm Tra Trước Khi Truy Vấn Voucher** | |
| - Xác minh quyền truy cập dữ liệu cá nhân. | |
| - Người dùng **chỉ có thể truy vấn voucher của chính họ** (`user_id`). | |
| - Nếu cố truy vấn voucher của người khác, trả về lỗi ngay lập tức. | |
| ### **B. Kiểm Tra Trước Khi Xóa Voucher** | |
| - **Chỉ áp dụng xóa logic (`is_deleted = TRUE`).** | |
| - **Người dùng không thể xóa voucher của người khác.** | |
| - Nếu vi phạm, hệ thống **chặn thao tác ngay lập tức**. | |
| --- | |
| **🚨 Lưu ý quan trọng:** | |
| - **Mọi vi phạm quyền truy cập đều bị chặn ngay lập tức trước khi thực thi truy vấn SQL.** | |
| - **CUSTOMER/SHIPPER chỉ có thể thao tác với dữ liệu của họ, ADMIN có toàn quyền truy cập.** | |
| - **Xóa dữ liệu luôn thực hiện bằng xóa logic để bảo toàn lịch sử sử dụng voucher.** | |
| """ |