Uecko_ERP/modules/customers/src/web/schemas/customer.form.schema.ts

67 lines
1.5 KiB
TypeScript
Raw Normal View History

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",
};