@warriorteam/redai-zalo-sdk
Version:
Comprehensive TypeScript/JavaScript SDK for Zalo APIs - Official Account v3.0, ZNS with Full Type Safety, Consultation Service, Broadcast Service, Group Messaging with List APIs, Social APIs, Enhanced Article Management, Promotion Service v3.0 with Multip
238 lines • 7.37 kB
JavaScript
"use strict";
/**
* ZNS Constants - Các hằng số theo chuẩn Zalo API
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ZNSValidation = exports.ZNS_TEMPLATE_TAG_COMPATIBILITY = exports.ZNS_PARAM_TYPES = exports.ZNS_BUTTON_TYPES = exports.ZNS_TEMPLATE_TAGS = exports.ZNS_TEMPLATE_TYPES = void 0;
const zns_1 = require("../types/zns");
/**
* Template Type mapping với description
*/
exports.ZNS_TEMPLATE_TYPES = {
[]: {
value: zns_1.ZNSTemplateType.CUSTOM,
name: 'ZNS tùy chỉnh',
description: 'Template tùy chỉnh cho các mục đích khác nhau'
},
[]: {
value: zns_1.ZNSTemplateType.AUTHENTICATION,
name: 'ZNS xác thực',
description: 'Template cho việc xác thực OTP, mã PIN'
},
[]: {
value: zns_1.ZNSTemplateType.PAYMENT_REQUEST,
name: 'ZNS yêu cầu thanh toán',
description: 'Template yêu cầu thanh toán'
},
[]: {
value: zns_1.ZNSTemplateType.VOUCHER,
name: 'ZNS voucher',
description: 'Template gửi voucher, khuyến mãi'
},
[]: {
value: zns_1.ZNSTemplateType.SERVICE_RATING,
name: 'ZNS đánh giá dịch vụ',
description: 'Template yêu cầu đánh giá dịch vụ'
}
};
/**
* Template Tag mapping với description
*/
exports.ZNS_TEMPLATE_TAGS = {
[]: {
value: zns_1.ZNSTemplateTag.TRANSACTION,
name: 'Transaction',
description: 'Giao dịch, thanh toán'
},
[]: {
value: zns_1.ZNSTemplateTag.CUSTOMER_CARE,
name: 'Customer Care',
description: 'Chăm sóc khách hàng'
},
[]: {
value: zns_1.ZNSTemplateTag.PROMOTION,
name: 'Promotion',
description: 'Khuyến mãi, quảng cáo'
}
};
/**
* Button Type mapping với description
*/
exports.ZNS_BUTTON_TYPES = {
[]: {
value: zns_1.ZNSButtonType.URL,
name: 'URL',
description: 'Mở đường link'
},
[]: {
value: zns_1.ZNSButtonType.PHONE,
name: 'Phone',
description: 'Gọi điện thoại'
},
[]: {
value: zns_1.ZNSButtonType.SMS,
name: 'SMS',
description: 'Gửi tin nhắn SMS'
},
[]: {
value: zns_1.ZNSButtonType.APP,
name: 'App',
description: 'Mở ứng dụng'
},
[]: {
value: zns_1.ZNSButtonType.DEEPLINK,
name: 'Deeplink',
description: 'Mở deeplink'
},
[]: {
value: zns_1.ZNSButtonType.MAP,
name: 'Map',
description: 'Mở bản đồ'
},
[]: {
value: zns_1.ZNSButtonType.CALENDAR,
name: 'Calendar',
description: 'Thêm vào lịch'
},
[]: {
value: zns_1.ZNSButtonType.COPY,
name: 'Copy',
description: 'Sao chép nội dung'
}
};
/**
* Parameter Type mapping với description và max length
*/
exports.ZNS_PARAM_TYPES = {
[]: {
value: zns_1.ZNSParamType.CUSTOMER_NAME,
name: 'Tên khách hàng',
maxLength: 30
},
[]: {
value: zns_1.ZNSParamType.PHONE_NUMBER,
name: 'Số điện thoại',
maxLength: 15
},
[]: {
value: zns_1.ZNSParamType.ADDRESS,
name: 'Địa chỉ',
maxLength: 200
},
[]: {
value: zns_1.ZNSParamType.CODE,
name: 'Mã số',
maxLength: 30
},
[]: {
value: zns_1.ZNSParamType.CUSTOM_LABEL,
name: 'Nhãn tùy chỉnh',
maxLength: 30
},
[]: {
value: zns_1.ZNSParamType.TRANSACTION_STATUS,
name: 'Trạng thái giao dịch',
maxLength: 30
},
[]: {
value: zns_1.ZNSParamType.CONTACT_INFO,
name: 'Thông tin liên hệ',
maxLength: 50
},
[]: {
value: zns_1.ZNSParamType.GENDER_TITLE,
name: 'Giới tính / Danh xưng',
maxLength: 5
},
[]: {
value: zns_1.ZNSParamType.PRODUCT_BRAND,
name: 'Tên sản phẩm / Thương hiệu',
maxLength: 200
},
[]: {
value: zns_1.ZNSParamType.QUANTITY_AMOUNT,
name: 'Số lượng / Số tiền',
maxLength: 20
},
[]: {
value: zns_1.ZNSParamType.TIME,
name: 'Thời gian',
maxLength: 20
},
[]: {
value: zns_1.ZNSParamType.OTP,
name: 'OTP',
maxLength: 10
},
[]: {
value: zns_1.ZNSParamType.URL,
name: 'URL',
maxLength: 200
},
[]: {
value: zns_1.ZNSParamType.CURRENCY,
name: 'Tiền tệ (VNĐ)',
maxLength: 12
},
[]: {
value: zns_1.ZNSParamType.BANK_TRANSFER_NOTE,
name: 'Bank transfer note',
maxLength: 90
}
};
/**
* Template Type và Tag compatibility matrix
*/
exports.ZNS_TEMPLATE_TAG_COMPATIBILITY = {
[]: [
zns_1.ZNSTemplateTag.TRANSACTION,
zns_1.ZNSTemplateTag.CUSTOMER_CARE,
zns_1.ZNSTemplateTag.PROMOTION
],
[]: [
zns_1.ZNSTemplateTag.TRANSACTION
],
[]: [
zns_1.ZNSTemplateTag.TRANSACTION
],
[]: [
zns_1.ZNSTemplateTag.TRANSACTION,
zns_1.ZNSTemplateTag.CUSTOMER_CARE,
zns_1.ZNSTemplateTag.PROMOTION
],
[]: [
zns_1.ZNSTemplateTag.CUSTOMER_CARE
]
};
/**
* Validation functions
*/
exports.ZNSValidation = {
/**
* Kiểm tra template name hợp lệ
*/
isValidTemplateName: (name) => {
return name.length >= 10 && name.length <= 60;
},
/**
* Kiểm tra note hợp lệ
*/
isValidNote: (note) => {
return note.length >= 1 && note.length <= 400;
},
/**
* Kiểm tra tag có tương thích với template type không
*/
isTagCompatibleWithType: (templateType, tag) => {
const compatibleTags = exports.ZNS_TEMPLATE_TAG_COMPATIBILITY[templateType];
return compatibleTags ? compatibleTags.includes(tag) : false;
},
/**
* Kiểm tra param value có hợp lệ với type không
*/
isValidParamValue: (paramType, value) => {
const typeInfo = exports.ZNS_PARAM_TYPES[paramType];
return typeInfo ? value.length <= typeInfo.maxLength : false;
}
};
//# sourceMappingURL=zns.constants.js.map