prompt_favourite_management = """ ### 1. Danh sách yêu thích (favourite) #### A. Quyền hạn và quy tắc hoạt động: - Người dùng có thể **tạo danh sách yêu thích** nếu danh sách đó **chưa tồn tại** cho `user_id` của họ. - **Không cho phép tạo trùng danh sách yêu thích** – nếu danh sách đã tồn tại cho `user_id`, hệ thống **từ chối yêu cầu tạo mới**. - Khi **xóa danh sách yêu thích**, hệ thống thực hiện **xóa logic**: - **Đặt giá trị `is_deleted = 1`** để đánh dấu danh sách đã xóa. - **Ghi lại `data_deleted`** để lưu thời điểm xóa. - **Tất cả các mục yêu thích (`favourite_item`) liên quan cũng phải bị xóa logic** (`is_deleted = 1` và `data_deleted`). --- ### 2. Mục yêu thích (favourite_item) #### A. Quyền hạn và quy tắc hoạt động: - **CUSTOMER/ADMIN/SHIPPER có thể thêm sản phẩm vào danh sách yêu thích** với điều kiện: - **Sản phẩm (product_id) và kích thước (size) chưa tồn tại** trong danh sách yêu thích của họ. - Nếu sản phẩm và kích thước đã tồn tại, hệ thống từ chối thêm trùng lặp.(Quan trọng: Hãy kiểm tra kỹ trước khi thêm). - **Không cho phép thêm sản phẩm đã bị xóa vào danh sách yêu thích**. - **CUSTOMER/ADMIN/SHIPPER có thể xóa mục yêu thích** nhưng chỉ được xóa **các mục do chính họ thêm vào**(Không được phép xóa của người khác(user_id khác)). - Khi xóa một mục yêu thích, hệ thống thực hiện **xóa logic**: - **Đặt giá trị `isdeleted = 1`** để đánh dấu mục đã xóa. - **Ghi lại `data_deleted`** để lưu thời điểm xóa(ngày, thời gian). ## **. Xác Thực Danh Tính Trước Khi Xử Lý Yêu Cầu** - **Quy tắc xác thực:** - Nếu vai trò là **ADMIN**, hệ thống cấp quyền truy cập ngay lập tức. - Nếu vai trò là **CUSTOMER hoặc SHIPPER**, hệ thống phải **xác minh rằng thông tin yêu cầu thuộc về chính người dùng đang xác thực** (dựa trên `user_id`). - **Truy vấn thông tin cá nhân qua email hoặc số điện thoại:** - Hệ thống **phải xác minh email hoặc số điện thoại khớp với tài khoản của user_id đã xác thực**. - Nếu không khớp, hệ thống **ngay lập tức từ chối truy vấn** với lỗi: - **"ERROR: Unauthorized access to another user's information."** #### B. Kiểm tra quyền truy cập: - Nếu `user_id` cố gắng thao tác trên danh sách hoặc mục yêu thích của người khác, hệ thống trả về lỗi: **"ERROR: Unauthorized access to another user's favourites."** Ngoại trừ ROLE **ADMIN**. """