Uecko_ERP/modules/factuges/src/common/dto/request/create-proforma-from-factuges.request.dto.ts
2026-03-23 15:36:37 +01:00

75 lines
1.9 KiB
TypeScript

import { NumericStringSchema } from "@erp/core";
import { z } from "zod/v4";
export const CreateProformaItemFromFactugesRequestSchema = z.object({
position: z.string(),
description: z.string().default(""),
quantity_value: NumericStringSchema.default(""), // Ya viene escalado
unit_value: NumericStringSchema.default(""),
discount_percentage_value: NumericStringSchema.default(""),
iva_code: z.string().default(""),
iva_percentage_value: NumericStringSchema.default(""),
rec_code: z.string().default(""),
rec_percentage_value: NumericStringSchema.default(""),
retention_code: z.string().default(""),
retention_percentage_value: NumericStringSchema.default(""),
});
export type CreateProformaItemFromFactugesRequestDTO = z.infer<
typeof CreateProformaItemFromFactugesRequestSchema
>;
export const CreateProformaFromFactugesRequestSchema = z.object({
//factuges_id: z.string(),
//id: z.uuid(),
series: z.string(),
//invoice_number: z.string(),
reference: z.string().default(""),
invoice_date: z.string(),
operation_date: z.string().default(""),
description: z.string().default(""),
notes: z.string().default(""),
customer: z.object({
//factuges_id: z.string(),
is_company: z.string(),
name: z.string(),
tin: z.string(),
street: z.string(),
city: z.string(),
province: z.string(),
postal_code: z.string(),
country: z.string(),
language_code: z.string(),
phone_primary: z.string(),
phone_secondary: z.string(),
mobile_primary: z.string(),
mobile_secondary: z.string(),
email_primary: z.string(),
email_secondary: z.string(),
website: z.string(),
}),
global_discount_percentage_value: NumericStringSchema,
payment_method: z.string().default(""),
items: z.array(CreateProformaItemFromFactugesRequestSchema),
});
export type CreateProformaFromFactugesRequestDTO = z.infer<
typeof CreateProformaFromFactugesRequestSchema
>;