UNPKG

tyntec-sdk

Version:

TypeScript SDK for Tyntec Conversations API V3

58 lines (57 loc) 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reactionMessageSchema = exports.contactsMessageSchema = exports.locationMessageSchema = exports.textMessageSchema = exports.mediaMessageSchema = void 0; const zod_1 = require("zod"); const base_schema_1 = require("./base.schema"); const documentContentSchema = zod_1.z.object({ url: zod_1.z.string().url(), caption: zod_1.z.string().optional(), filename: zod_1.z.string().optional(), type: zod_1.z.string().optional(), privateUrl: zod_1.z.string().url().optional(), idFile: zod_1.z.string().optional(), }); // Media message schemas using discriminated unions exports.mediaMessageSchema = zod_1.z.union([ base_schema_1.whatsAppBaseFields.extend({ contentType: zod_1.z.literal('image'), image: base_schema_1.mediaContentSchema.optional(), // TODO: use separate schema for messageRequest since files could be loaded separately }), base_schema_1.whatsAppBaseFields.extend({ contentType: zod_1.z.literal('video'), video: base_schema_1.mediaContentSchema.optional(), // TODO: use separate schema for messageRequest since files could be loaded separately }), base_schema_1.whatsAppBaseFields.extend({ contentType: zod_1.z.literal('document'), document: documentContentSchema.optional(), // TODO: use separate schema for messageRequest since files could be loaded separately }), base_schema_1.whatsAppBaseFields.extend({ contentType: zod_1.z.literal('audio'), audio: base_schema_1.mediaContentSchema.optional(), // TODO: use separate schema for messageRequest since files could be loaded separately }), base_schema_1.whatsAppBaseFields.extend({ contentType: zod_1.z.literal('sticker'), sticker: base_schema_1.mediaContentSchema.optional(), // TODO: use separate schema for messageRequest since files could be loaded separately }), ]); exports.textMessageSchema = base_schema_1.whatsAppBaseFields.extend({ contentType: zod_1.z.literal('text'), text: zod_1.z.string(), }); exports.locationMessageSchema = base_schema_1.whatsAppBaseFields.extend({ contentType: zod_1.z.literal('location'), location: base_schema_1.locationContentSchema, }); exports.contactsMessageSchema = base_schema_1.whatsAppBaseFields.extend({ contentType: zod_1.z.literal('contacts'), contacts: zod_1.z.array(base_schema_1.contactSchema), }); exports.reactionMessageSchema = base_schema_1.whatsAppBaseFields.extend({ contentType: zod_1.z.literal('reaction'), reaction: base_schema_1.reactionContentSchema, });