import { z } from 'zod' export const TICKET_CATEGORIES = [ 'general', 'account', 'technical', 'report', 'billing', 'other', ] as const export const TICKET_PRIORITIES = ['low', 'normal', 'high', 'urgent'] as const export const TICKET_STATUSES = ['open', 'in_progress', 'waiting', 'closed'] as const export const createTicketSchema = z.object({ subject: z.string().min(5, 'Subject must be at least 5 characters').max(255), message: z.string().min(10, 'Message must be at least 10 characters').max(5000), category: z.enum(TICKET_CATEGORIES), }) export const replyTicketSchema = z.object({ ticketId: z.coerce.number().int().positive(), message: z.string().min(1, 'Message is required').max(5000), }) export const updateTicketStatusSchema = z.object({ ticketId: z.coerce.number().int().positive(), status: z.enum(TICKET_STATUSES), }) export const assignTicketSchema = z.object({ ticketId: z.coerce.number().int().positive(), assigneeId: z.coerce.number().int().positive().nullable(), }) export const updateTicketPrioritySchema = z.object({ ticketId: z.coerce.number().int().positive(), priority: z.enum(TICKET_PRIORITIES), }) export type CreateTicketInput = z.infer export type ReplyTicketInput = z.infer export type UpdateTicketStatusInput = z.infer export type AssignTicketInput = z.infer export type UpdateTicketPriorityInput = z.infer