"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>"',
    },
    templateId: {
        id: 'templateId',
        label: 'Template ID',
        type: extensions_core_1.FieldType.STRING,
        required: true,
        description: 'The ID of the template to use.',
    },
    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',
    },
    preheader: {
        id: 'preheader',
        label: 'Preheader',
        type: extensions_core_1.FieldType.STRING,
        required: false,
        description: 'The preheader of the email. Recommended length 50-100 characters',
    },
    scheduleTime: {
        id: 'scheduleTime',
        label: 'Schedule Time',
        type: extensions_core_1.FieldType.DATE,
        required: false,
        description: 'The time to schedule the SMS to be sent. Must be a datetime as ISO 8601 string and time to send the message in UTC',
    },
    inPatientLocalTime: {
        id: 'inPatientLocalTime',
        label: 'In Patient Local Time',
        type: extensions_core_1.FieldType.BOOLEAN,
        required: false,
        description: "If true, the schedule time will be in the patient's local time.",
    },
    atOptimalTime: {
        id: 'atOptimalTime',
        label: 'At Optimal Time',
        type: extensions_core_1.FieldType.BOOLEAN,
        required: false,
        description: 'If true, the schedule time will be at the optimal time.',
    },
    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(),
    templateId: zod_1.z.string(),
    replyTo: zod_1.z.string().optional(),
    preheader: zod_1.z.string().optional(),
    scheduleTime: extensions_core_1.DateTimeSchema.optional(),
    inPatientLocalTime: zod_1.z.boolean().optional(),
    atOptimalTime: zod_1.z.boolean().optional(),
    campaignId: zod_1.z.string().optional(),
    messageVariantionId: zod_1.z.string().optional(),
});
//# sourceMappingURL=config.js.map