32 lines
1.4 KiB
JavaScript
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
|