import { z } from "zod/v4"; import { PaginationSchema } from "@erp/core"; import { ArrayElement } from "@repo/rdx-utils"; import { CreateCustomerInvoiceRequestSchema, GetCustomerInvoiceByIdResponseSchema, ListCustomerInvoicesResponseSchema, UpdateCustomerInvoiceByIdRequestSchema, } from "../../common"; export const CustomerInvoiceSchema = GetCustomerInvoiceByIdResponseSchema.omit({ metadata: true, }); export const CustomerInvoiceCreateSchema = CreateCustomerInvoiceRequestSchema; export const CustomerInvoiceUpdateSchema = UpdateCustomerInvoiceByIdRequestSchema; // Tipos (derivados de Zod o DTOs del backend) export type CustomerInvoice = z.infer; export type CustomerInvoiceRecipient = CustomerInvoice["recipient"]; export type CustomerInvoiceItem = ArrayElement; export type CustomerInvoiceCreateInput = z.infer; // Cuerpo para crear export type CustomerInvoiceUpdateInput = z.infer; // Cuerpo para actualizar // Resultado de consulta con criteria (paginado, etc.) export const CustomerInvoicesPageSchema = ListCustomerInvoicesResponseSchema.omit({ metadata: true, }); export type PaginatedResponse = z.infer; export type CustomerInvoicesPage = z.infer; // Ítem simplificado dentro del listado (no toda la entidad) export type CustomerInvoiceSummary = Omit, "metadata">;