FactuGES_ERP/modules/invoices/src/common/dto/invoices.schemas.ts

44 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-03-18 08:05:00 +00:00
import { z } from "zod";
2025-04-01 17:13:04 +00:00
export const ICreateInvoiceRequestSchema = z.object({
id: z.string().uuid(),
invoice_number: z.string().min(1),
invoice_series: z.string().min(1),
issue_date: z.string().refine((date) => {
const dateStr = z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "Invalid YYYY-MM-DD format");
return dateStr.safeParse(date).success;
}),
operation_date: z.string().refine((date) => {
const dateStr = z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "Invalid YYYY-MM-DD format");
return dateStr.safeParse(date).success;
}),
2025-04-22 08:11:50 +00:00
//customerId: z.string().uuid(),
2025-04-01 17:13:04 +00:00
lang_code: z.string().min(1),
currency_code: z.string().min(1),
2025-03-18 08:05:00 +00:00
2025-04-22 08:11:50 +00:00
items: z
.array(
z.object({
//id: z.string().uuid(),
description: z.string().optional(),
unit_price: z
.object({
amount: z.number().positive(),
scale: z.number().positive(),
})
.optional(),
quantity: z
.object({
amount: z.number().positive(),
scale: z.number().positive(),
})
.optional(),
})
)
.optional(),
2025-04-01 17:13:04 +00:00
});
2025-03-18 08:05:00 +00:00
export const IUpdateInvoiceRequestSchema = z.object({});
export const IDeleteInvoiceRequestSchema = z.object({});