UNPKG

@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
"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 = { [zns_1.ZNSTemplateType.CUSTOM]: { 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' }, [zns_1.ZNSTemplateType.AUTHENTICATION]: { value: zns_1.ZNSTemplateType.AUTHENTICATION, name: 'ZNS xác thực', description: 'Template cho việc xác thực OTP, mã PIN' }, [zns_1.ZNSTemplateType.PAYMENT_REQUEST]: { value: zns_1.ZNSTemplateType.PAYMENT_REQUEST, name: 'ZNS yêu cầu thanh toán', description: 'Template yêu cầu thanh toán' }, [zns_1.ZNSTemplateType.VOUCHER]: { value: zns_1.ZNSTemplateType.VOUCHER, name: 'ZNS voucher', description: 'Template gửi voucher, khuyến mãi' }, [zns_1.ZNSTemplateType.SERVICE_RATING]: { 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 = { [zns_1.ZNSTemplateTag.TRANSACTION]: { value: zns_1.ZNSTemplateTag.TRANSACTION, name: 'Transaction', description: 'Giao dịch, thanh toán' }, [zns_1.ZNSTemplateTag.CUSTOMER_CARE]: { value: zns_1.ZNSTemplateTag.CUSTOMER_CARE, name: 'Customer Care', description: 'Chăm sóc khách hàng' }, [zns_1.ZNSTemplateTag.PROMOTION]: { 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 = { [zns_1.ZNSButtonType.URL]: { value: zns_1.ZNSButtonType.URL, name: 'URL', description: 'Mở đường link' }, [zns_1.ZNSButtonType.PHONE]: { value: zns_1.ZNSButtonType.PHONE, name: 'Phone', description: 'Gọi điện thoại' }, [zns_1.ZNSButtonType.SMS]: { value: zns_1.ZNSButtonType.SMS, name: 'SMS', description: 'Gửi tin nhắn SMS' }, [zns_1.ZNSButtonType.APP]: { value: zns_1.ZNSButtonType.APP, name: 'App', description: 'Mở ứng dụng' }, [zns_1.ZNSButtonType.DEEPLINK]: { value: zns_1.ZNSButtonType.DEEPLINK, name: 'Deeplink', description: 'Mở deeplink' }, [zns_1.ZNSButtonType.MAP]: { value: zns_1.ZNSButtonType.MAP, name: 'Map', description: 'Mở bản đồ' }, [zns_1.ZNSButtonType.CALENDAR]: { value: zns_1.ZNSButtonType.CALENDAR, name: 'Calendar', description: 'Thêm vào lịch' }, [zns_1.ZNSButtonType.COPY]: { 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 = { [zns_1.ZNSParamType.CUSTOMER_NAME]: { value: zns_1.ZNSParamType.CUSTOMER_NAME, name: 'Tên khách hàng', maxLength: 30 }, [zns_1.ZNSParamType.PHONE_NUMBER]: { value: zns_1.ZNSParamType.PHONE_NUMBER, name: 'Số điện thoại', maxLength: 15 }, [zns_1.ZNSParamType.ADDRESS]: { value: zns_1.ZNSParamType.ADDRESS, name: 'Địa chỉ', maxLength: 200 }, [zns_1.ZNSParamType.CODE]: { value: zns_1.ZNSParamType.CODE, name: 'Mã số', maxLength: 30 }, [zns_1.ZNSParamType.CUSTOM_LABEL]: { value: zns_1.ZNSParamType.CUSTOM_LABEL, name: 'Nhãn tùy chỉnh', maxLength: 30 }, [zns_1.ZNSParamType.TRANSACTION_STATUS]: { value: zns_1.ZNSParamType.TRANSACTION_STATUS, name: 'Trạng thái giao dịch', maxLength: 30 }, [zns_1.ZNSParamType.CONTACT_INFO]: { value: zns_1.ZNSParamType.CONTACT_INFO, name: 'Thông tin liên hệ', maxLength: 50 }, [zns_1.ZNSParamType.GENDER_TITLE]: { value: zns_1.ZNSParamType.GENDER_TITLE, name: 'Giới tính / Danh xưng', maxLength: 5 }, [zns_1.ZNSParamType.PRODUCT_BRAND]: { value: zns_1.ZNSParamType.PRODUCT_BRAND, name: 'Tên sản phẩm / Thương hiệu', maxLength: 200 }, [zns_1.ZNSParamType.QUANTITY_AMOUNT]: { value: zns_1.ZNSParamType.QUANTITY_AMOUNT, name: 'Số lượng / Số tiền', maxLength: 20 }, [zns_1.ZNSParamType.TIME]: { value: zns_1.ZNSParamType.TIME, name: 'Thời gian', maxLength: 20 }, [zns_1.ZNSParamType.OTP]: { value: zns_1.ZNSParamType.OTP, name: 'OTP', maxLength: 10 }, [zns_1.ZNSParamType.URL]: { value: zns_1.ZNSParamType.URL, name: 'URL', maxLength: 200 }, [zns_1.ZNSParamType.CURRENCY]: { value: zns_1.ZNSParamType.CURRENCY, name: 'Tiền tệ (VNĐ)', maxLength: 12 }, [zns_1.ZNSParamType.BANK_TRANSFER_NOTE]: { 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.ZNSTemplateType.CUSTOM]: [ zns_1.ZNSTemplateTag.TRANSACTION, zns_1.ZNSTemplateTag.CUSTOMER_CARE, zns_1.ZNSTemplateTag.PROMOTION ], [zns_1.ZNSTemplateType.AUTHENTICATION]: [ zns_1.ZNSTemplateTag.TRANSACTION ], [zns_1.ZNSTemplateType.PAYMENT_REQUEST]: [ zns_1.ZNSTemplateTag.TRANSACTION ], [zns_1.ZNSTemplateType.VOUCHER]: [ zns_1.ZNSTemplateTag.TRANSACTION, zns_1.ZNSTemplateTag.CUSTOMER_CARE, zns_1.ZNSTemplateTag.PROMOTION ], [zns_1.ZNSTemplateType.SERVICE_RATING]: [ 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