"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