Push NotificationsNotification Endpoint

Notification Endpoint Object Schema

Đối tượng đại diện cho một endpoint nhận thông báo (push token, Telegram chat ID, v.v.)

JSON Schema

Trường (Field)Kiểu (Type)Mô tả (Description)
idintID duy nhất của endpoint.
company_idintID công ty sở hữu.
creator_idintID người tạo/cập nhật (0 khi khách hàng tự đăng ký qua Storefront API).
owner_typeintLoại chủ sở hữu endpoint (xem bảng Owner Type).
owner_idintID chủ sở hữu (customer ID hoặc user ID).
channel_typeintLoại kênh thông báo (xem bảng Channel Type).
providerstringNhà cung cấp dịch vụ (VD: fcm, apns, telegram).
endpoint_valuestringGiá trị endpoint thực tế (FCM token, Telegram chat ID, v.v.).
app_codestringMã ứng dụng đăng ký (VD: pos, web, app).
platformstringNền tảng thiết bị (VD: android, ios, web).
device_idstringID thiết bị (UUID của thiết bị).
statusintTrạng thái endpoint (xem bảng Status).
error_messagestringThông báo lỗi (nếu endpoint bị đánh dấu Invalid).
ip_addressstringĐịa chỉ IP lần đăng ký gần nhất.
date_last_usedintThời gian sử dụng lần cuối (Unix timestamp).
date_createdintThời gian tạo (Unix timestamp).
date_modifiedintThời gian cập nhật gần nhất (Unix timestamp).

Các bảng mã giá trị (Enums)

Owner Type

Giá trịKeyMô tả
1OWNER_TYPE_USERNhân viên / Người dùng hệ thống.
3OWNER_TYPE_CUSTOMERKhách hàng.
5OWNER_TYPE_SYSTEMHệ thống (dùng cho webhook, bot).

Channel Type

Giá trịKeyMô tả
1TYPE_EMAILEmail.
3TYPE_ZNSZalo Notification Service.
5TYPE_TELEGRAMTelegram Bot.
7TYPE_SMSTin nhắn SMS.
9TYPE_APP_PUSHPush Notification (FCM/APNs).

Status

Giá trịKeyMô tả
1STATUS_ACTIVEĐang hoạt động, sẵn sàng nhận thông báo.
3STATUS_DISABLEDĐã hủy đăng ký (soft-disable).
5STATUS_INVALIDToken không hợp lệ (bị từ chối bởi provider).

Thiết kế Upsert (Owner-Scope)

Hệ thống đảm bảo mỗi owner chỉ có đúng 1 endpoint active cho mỗi tổ hợp (company_id, owner_type, owner_id, channel_type, app_code).

  • Register luôn là upsert: nếu đã tồn tại → cập nhật endpoint_value, provider, platform, device_id và chuyển status về ACTIVE.
  • Khi token (endpoint_value) được đăng ký lại cho thiết bị/khách hàng khác, bản ghi cũ của owner trước sẽ bị xóa — mỗi token chỉ gắn với một owner tại một thời điểm.

On this page