53 lines
2.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.campaignIdSchema = exports.listCampaignsSchema = exports.updateCampaignSchema = exports.createCampaignSchema = void 0;
const zod_1 = require("zod");
const client_1 = require("@prisma/client");
exports.createCampaignSchema = zod_1.z.object({
title: zod_1.z.string().min(1, 'Title is required'),
description: zod_1.z.string().optional(),
emailSubject: zod_1.z.string().min(1, 'Email subject is required'),
emailBody: zod_1.z.string().min(1, 'Email body is required'),
callToAction: zod_1.z.string().optional(),
status: zod_1.z.nativeEnum(client_1.CampaignStatus).optional().default(client_1.CampaignStatus.DRAFT),
targetGovernmentLevels: zod_1.z.array(zod_1.z.nativeEnum(client_1.GovernmentLevel)).optional().default([]),
allowSmtpEmail: zod_1.z.boolean().optional().default(true),
allowMailtoLink: zod_1.z.boolean().optional().default(true),
collectUserInfo: zod_1.z.boolean().optional().default(true),
showEmailCount: zod_1.z.boolean().optional().default(true),
showCallCount: zod_1.z.boolean().optional().default(true),
allowEmailEditing: zod_1.z.boolean().optional().default(false),
allowCustomRecipients: zod_1.z.boolean().optional().default(false),
showResponseWall: zod_1.z.boolean().optional().default(false),
highlightCampaign: zod_1.z.boolean().optional().default(false),
coverPhoto: zod_1.z.string().optional(),
});
exports.updateCampaignSchema = zod_1.z.object({
title: zod_1.z.string().min(1).optional(),
description: zod_1.z.string().nullable().optional(),
emailSubject: zod_1.z.string().min(1).optional(),
emailBody: zod_1.z.string().min(1).optional(),
callToAction: zod_1.z.string().nullable().optional(),
status: zod_1.z.nativeEnum(client_1.CampaignStatus).optional(),
targetGovernmentLevels: zod_1.z.array(zod_1.z.nativeEnum(client_1.GovernmentLevel)).optional(),
allowSmtpEmail: zod_1.z.boolean().optional(),
allowMailtoLink: zod_1.z.boolean().optional(),
collectUserInfo: zod_1.z.boolean().optional(),
showEmailCount: zod_1.z.boolean().optional(),
showCallCount: zod_1.z.boolean().optional(),
allowEmailEditing: zod_1.z.boolean().optional(),
allowCustomRecipients: zod_1.z.boolean().optional(),
showResponseWall: zod_1.z.boolean().optional(),
highlightCampaign: zod_1.z.boolean().optional(),
coverPhoto: zod_1.z.string().nullable().optional(),
});
exports.listCampaignsSchema = zod_1.z.object({
page: zod_1.z.coerce.number().int().positive().default(1),
limit: zod_1.z.coerce.number().int().positive().max(100).default(20),
search: zod_1.z.string().optional(),
status: zod_1.z.nativeEnum(client_1.CampaignStatus).optional(),
});
exports.campaignIdSchema = zod_1.z.object({
id: zod_1.z.string().min(1),
});
//# sourceMappingURL=campaigns.schemas.js.map