56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
import {
|
|
AmountSchema,
|
|
MetadataSchema,
|
|
MoneySchema,
|
|
PercentageSchema,
|
|
QuantitySchema,
|
|
} from "@erp/core";
|
|
import { z } from "zod/v4";
|
|
|
|
export const CreateCustomerInvoiceResponseSchema = z.object({
|
|
id: z.uuid(),
|
|
company_id: z.uuid(),
|
|
|
|
invoice_number: z.string(),
|
|
status: z.string(),
|
|
series: z.string(),
|
|
|
|
invoice_date: z.string(),
|
|
operation_date: z.string(),
|
|
|
|
notes: z.string(),
|
|
|
|
language_code: z.string(),
|
|
currency_code: z.string(),
|
|
|
|
subtotal_amount: MoneySchema,
|
|
discount_percentage: PercentageSchema,
|
|
discount_amount: MoneySchema,
|
|
taxable_amount: MoneySchema,
|
|
taxes_amount: MoneySchema,
|
|
total_amount: MoneySchema,
|
|
|
|
items: z.array(
|
|
z.object({
|
|
id: z.uuid(),
|
|
position: z.string(),
|
|
description: z.string(),
|
|
quantity: QuantitySchema,
|
|
unit_amount: AmountSchema,
|
|
|
|
taxes: z.string(),
|
|
|
|
subtotal_amount: MoneySchema,
|
|
discount_percentage: PercentageSchema,
|
|
discount_amount: MoneySchema,
|
|
taxable_amount: MoneySchema,
|
|
taxes_amount: MoneySchema,
|
|
total_amount: MoneySchema,
|
|
})
|
|
),
|
|
|
|
metadata: MetadataSchema.optional(),
|
|
});
|
|
|
|
export type CreateCustomerInvoiceResponseDTO = z.infer<typeof CreateCustomerInvoiceResponseSchema>;
|