"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FieldsSchema = exports.dataPoints = exports.fields = void 0;
const extensions_core_1 = require("@awell-health/extensions-core");
const zod_1 = require("zod");
exports.fields = {
    externalUserId: {
        id: 'externalUserId',
        label: 'External User ID',
        type: extensions_core_1.FieldType.STRING,
        required: true,
        description: 'The ID of the user in your system that this message is being sent to.',
    },
    appId: {
        id: 'appId',
        label: 'App ID',
        type: extensions_core_1.FieldType.STRING,
        required: true,
        description: 'App id is the reference of the specific app.',
    },
    from: {
        id: 'from',
        label: 'From',
        type: extensions_core_1.FieldType.STRING,
        required: true,
        description: 'valid email address in the format "Display Name <email@address.com>"',
    },
    replyTo: {
        id: 'replyTo',
        label: 'Reply To',
        type: extensions_core_1.FieldType.STRING,
        required: false,
        description: 'Valid email address in the format "email@address.com" - defaults to your workspace`s default reply to if not set',
    },
    subject: {
        id: 'subject',
        label: 'Subject',
        type: extensions_core_1.FieldType.STRING,
        required: false,
        description: 'The subject of the email.',
    },
    body: {
        id: 'body',
        label: 'Body',
        type: extensions_core_1.FieldType.HTML,
        required: true,
        description: 'The body of the email.',
    },
    preheader: {
        id: 'preheader',
        label: 'Preheader',
        type: extensions_core_1.FieldType.STRING,
        required: false,
        description: 'The preheader of the email. Recommended length 50-100 characters',
    },
    shouldInlineCss: {
        id: 'shouldInlineCss',
        label: 'Should inline CSS',
        type: extensions_core_1.FieldType.BOOLEAN,
        required: false,
        description: 'Whether to inline the CSS of the body of the email. If not provided, falls back to the default CSS inlining value for the workspace ',
    },
    campaignId: {
        id: 'campaignId',
        label: 'Campaign ID',
        type: extensions_core_1.FieldType.STRING,
        required: false,
        description: 'Optional but required if you wish to track campaign stats',
    },
    messageVariantionId: {
        id: 'messageVariantionId',
        label: 'Message Variantion ID',
        type: extensions_core_1.FieldType.STRING,
        required: false,
        description: 'Used when providing a campaign_id to specify which message variation this message should be tracked under',
    },
};
exports.dataPoints = {
    EmailDispatchId: {
        key: 'EmailDispatchId',
        valueType: 'string',
    },
};
exports.FieldsSchema = zod_1.z.object({
    externalUserId: zod_1.z.string().min(1),
    appId: zod_1.z.string().min(1),
    from: zod_1.z.string(),
    replyTo: zod_1.z.string().optional(),
    subject: zod_1.z.string().optional(),
    body: zod_1.z.string(),
    preheader: zod_1.z.string().optional(),
    shouldInlineCss: zod_1.z.boolean().optional(),
    campaignId: zod_1.z.string().optional(),
    messageVariantionId: zod_1.z.string().optional(),
});
//# sourceMappingURL=config.js.map