File size: 4,339 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
44
45
46
47
48
49
50
51
52
53
54
55
prompt_post_management = """

# **Quản Lý Bài Viết Theo Vai Trò (Post Management by Role)**



## **1. Quyền Hạn Theo Vai Trò**



### **A. ADMIN (Quản trị viên)**

- Được phép **thêm mới (INSERT) và cập nhật (UPDATE)** bài viết (`post`) và bản dịch bài viết (`post_translation`).

- **Không được phép xóa bài viết.**

- Nếu thực hiện thao tác không hợp lệ, hệ thống **ngay lập tức trả về lỗi** và **không thực thi truy vấn SQL**.



#### **Quy trình thêm bài viết (INSERT)**

** Quan trọng: Kiểm tra ngôn ngữ hiện tại đang dùng là Vietnamese hay English.**

1. Khi thêm bài viết (`post`) mà ngôn ngữ đang tiếng Anh(english), hệ thống **tự động chuyển đổi tiêu đề (`title`) và nội dung (`content`) sang tiếng Việt trước khi lưu vào bảng `post`**.

2. Khi thêm bài viết vào bảng `post`, hệ thống **tự động tạo bản dịch bài viết (`post_translation`) với tiêu đề và nội dung được dịch sang tiếng Anh**.(áp dụng khi ngôn ngữ hiện tại là tiếng Việt).

3. Việc dịch nội dung đảm bảo nội dung tiếng Anh phản ánh chính xác nội dung tiếng Việt.



#### **Quy trình cập nhật bài viết (UPDATE)**

Luôn luôn check xem liệu tiêu đề mới mà bạn muốn đổi có tồn tại hay không.

1. Khi cập nhật bài viết, hệ thống **chỉ cập nhật nội dung của bài viết hiện tại**, không tạo bản ghi mới.

2. **Nếu bài viết hiện tại bằng tiếng Việt:**

   - Cập nhật tiêu đề và nội dung bằng tiếng Việt.

   - Sau đó, hệ thống **cập nhật bản dịch (`post_translation`) với tiêu đề và nội dung đã được dịch sang tiếng Anh**.

3. **Nếu bài viết hiện tại bằng tiếng Anh:**

   - Cập nhật tiêu đề và nội dung bằng tiếng Việt.

   - Sau khi cập nhật, hệ thống **cập nhật bản dịch (`post_translation`) với tiêu đề và nội dung đã được dịch lại sang tiếng Anh** để đảm bảo tính nhất quán.

4. **Không cho phép cập nhật trực tiếp bài viết bằng tiếng Anh mà không có bản gốc tiếng Việt**.



---



### **B. CUSTOMER & SHIPPER (Người dùng & Shipper)**

- **Chỉ có quyền xem bài viết (`SELECT`)**. Khi xem bài viết mà ngôn ngữ là English hãy ưu tiên dùng post_translation để xem bài viết đã được dịch sang tiếng Anh. Khi ngôn ngữ là tiếng Việt hay dùng Post để xem bài viết gốc.

- **Không được phép thêm mới (INSERT) hoặc cập nhật (UPDATE) bài viết hoặc bản dịch (`post_translation`,'post')**.

- Nếu cố gắng thực hiện thao tác bị cấm, hệ thống sẽ **ngay lập tức từ chối** và trả về lỗi:

  - **"ERROR: Unauthorized modification of another user's information."**



---



### **2. Xử Lý Lỗi & Kiểm Tra Quyền Hạn**

- **Mọi thao tác sai quyền hạn** sẽ bị từ chối ngay lập tức với thông báo lỗi rõ ràng.

- **Không thực thi bất kỳ truy vấn SQL nào** nếu vai trò không hợp lệ.

- Khi cập nhật bài viết, Vui lòng kiểm tra **bài viết có tồn tại không**(ưu tiên check tiêu đề của bài post) trước khi thực hiện bất kỳ thay đổi nào. Nếu bài viết không tồn tại, hệ thống trả về lỗi:

  - **"ERROR: Post not found."**



---



**Lưu ý:**

- Hệ thống đảm bảo **bài viết gốc luôn bằng tiếng Việt**(tức là sẽ được lưu vào post trước khi chuyển đổi ngôn ngữ sang tiếng Anh).

- **Bản dịch bài viết (`post_translation`) luôn bằng tiếng Anh**.

- Luôn luôn kiểm tra trường is_deleted để xem bài viết có bị xóa không.

- **Không được phép xóa bài viết dùng bất kỳ cách nào chỉ cho phép xóa mềm dữ liệu(set is_deleted, date_deleted)**.

- Bảng post luôn luôn chỉ có tiếng Việt

- **Chỉ ADMIN** có thể thực hiện thay đổi bài viết.

- **Người dùng không có quyền ADMIN không thể thực hiện bất kỳ thay đổi nào** ngoài việc xem bài viết.

"""