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. """