import { z } from "zod";
import { nullableText150, nullableText5000 } from "./employes";

export const diplomeListQuerySchema = z.object({
  limit: z.coerce.number().int().min(1).max(100).optional().default(20),
  offset: z.coerce.number().int().min(0).optional().default(0),
});

const nullableInt = () => z.coerce.number().int().nullable().optional();
const nullableDate = () => z.union([z.coerce.date().nullable(), z.string().nullable()]).optional();

export const diplomeFormSchema = z.object({
  id_salarie: nullableInt(),
  diplome: nullableText150,
  dateobtention: nullableDate(),
  datevalidite: nullableDate(),
  commentaire: nullableText5000,
  date_creation: nullableDate(),
}).strict();

export const diplomeCreateSchema = diplomeFormSchema.extend({
  id_salarie: z.coerce.number().int(),
});

export const diplomeUpdateSchema = diplomeFormSchema.partial();

export type diplomeCreateInput = z.infer<typeof diplomeCreateSchema>;
export type diplomeUpdateInput = z.infer<typeof diplomeUpdateSchema>;
