import { z } from "zod";

export const contractSchema = z
  .object({
    customerId: z.string().min(1, "Selecione o cliente."),
    rentalId: z.string().optional(),
    title: z.string().min(3, "O título do contrato deve ter pelo menos 3 caracteres."),
    startDate: z.string().min(1, "Informe a data de início."),
    endDate: z.string().min(1, "Informe a data de término."),
    value: z.number().min(0, "O valor contratado deve ser maior ou igual a zero."),
    clauses: z.string().optional(),
    notes: z.string().optional(),
    status: z.enum(["DRAFT", "PENDING_SIGNATURE", "SIGNED", "EXPIRED", "TERMINATED"]),
  })
  .refine(
    (data) => {
      const start = new Date(data.startDate);
      const end = new Date(data.endDate);
      return end >= start;
    },
    {
      message: "A data de término deve ser igual ou posterior à data inicial.",
      path: ["endDate"],
    }
  );

export type ContractFormValues = z.infer<typeof contractSchema>;
