import { z } from 'zod'; export const MediaDto = z.object({ mediaType: z.string().optional(), mediaFileName: z.string(), }); export const PriceDto = z.object({ noOfSession: z.number().int().optional().default(1), isPackage: z.boolean().optional().default(false), sessionValidity: z.number().int().optional().default(0), sessionValidityFrequency: z.string().optional().default('Days'), basePrice: z.number().int().optional().default(0), sellPrice: z.number().int().optional().default(0), }); export const VenueDto = z.object({ venueName: z.string(), venueCapacity: z.number().int().optional().default(0), availableSeats: z.number().int().optional().default(0), isMinPeopleReqMandatory: z.boolean().optional().default(false), minPeopleRequired: z.number().int().nullable().optional(), minReqfullfilledBeforeMins: z.number().int().nullable().optional(), venueDescription: z.string().optional(), prices: z.array(PriceDto).optional().default([]), }); export const PickupDetailDto = z.object({ isPickUp: z.boolean().optional().default(false), locationLat: z.number().optional().nullable(), locationLong: z.number().optional().nullable(), locationAddress: z.string().optional().nullable(), transportBasePrice: z.number().int().optional().default(0), transportTotalPrice: z.number().int().optional().default(0), }); export const PickupTransportDto = z.object({ transportModeXid: z.number().int(), isTransportModeChargeable: z.boolean().optional().default(false), pickupDetails: z.array(PickupDetailDto).optional().default([]), }); export const NavigationModeDto = z.object({ navigationModeXid: z.number().int(), isInActivityChargeable: z.boolean().optional().default(false), basePrice: z.number().int().optional().default(0), totalPrice: z.number().int().optional().default(0), }); export const EquipmentDto = z.object({ equipmentName: z.string(), isEquipmentChargeable: z.boolean().optional().default(false), equipmentBasePrice: z.number().int().optional().default(0), equipmentTotalPrice: z.number().int().optional().default(0), }); export const EligibilityDto = z.object({ isAgeRestriction: z.boolean().optional().default(false), ageRestrictionXid: z.number().int().nullable().optional(), isWeightRestriction: z.boolean().optional().default(false), weightRestrictionName: z.string().optional().nullable(), weightEntered: z.number().int().nullable().optional(), weightIn: z.string().optional().nullable(), minWeight: z.number().int().nullable().optional(), maxWeight: z.number().int().nullable().optional(), isHeightRestriction: z.boolean().optional().default(false), heightRestrictionName: z.string().optional().nullable(), heightEntered: z.number().int().nullable().optional(), minHeight: z.number().int().nullable().optional(), maxHeight: z.number().int().nullable().optional(), }); export const OtherDetailsDto = z.object({ exclusiveNotes: z.string().optional(), dosNotes: z.string().optional(), dontsNotes: z.string().optional(), tipsNotes: z.string().optional(), termsAndCondition: z.string().optional(), }); export const CreateActivityDto = z.object({ activityTypeXid: z.number().int(), frequenciesXid: z.number().int().nullable().optional(), activityTitle: z.string().optional(), activityDescription: z.string().optional(), checkInLat: z.number().optional().nullable(), checkInLong: z.number().optional().nullable(), checkInAddress: z.string().optional().nullable(), isCheckOutSame: z.boolean().optional().default(true), checkOutLat: z.number().optional().nullable(), checkOutLong: z.number().optional().nullable(), checkOutAddress: z.string().optional().nullable(), energyLevelXid: z.number().int().nullable().optional(), activityDurationMins: z.number().int().nullable().optional(), durationHours: z.number().int().optional(), durationMins: z.number().int().optional(), foodAvailable: z.boolean().optional().default(false), foodIsChargeable: z.boolean().optional().default(false), alcoholAvailable: z.boolean().optional().default(false), trainerAvailable: z.boolean().optional().default(false), trainerIsChargeable: z.boolean().optional().default(false), pickUpDropAvailable: z.boolean().optional().default(false), pickUpDropIsChargeable: z.boolean().optional().default(false), inActivityAvailable: z.boolean().optional().default(false), inActivityIsChargeable: z.boolean().optional().default(false), equipmentAvailable: z.boolean().optional().default(false), equipmentIsChargeable: z.boolean().optional().default(false), cancellationAvailable: z.boolean().optional().default(false), currencyXid: z.number().int().nullable().optional(), sustainabilityScore: z.number().int().optional().nullable(), safetyScore: z.number().int().optional().nullable(), isInstantBooking: z.boolean().optional().default(false), media: z.array(MediaDto).optional().default([]), venues: z.array(VenueDto).optional().default([]), foodTypeIds: z.array(z.number().int()).optional().default([]), cuisineIds: z.array(z.number().int()).optional().default([]), pickupTransports: z.array(PickupTransportDto).optional().default([]), navigationModes: z.array(NavigationModeDto).optional().default([]), equipments: z.array(EquipmentDto).optional().default([]), amenitiesIds: z.array(z.number().int()).optional().default([]), eligibility: EligibilityDto.optional(), otherDetails: OtherDetailsDto.optional(), }); export type CreateActivityInput = z.infer;