import type { InferSelectModel } from 'drizzle-orm'; import { z } from 'zod/v4'; import { tickets } from '../db/schema.ts'; export type Ticket = InferSelectModel; export const CreateTicketSchema = z.object({ subject: z.string().min(1), queue_id: z.string().uuid(), description: z.string().trim().optional(), custom_fields: z.record(z.string(), z.string()).optional(), }); export const UpdateTicketSchema = z.object({ subject: z.string().min(1).optional(), status: z.string().min(1).optional(), owner_id: z.string().uuid().nullable().optional(), }); export const CommentSchema = z.object({ body: z.string().min(1), creator_id: z.string().optional().default('00000000-0000-0000-0000-000000000000'), internal: z.boolean().optional().default(false), });