Chuyển tới nội dung chính

API Thông báo & Nội dung Truyền thông

Quản lý hộp thư thông báo cá nhân, số lượng badge chưa đọc, đăng ký Token FCM và các thông tin bản tin, sự kiện, ưu đãi hiển thị trên zodutcan-user.


1. Hộp thư Thông báo Cá nhân​

1.1 Lấy số lượng thông báo chưa đọc​

Được gọi định kỳ hoặc khi mở app để hiển thị chấm đỏ trên biểu tượng quả chuông thông báo.

  • Method: GET
  • Endpoint: /api/{locale}/v1/member/notifications/unread-count
  • Auth: auth:member_api (Bearer Token)

Response Thành công​

{
"unread_count": 3
}

1.2 Lấy danh sách thông báo​

  • Method: GET
  • Endpoint: /api/{locale}/v1/member/notifications
  • Auth: auth:member_api (Bearer Token)
[
{
"id": "notif-01",
"title": "Ghi nhận doanh số thành công",
"body": "Bạn vừa tích luỹ thành công 1.500.000đ từ hoá đơn tại Zodutcan Saigon Center.",
"type": "transaction",
"is_read": false,
"created_at": "2026-05-21T20:30:00Z"
},
{
"id": "notif-02",
"title": "Chúc mừng thăng hạng Vàng!",
"body": "Chúc mừng bạn đã đạt mốc doanh số để thăng Hạng Vàng. Tỷ lệ chia thưởng của bạn hiện là 5%.",
"type": "tier_upgrade",
"is_read": true,
"created_at": "2026-05-18T10:00:00Z"
}
]

1.3 Đánh dấu đã đọc tất cả​

  • Method: PATCH (hoặc GET)
  • Endpoint: /api/{locale}/v1/member/notifications/read-all
  • Auth: auth:member_api

2. Đăng ký Device Token​

Ứng dụng gọi endpoint này khi khởi chạy để gửi FCM Device Token lên máy chủ, cho phép gửi push notification khi có giao dịch hoặc thăng hạng.

  • Method: POST
  • Endpoint: /api/{locale}/v1/member/device-tokens
  • Auth: auth:member_api (Bearer Token)

Request Body​

{
"token": "eX_9Zk...fcm_token_string...9A",
"device_type": "android"
}

device_type: android hoặc ios.


3. Bản tin, Sự kiện & Chương trình Ưu đãi​

Các endpoint lấy nội dung truyền thông cho các mục Banner và Tin tức tại Trang chủ (features/home/data/repository/home_api.dart):

  • Bản tin: GET /api/{locale}/v1/member/news?page=1&per_page=10
  • Sự kiện: GET /api/{locale}/v1/member/events?page=1&per_page=10
  • Khuyến mãi: GET /api/{locale}/v1/member/promotions?page=1&per_page=10
  • Auth: auth:member_api (Bearer Token)