import { CountryCodeSchema, CurrencyCodeSchema, EmailSchema, LandPhoneSchema, LanguageCodeSchema, MetadataSchema, MobilePhoneSchema, PostalCodeSchema, TinSchema, URLSchema, } from "@erp/core"; import { z } from "zod/v4"; import { TaxCombinationCodeSchema } from "../shared"; import { CustomerStatusSchema } from "../shared/customer-status.dto"; export const GetCustomerByIdResponseSchema = z.object({ id: z.uuid(), company_id: z.uuid(), status: CustomerStatusSchema, reference: z.string().nullable(), is_company: z.boolean(), name: z.string(), trade_name: z.string().nullable(), tin: TinSchema.nullable(), address: z.object({ street: z.string().nullable(), street2: z.string().nullable(), city: z.string().nullable(), province: z.string().nullable(), postal_code: PostalCodeSchema.nullable(), country: CountryCodeSchema.nullable(), }), contact: z.object({ email_primary: EmailSchema.nullable(), email_secondary: EmailSchema.nullable(), phone_primary: LandPhoneSchema.nullable(), phone_secondary: LandPhoneSchema.nullable(), mobile_primary: MobilePhoneSchema.nullable(), mobile_secondary: MobilePhoneSchema.nullable(), fax: LandPhoneSchema.nullable(), website: URLSchema.nullable(), }), legal_record: z.string().nullable(), default_taxes: TaxCombinationCodeSchema, language_code: LanguageCodeSchema, currency_code: CurrencyCodeSchema, metadata: MetadataSchema.optional(), }); export type GetCustomerByIdResponseDTO = z.infer;