import { z } from "zod/v4"; /** * Este esquema es para validar los datos del formulario de actualización de cliente. * No tiene por qué coincidir con el shape de la entidad ni con el de la API. * Solo define los campos que se muestran en el formulario y sus validaciones. * * Reglas: * - no meter transformaciones silenciosas raras en el esquema (ej: .toUpperCase()) * - nombres en camelCase * - tipos orientados a UI/form * - sin campos de solo lectura que no se editen * - sin shape DTO * - sin detalles impuestos por el widget */ export const CustomerUpdateFormSchema = z.object({ reference: z.string(), isCompany: z.boolean(), name: z.string().min(1, "El nombre es obligatorio"), tradeName: z.string(), tin: z.string(), defaultTaxes: z.array(z.string()), street: z.string(), street2: z.string(), city: z.string(), province: z.string(), postalCode: z.string(), country: z.string().min(1, "El país es obligatorio"), primaryEmail: z.email("Email inválido"), secondaryEmail: z.email("Email inválido"), primaryPhone: z.string(), secondaryPhone: z.string(), primaryMobile: z.string(), secondaryMobile: z.string(), fax: z.string(), website: z.url("URL inválida"), legalRecord: z.string(), languageCode: z.string().min(1, "El idioma es obligatorio"), currencyCode: z.string().min(1, "La moneda es obligatoria"), });