UNPKG

@warriorteam/redai-zalo-sdk

Version:

Comprehensive TypeScript/JavaScript SDK for Zalo APIs - Official Account, ZNS, Consultation Service, Group Messaging, and Social APIs

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