"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateResponseStatusSchema = exports.listAdminResponsesSchema = exports.listPublicResponsesSchema = exports.submitResponseSchema = void 0;
const zod_1 = require("zod");
const client_1 = require("@prisma/client");
exports.submitResponseSchema = zod_1.z.object({
    representativeName: zod_1.z.string().min(1, 'Representative name is required').max(200),
    representativeLevel: zod_1.z.nativeEnum(client_1.GovernmentLevel),
    responseType: zod_1.z.nativeEnum(client_1.ResponseType),
    responseText: zod_1.z.string().min(1, 'Response text is required').max(5000),
    representativeTitle: zod_1.z.string().max(200).optional(),
    representativeEmail: zod_1.z.string().email().optional(),
    userComment: zod_1.z.string().max(1000).optional(),
    submittedByName: zod_1.z.string().max(200).optional(),
    submittedByEmail: zod_1.z.string().email().optional(),
    isAnonymous: zod_1.z.boolean().optional().default(false),
    sendVerification: zod_1.z.boolean().optional().default(false),
});
exports.listPublicResponsesSchema = 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),
    sort: zod_1.z.enum(['recent', 'upvotes', 'verified']).optional().default('recent'),
    level: zod_1.z.nativeEnum(client_1.GovernmentLevel).optional(),
});
exports.listAdminResponsesSchema = 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),
    status: zod_1.z.nativeEnum(client_1.ResponseStatus).optional(),
    campaignId: zod_1.z.string().optional(),
    search: zod_1.z.string().optional(),
});
exports.updateResponseStatusSchema = zod_1.z.object({
    status: zod_1.z.nativeEnum(client_1.ResponseStatus),
});
//# sourceMappingURL=responses.schemas.js.map