import { z } from 'zod'
import { TaskStatus } from '@prisma/client'
import { CODE_REGEX, MAX_CODE_LENGTH } from '@/lib/code'

export const taskSchema = z.object({
  code: z
    .string()
    .trim()
    .max(MAX_CODE_LENGTH)
    .regex(CODE_REGEX, 'Ongeldige code')
    .optional()
    .or(z.literal('')),
  title: z.string().trim().min(1, 'Verplicht').max(120),
  description: z.string().max(2000).optional(),
  implementation_plan: z.string().max(10000).optional(),
  priority: z.number().int().min(1).max(4),
  status: z.nativeEnum(TaskStatus).optional(),
})

export type TaskInput = z.infer<typeof taskSchema>
