File size: 2,877 Bytes
325b400
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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**.

"""