Files
alrahma_sunday_school_api/apps/api/dist/modules/offers/offer.schemas.js
T
2026-06-11 03:22:12 -04:00

32 lines
1.4 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.idParamSchema = exports.listQuerySchema = exports.offerSchema = void 0;
const zod_1 = require("zod");
exports.offerSchema = zod_1.z.object({
title: zod_1.z.string().min(1),
description: zod_1.z.string().optional(),
termsAndConds: zod_1.z.string().optional(),
type: zod_1.z.enum(['PERCENTAGE', 'FIXED_AMOUNT', 'FREE_DAY', 'SPECIAL_RATE']),
discountValue: zod_1.z.number().int().min(0),
specialRate: zod_1.z.number().int().optional(),
appliesToAll: zod_1.z.boolean().default(true),
categories: zod_1.z.array(zod_1.z.enum(['ECONOMY', 'COMPACT', 'MIDSIZE', 'FULLSIZE', 'SUV', 'LUXURY', 'VAN', 'TRUCK'])).default([]),
minRentalDays: zod_1.z.number().int().optional(),
maxRentalDays: zod_1.z.number().int().optional(),
promoCode: zod_1.z.string().optional(),
maxRedemptions: zod_1.z.number().int().optional(),
validFrom: zod_1.z.string().datetime(),
validUntil: zod_1.z.string().datetime(),
isActive: zod_1.z.boolean().default(true),
isPublic: zod_1.z.boolean().default(true),
isFeatured: zod_1.z.boolean().default(false),
vehicleIds: zod_1.z.array(zod_1.z.string()).default([]),
});
exports.listQuerySchema = zod_1.z.object({
active: zod_1.z.string().optional(),
public: zod_1.z.string().optional(),
});
exports.idParamSchema = zod_1.z.object({
id: zod_1.z.string().min(1),
});
//# sourceMappingURL=offer.schemas.js.map