87 lines
3.8 KiB
JavaScript
87 lines
3.8 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.invoiceListQuerySchema = exports.invoiceQueryParamsSchema = exports.billingSummarySchema = exports.paymentInvoiceRequestSchema = exports.invoiceSsoLinkSchema = exports.invoiceListSchema = exports.invoicePaginationSchema = exports.invoiceSchema = exports.invoiceItemSchema = exports.invoiceStatusSchema = void 0;
|
|
const zod_1 = require("zod");
|
|
exports.invoiceStatusSchema = zod_1.z.enum([
|
|
"Draft",
|
|
"Pending",
|
|
"Paid",
|
|
"Unpaid",
|
|
"Overdue",
|
|
"Cancelled",
|
|
"Refunded",
|
|
"Collections",
|
|
]);
|
|
exports.invoiceItemSchema = zod_1.z.object({
|
|
id: zod_1.z.number().int().positive("Invoice item id must be positive"),
|
|
description: zod_1.z.string().min(1, "Description is required"),
|
|
amount: zod_1.z.number(),
|
|
quantity: zod_1.z.number().int().positive("Quantity must be positive").optional(),
|
|
type: zod_1.z.string().min(1, "Item type is required"),
|
|
serviceId: zod_1.z.number().int().positive().optional(),
|
|
});
|
|
exports.invoiceSchema = zod_1.z.object({
|
|
id: zod_1.z.number().int().positive("Invoice id must be positive"),
|
|
number: zod_1.z.string().min(1, "Invoice number is required"),
|
|
status: exports.invoiceStatusSchema,
|
|
currency: zod_1.z.string().min(1, "Currency is required"),
|
|
currencySymbol: zod_1.z.string().min(1, "Currency symbol is required").optional(),
|
|
total: zod_1.z.number(),
|
|
subtotal: zod_1.z.number(),
|
|
tax: zod_1.z.number(),
|
|
issuedAt: zod_1.z.string().optional(),
|
|
dueDate: zod_1.z.string().optional(),
|
|
paidDate: zod_1.z.string().optional(),
|
|
pdfUrl: zod_1.z.string().optional(),
|
|
paymentUrl: zod_1.z.string().optional(),
|
|
description: zod_1.z.string().optional(),
|
|
items: zod_1.z.array(exports.invoiceItemSchema).optional(),
|
|
daysOverdue: zod_1.z.number().int().nonnegative().optional(),
|
|
});
|
|
exports.invoicePaginationSchema = zod_1.z.object({
|
|
page: zod_1.z.number().int().nonnegative(),
|
|
totalPages: zod_1.z.number().int().nonnegative(),
|
|
totalItems: zod_1.z.number().int().nonnegative(),
|
|
nextCursor: zod_1.z.string().optional(),
|
|
});
|
|
exports.invoiceListSchema = zod_1.z.object({
|
|
invoices: zod_1.z.array(exports.invoiceSchema),
|
|
pagination: exports.invoicePaginationSchema,
|
|
});
|
|
exports.invoiceSsoLinkSchema = zod_1.z.object({
|
|
url: zod_1.z.string().url(),
|
|
expiresAt: zod_1.z.string(),
|
|
});
|
|
exports.paymentInvoiceRequestSchema = zod_1.z.object({
|
|
invoiceId: zod_1.z.number().int().positive(),
|
|
paymentMethodId: zod_1.z.number().int().positive().optional(),
|
|
gatewayName: zod_1.z.string().optional(),
|
|
amount: zod_1.z.number().positive().optional(),
|
|
});
|
|
exports.billingSummarySchema = zod_1.z.object({
|
|
totalOutstanding: zod_1.z.number(),
|
|
totalOverdue: zod_1.z.number(),
|
|
totalPaid: zod_1.z.number(),
|
|
currency: zod_1.z.string(),
|
|
currencySymbol: zod_1.z.string().optional(),
|
|
invoiceCount: zod_1.z.object({
|
|
total: zod_1.z.number().int().min(0),
|
|
unpaid: zod_1.z.number().int().min(0),
|
|
overdue: zod_1.z.number().int().min(0),
|
|
paid: zod_1.z.number().int().min(0),
|
|
}),
|
|
});
|
|
exports.invoiceQueryParamsSchema = zod_1.z.object({
|
|
page: zod_1.z.coerce.number().int().positive().optional(),
|
|
limit: zod_1.z.coerce.number().int().positive().max(100).optional(),
|
|
status: exports.invoiceStatusSchema.optional(),
|
|
dateFrom: zod_1.z.string().datetime().optional(),
|
|
dateTo: zod_1.z.string().datetime().optional(),
|
|
});
|
|
const invoiceListStatusSchema = zod_1.z.enum(["Paid", "Unpaid", "Cancelled", "Overdue", "Collections"]);
|
|
exports.invoiceListQuerySchema = zod_1.z.object({
|
|
page: zod_1.z.coerce.number().int().positive().optional(),
|
|
limit: zod_1.z.coerce.number().int().positive().max(100).optional(),
|
|
status: invoiceListStatusSchema.optional(),
|
|
});
|
|
//# sourceMappingURL=schema.js.map
|