"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