import { z } from "zod";
import type { Messages } from "@/shared/i18n/config";

export const createCompanySchema = (t: Messages) =>
  z.object({
    name: z.string().min(1, t.validation.nameRequired),
    siret: z.string().min(1, t.validation.siretRequired),
    first_name: z.string().min(1, t.validation.firstNameRequired),
    last_name: z.string().min(1, t.validation.lastNameRequired),
    email: z.string().min(1, t.validation.emailRequired).email(t.validation.emailInvalid),
    phone: z.string().min(1, t.validation.phoneRequired),
    password: z.string().min(8, t.validation.passwordMinLength).or(z.literal("")),
  });

export const updateCompanySchema = (t: Messages) =>
  z.object({
    name: z.string().min(1, t.validation.nameRequired).optional(),
    siret: z.string().min(1, t.validation.siretRequired).optional(),
    first_name: z.string().min(1, t.validation.firstNameRequired).optional(),
    last_name: z.string().min(1, t.validation.lastNameRequired).optional(),
    email: z.string().email(t.validation.emailInvalid).optional(),
    phone: z.string().min(1, t.validation.phoneRequired).optional(),
  });

export type CreateCompanyFormValues = z.infer<ReturnType<typeof createCompanySchema>>;
export type UpdateCompanyFormValues = z.infer<ReturnType<typeof updateCompanySchema>>;
