2025-09-22 17:43:55 +00:00
|
|
|
import * as z from "zod/v4";
|
|
|
|
|
|
|
|
|
|
export const CustomerFormSchema = z.object({
|
|
|
|
|
reference: z.string().optional(),
|
|
|
|
|
|
|
|
|
|
is_company: z.string().optional(),
|
2025-09-23 09:14:29 +00:00
|
|
|
name: z.string().nonempty(),
|
2025-09-22 17:43:55 +00:00
|
|
|
trade_name: z.string().optional(),
|
|
|
|
|
tin: z.string().optional(),
|
|
|
|
|
default_taxes: z.array(z.string()).optional(), // completo (sustituye), o null => vaciar
|
|
|
|
|
|
|
|
|
|
street: z.string().optional(),
|
|
|
|
|
street2: z.string().optional(),
|
|
|
|
|
city: z.string().optional(),
|
|
|
|
|
province: z.string().optional(),
|
|
|
|
|
postal_code: z.string().optional(),
|
|
|
|
|
country: z.string().optional(),
|
|
|
|
|
|
|
|
|
|
email_primary: z.string().optional(),
|
|
|
|
|
email_secondary: z.string().optional(),
|
|
|
|
|
phone_primary: z.string().optional(),
|
|
|
|
|
phone_secondary: z.string().optional(),
|
|
|
|
|
mobile_primary: z.string().optional(),
|
|
|
|
|
mobile_secondary: z.string().optional(),
|
|
|
|
|
|
|
|
|
|
fax: z.string().optional(),
|
|
|
|
|
website: z.string().optional(),
|
|
|
|
|
|
|
|
|
|
legal_record: z.string().optional(),
|
|
|
|
|
|
2025-09-23 09:14:29 +00:00
|
|
|
language_code: z.string().nonempty(),
|
|
|
|
|
currency_code: z.string().nonempty(),
|
2025-09-22 17:43:55 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
export type CustomerFormData = z.infer<typeof CustomerFormSchema>;
|
|
|
|
|
|
|
|
|
|
export const defaultCustomerFormData: CustomerFormData = {
|
|
|
|
|
reference: "",
|
|
|
|
|
|
|
|
|
|
is_company: "false",
|
|
|
|
|
name: "",
|
|
|
|
|
trade_name: "",
|
|
|
|
|
tin: "",
|
|
|
|
|
default_taxes: [],
|
|
|
|
|
|
|
|
|
|
street: "",
|
|
|
|
|
street2: "",
|
|
|
|
|
city: "",
|
|
|
|
|
province: "",
|
|
|
|
|
postal_code: "",
|
|
|
|
|
country: "es",
|
|
|
|
|
|
|
|
|
|
email_primary: "",
|
|
|
|
|
email_secondary: "",
|
|
|
|
|
phone_primary: "",
|
|
|
|
|
phone_secondary: "",
|
|
|
|
|
mobile_primary: "",
|
|
|
|
|
mobile_secondary: "",
|
|
|
|
|
|
|
|
|
|
fax: "",
|
|
|
|
|
website: "",
|
|
|
|
|
|
|
|
|
|
legal_record: "",
|
|
|
|
|
language_code: "es",
|
|
|
|
|
currency_code: "EUR",
|
|
|
|
|
};
|