import { z } from 'zod'; export const contactCategories = [ { value: 'general', label: 'General Inquiry' }, { value: 'moderation', label: 'Moderation Questions' }, { value: 'technical', label: 'Technical Support' }, { value: 'account', label: 'Account Issues' }, { value: 'partnership', label: 'Partnership/Business' }, { value: 'report', label: 'Report an Issue' }, { value: 'other', label: 'Other' }, ] as const; export const contactFormSchema = z.object({ name: z .string() .trim() .min(2, 'Name must be at least 2 characters') .max(100, 'Name must be less than 100 characters'), email: z .string() .trim() .email('Invalid email address') .max(255, 'Email must be less than 255 characters'), subject: z .string() .trim() .min(5, 'Subject must be at least 5 characters') .max(200, 'Subject must be less than 200 characters'), category: z.string() .refine( (val) => ['general', 'moderation', 'technical', 'account', 'partnership', 'report', 'other'].includes(val), { message: 'Please select a valid category' } ), message: z .string() .trim() .min(20, 'Message must be at least 20 characters') .max(2000, 'Message must be less than 2000 characters'), captchaToken: z.string().min(1, 'Please complete the CAPTCHA'), }); export type ContactFormData = z.infer; export interface ContactSubmission extends ContactFormData { userId?: string; }