71 lines
2.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.simPlanChangeResultSchema = exports.simActionResponseSchema = exports.subscriptionStatsSchema = exports.subscriptionQuerySchema = exports.subscriptionQueryParamsSchema = exports.subscriptionListSchema = exports.subscriptionSchema = exports.subscriptionCycleSchema = exports.subscriptionStatusSchema = void 0;
const zod_1 = require("zod");
exports.subscriptionStatusSchema = zod_1.z.enum([
"Active",
"Inactive",
"Pending",
"Cancelled",
"Suspended",
"Terminated",
"Completed",
]);
exports.subscriptionCycleSchema = zod_1.z.enum([
"Monthly",
"Quarterly",
"Semi-Annually",
"Annually",
"Biennially",
"Triennially",
"One-time",
"Free",
]);
exports.subscriptionSchema = zod_1.z.object({
id: zod_1.z.number().int().positive("Subscription id must be positive"),
serviceId: zod_1.z.number().int().positive("Service id must be positive"),
productName: zod_1.z.string().min(1, "Product name is required"),
domain: zod_1.z.string().optional(),
cycle: exports.subscriptionCycleSchema,
status: exports.subscriptionStatusSchema,
nextDue: zod_1.z.string().optional(),
amount: zod_1.z.number(),
currency: zod_1.z.string().min(1, "Currency is required"),
currencySymbol: zod_1.z.string().optional(),
registrationDate: zod_1.z.string().min(1, "Registration date is required"),
notes: zod_1.z.string().optional(),
customFields: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
orderNumber: zod_1.z.string().optional(),
groupName: zod_1.z.string().optional(),
paymentMethod: zod_1.z.string().optional(),
serverName: zod_1.z.string().optional(),
});
exports.subscriptionListSchema = zod_1.z.object({
subscriptions: zod_1.z.array(exports.subscriptionSchema),
totalCount: zod_1.z.number().int().nonnegative(),
});
exports.subscriptionQueryParamsSchema = 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.subscriptionStatusSchema.optional(),
type: zod_1.z.string().optional(),
});
exports.subscriptionQuerySchema = exports.subscriptionQueryParamsSchema;
exports.subscriptionStatsSchema = zod_1.z.object({
total: zod_1.z.number().int().nonnegative(),
active: zod_1.z.number().int().nonnegative(),
completed: zod_1.z.number().int().nonnegative(),
cancelled: zod_1.z.number().int().nonnegative(),
});
exports.simActionResponseSchema = zod_1.z.object({
success: zod_1.z.boolean(),
message: zod_1.z.string(),
data: zod_1.z.unknown().optional(),
});
exports.simPlanChangeResultSchema = zod_1.z.object({
success: zod_1.z.boolean(),
message: zod_1.z.string(),
ipv4: zod_1.z.string().optional(),
ipv6: zod_1.z.string().optional(),
});
//# sourceMappingURL=schema.js.map