changemaker.lite/api/dist/modules/settings/settings.schemas.js

40 lines
1.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateSiteSettingsSchema = void 0;
const zod_1 = require("zod");
const hexColor = zod_1.z.string().regex(/^#[0-9a-fA-F]{6}$/, 'Must be a hex color (e.g. #ff00ff)');
exports.updateSiteSettingsSchema = zod_1.z.object({
// Organization
organizationName: zod_1.z.string().min(1).max(100).optional(),
organizationShortName: zod_1.z.string().min(1).max(10).optional(),
organizationLogoUrl: zod_1.z.string().url().nullable().optional().or(zod_1.z.literal('')),
organizationFaviconUrl: zod_1.z.string().url().nullable().optional().or(zod_1.z.literal('')),
// Admin theme
adminColorPrimary: hexColor.optional(),
adminColorBgBase: hexColor.optional(),
// Public theme
publicColorPrimary: hexColor.optional(),
publicColorBgBase: hexColor.optional(),
publicColorBgContainer: hexColor.optional(),
publicHeaderGradient: zod_1.z.string().max(500).optional(),
// Text
footerText: zod_1.z.string().max(200).optional(),
loginSubtitle: zod_1.z.string().max(50).optional(),
// Email branding
emailFromName: zod_1.z.string().min(1).max(100).optional(),
// SMTP configuration
smtpHost: zod_1.z.string().max(255).optional(),
smtpPort: zod_1.z.number().int().min(0).max(65535).optional(),
smtpUser: zod_1.z.string().max(255).optional(),
smtpPass: zod_1.z.string().max(500).optional(),
smtpFromAddress: zod_1.z.string().max(255).optional(),
smtpActiveProvider: zod_1.z.enum(['mailhog', 'production']).optional(),
emailTestMode: zod_1.z.boolean().optional(),
testEmailRecipient: zod_1.z.string().max(255).optional(),
// Feature toggles
enableInfluence: zod_1.z.boolean().optional(),
enableMap: zod_1.z.boolean().optional(),
enableNewsletter: zod_1.z.boolean().optional(),
enableLandingPages: zod_1.z.boolean().optional(),
});
//# sourceMappingURL=settings.schemas.js.map