import { z } from 'zod'
import {
  nullableText50,
  nullableText255,
  nullableText5000,
} from "./employes";

export const visiteMedicaleFormSchema = z.object({
  id_salarie: z.coerce.number().int().nullable().optional(),
  datedde: z.coerce.date().nullable().optional(),
  dec: z.coerce.date().nullable().optional(),
  dvp: z.coerce.date().nullable().optional(),
  obv: nullableText255,
  mtc: nullableText255,
  apt: nullableText50,
  vmp: nullableText50,
  commentaire: nullableText5000,
  dateprochainevm: z.coerce.date().nullable().optional(),
  daterappel: z.coerce.date().nullable().optional(),
  date_creation: z.coerce.date().nullable().optional(),
})

export const visiteMedicaleCreateSchema = visiteMedicaleFormSchema.extend({
  id_salarie: z.coerce.number().int(),
})

export const visiteMedicaleUpdateSchema = visiteMedicaleFormSchema.partial()

export const visiteMedicaleListQuerySchema = z.object({
  limit: z.coerce.number().int().default(10),
  offset: z.coerce.number().int().default(0),
})

export type VisiteMedicaleFormInput = z.infer<typeof visiteMedicaleFormSchema>
export type VisiteMedicaleCreateInput = z.infer<typeof visiteMedicaleCreateSchema>
export type VisiteMedicaleUpdateInput = z.infer<typeof visiteMedicaleUpdateSchema>
export type VisiteMedicaleListQuery = z.infer<typeof visiteMedicaleListQuerySchema>
