archetecture security fix
This commit is contained in:
+155
@@ -0,0 +1,155 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.idParamSchema = exports.customDomainSchema = exports.subdomainSchema = exports.accountingSettingsSchema = exports.pricingRuleSchema = exports.insurancePolicySchema = exports.contractSettingsSchema = exports.brandSchema = exports.companySchema = void 0;
|
||||
const zod_1 = require("zod");
|
||||
exports.companySchema = zod_1.z.object({
|
||||
name: zod_1.z.string().min(1).optional(),
|
||||
email: zod_1.z.string().email().optional(),
|
||||
phone: zod_1.z.string().optional(),
|
||||
address: zod_1.z.record(zod_1.z.unknown()).optional(),
|
||||
});
|
||||
exports.brandSchema = zod_1.z.object({
|
||||
displayName: zod_1.z.string().min(1).optional(),
|
||||
tagline: zod_1.z.string().optional(),
|
||||
primaryColor: zod_1.z.string().optional(),
|
||||
accentColor: zod_1.z.string().optional(),
|
||||
publicEmail: zod_1.z.string().email().optional(),
|
||||
publicPhone: zod_1.z.string().optional(),
|
||||
publicAddress: zod_1.z.string().optional(),
|
||||
publicCity: zod_1.z.string().optional(),
|
||||
publicCountry: zod_1.z.string().optional(),
|
||||
websiteUrl: zod_1.z.string().url().optional(),
|
||||
whatsappNumber: zod_1.z.string().optional(),
|
||||
defaultLocale: zod_1.z.string().optional(),
|
||||
defaultCurrency: zod_1.z.literal('MAD').optional(),
|
||||
amanpayMerchantId: zod_1.z.string().optional(),
|
||||
amanpaySecretKey: zod_1.z.string().optional(),
|
||||
paypalEmail: zod_1.z.string().email().optional(),
|
||||
paypalMerchantId: zod_1.z.string().optional(),
|
||||
isListedOnMarketplace: zod_1.z.boolean().optional(),
|
||||
homePageConfig: zod_1.z.object({
|
||||
heroTitle: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
heroDescription: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
viewOffersLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
viewPricingLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
contactCompanyLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
activeOffersTitle: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
seeAllOffersLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
noActiveOffersLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
publishedVehiclesTitle: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
viewVehicleLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
pricingEyebrow: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
pricingTitle: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
pricingDescription: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
showOffers: zod_1.z.boolean().optional(),
|
||||
showVehicles: zod_1.z.boolean().optional(),
|
||||
showPricing: zod_1.z.boolean().optional(),
|
||||
layout: zod_1.z.object({
|
||||
items: zod_1.z.array(zod_1.z.object({
|
||||
id: zod_1.z.string().min(1),
|
||||
type: zod_1.z.enum(['hero', 'offers', 'vehicles', 'pricing']),
|
||||
x: zod_1.z.number().int().min(1),
|
||||
y: zod_1.z.number().int().min(1),
|
||||
w: zod_1.z.number().int().min(1),
|
||||
h: zod_1.z.number().int().min(1),
|
||||
})),
|
||||
}).optional(),
|
||||
}).optional(),
|
||||
menuConfig: zod_1.z.object({
|
||||
aboutLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
vehiclesLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
offersLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
pricingLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
blogLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
contactLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
bookCarLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
siteNavigationLabel: zod_1.z.union([zod_1.z.string(), zod_1.z.null()]).optional(),
|
||||
showAbout: zod_1.z.boolean().optional(),
|
||||
showVehicles: zod_1.z.boolean().optional(),
|
||||
showOffers: zod_1.z.boolean().optional(),
|
||||
showPricing: zod_1.z.boolean().optional(),
|
||||
showBlog: zod_1.z.boolean().optional(),
|
||||
showContact: zod_1.z.boolean().optional(),
|
||||
pageSections: zod_1.z.object({
|
||||
home: zod_1.z.object({
|
||||
hero: zod_1.z.boolean().optional(), offers: zod_1.z.boolean().optional(),
|
||||
vehicles: zod_1.z.boolean().optional(), pricing: zod_1.z.boolean().optional(),
|
||||
}).optional(),
|
||||
about: zod_1.z.object({
|
||||
hero: zod_1.z.boolean().optional(), highlights: zod_1.z.boolean().optional(), details: zod_1.z.boolean().optional(),
|
||||
}).optional(),
|
||||
offers: zod_1.z.object({ header: zod_1.z.boolean().optional(), grid: zod_1.z.boolean().optional() }).optional(),
|
||||
pricing: zod_1.z.object({
|
||||
hero: zod_1.z.boolean().optional(), plans: zod_1.z.boolean().optional(),
|
||||
payments: zod_1.z.boolean().optional(), faq: zod_1.z.boolean().optional(),
|
||||
}).optional(),
|
||||
vehicles: zod_1.z.object({
|
||||
header: zod_1.z.boolean().optional(), filters: zod_1.z.boolean().optional(), grid: zod_1.z.boolean().optional(),
|
||||
}).optional(),
|
||||
vehicleDetail: zod_1.z.object({ gallery: zod_1.z.boolean().optional(), summary: zod_1.z.boolean().optional() }).optional(),
|
||||
blog: zod_1.z.object({ hero: zod_1.z.boolean().optional(), posts: zod_1.z.boolean().optional() }).optional(),
|
||||
contact: zod_1.z.object({ content: zod_1.z.boolean().optional() }).optional(),
|
||||
booking: zod_1.z.object({ content: zod_1.z.boolean().optional() }).optional(),
|
||||
bookingConfirmation: zod_1.z.object({
|
||||
hero: zod_1.z.boolean().optional(), summary: zod_1.z.boolean().optional(), actions: zod_1.z.boolean().optional(),
|
||||
}).optional(),
|
||||
}).optional(),
|
||||
}).optional(),
|
||||
});
|
||||
exports.contractSettingsSchema = zod_1.z.object({
|
||||
legalName: zod_1.z.string().optional(),
|
||||
registrationNumber: zod_1.z.string().optional(),
|
||||
taxId: zod_1.z.string().optional(),
|
||||
terms: zod_1.z.string().optional(),
|
||||
fuelPolicy: zod_1.z.string().optional(),
|
||||
depositPolicy: zod_1.z.string().optional(),
|
||||
lateFeePolicy: zod_1.z.string().optional(),
|
||||
damagePolicy: zod_1.z.string().optional(),
|
||||
contractFooterNote: zod_1.z.string().optional(),
|
||||
invoiceFooterNote: zod_1.z.string().optional(),
|
||||
signatureRequired: zod_1.z.boolean().optional(),
|
||||
showTax: zod_1.z.boolean().optional(),
|
||||
taxRate: zod_1.z.number().optional(),
|
||||
taxLabel: zod_1.z.string().optional(),
|
||||
fuelPolicyType: zod_1.z.enum(['FULL_TO_FULL', 'FULL_TO_EMPTY', 'SAME_TO_SAME', 'PREPAID', 'FREE']).optional(),
|
||||
fuelPolicyNote: zod_1.z.string().optional(),
|
||||
fuelChargePerLiter: zod_1.z.number().int().optional(),
|
||||
fuelShortfallFee: zod_1.z.number().int().optional(),
|
||||
lateFeePerHour: zod_1.z.number().int().optional(),
|
||||
additionalDriverCharge: zod_1.z.enum(['FREE', 'PER_DAY', 'FLAT']).optional(),
|
||||
additionalDriverDailyRate: zod_1.z.number().int().optional(),
|
||||
additionalDriverFlatRate: zod_1.z.number().int().optional(),
|
||||
});
|
||||
exports.insurancePolicySchema = zod_1.z.object({
|
||||
name: zod_1.z.string().min(1),
|
||||
description: zod_1.z.string().optional(),
|
||||
type: zod_1.z.enum(['CDW', 'SCDW', 'THEFT', 'THIRD_PARTY', 'FULL', 'BASIC', 'ROADSIDE', 'PERSONAL', 'CUSTOM']),
|
||||
chargeType: zod_1.z.enum(['PER_DAY', 'PER_RENTAL', 'PERCENTAGE_OF_RENTAL']),
|
||||
chargeValue: zod_1.z.number().int().min(0),
|
||||
isRequired: zod_1.z.boolean().default(false),
|
||||
isActive: zod_1.z.boolean().default(true),
|
||||
sortOrder: zod_1.z.number().int().default(0),
|
||||
});
|
||||
exports.pricingRuleSchema = zod_1.z.object({
|
||||
name: zod_1.z.string().min(1),
|
||||
type: zod_1.z.enum(['SURCHARGE', 'DISCOUNT']),
|
||||
condition: zod_1.z.enum(['AGE_LESS_THAN', 'AGE_GREATER_THAN', 'LICENSE_YEARS_LESS_THAN', 'LICENSE_YEARS_GREATER_THAN']),
|
||||
conditionValue: zod_1.z.number().int(),
|
||||
adjustmentType: zod_1.z.enum(['PERCENTAGE', 'FLAT_PER_DAY', 'FLAT_TOTAL']),
|
||||
adjustmentValue: zod_1.z.number().int(),
|
||||
isActive: zod_1.z.boolean().default(true),
|
||||
description: zod_1.z.string().optional(),
|
||||
});
|
||||
exports.accountingSettingsSchema = zod_1.z.object({
|
||||
reportingPeriod: zod_1.z.enum(['WEEKLY', 'MONTHLY', 'QUARTERLY', 'ANNUAL']).optional(),
|
||||
fiscalYearStart: zod_1.z.number().int().min(1).max(12).optional(),
|
||||
currency: zod_1.z.literal('MAD').optional(),
|
||||
accountantEmail: zod_1.z.string().email().optional(),
|
||||
accountantName: zod_1.z.string().optional(),
|
||||
autoSendReport: zod_1.z.boolean().optional(),
|
||||
reportFormat: zod_1.z.enum(['PDF', 'CSV', 'BOTH']).optional(),
|
||||
});
|
||||
exports.subdomainSchema = zod_1.z.object({ subdomain: zod_1.z.string().min(3) });
|
||||
exports.customDomainSchema = zod_1.z.object({ customDomain: zod_1.z.string().min(3) });
|
||||
exports.idParamSchema = zod_1.z.object({ id: zod_1.z.string() });
|
||||
//# sourceMappingURL=company.schemas.js.map
|
||||
Reference in New Issue
Block a user