UNPKG

@dcl.ru/dtos

Version:

dcl.ru API v3 data transfer objects — types, enums and zod schemas

257 lines 9.51 kB
import { z } from 'zod'; import { BadgeSchema, CategorySchema, GroupSchema, TagSchema } from './fronts.js'; export var SaleSchemas; (function (SaleSchemas) { SaleSchemas[SaleSchemas["Free"] = 1] = "Free"; SaleSchemas[SaleSchemas["Sale"] = 2] = "Sale"; SaleSchemas[SaleSchemas["Registration"] = 3] = "Registration"; SaleSchemas[SaleSchemas["ExternalSale"] = 4] = "ExternalSale"; SaleSchemas[SaleSchemas["ExternalRegistration"] = 5] = "ExternalRegistration"; SaleSchemas[SaleSchemas["Onsite"] = 6] = "Onsite"; })(SaleSchemas || (SaleSchemas = {})); export const SaleSchemasEnumSchema = z.nativeEnum(SaleSchemas); export var ImageTypes; (function (ImageTypes) { ImageTypes[ImageTypes["Original"] = 1] = "Original"; ImageTypes[ImageTypes["Micro"] = 2] = "Micro"; ImageTypes[ImageTypes["Thumbnail"] = 3] = "Thumbnail"; ImageTypes[ImageTypes["Card"] = 4] = "Card"; ImageTypes[ImageTypes["Regular"] = 5] = "Regular"; ImageTypes[ImageTypes["Background"] = 6] = "Background"; })(ImageTypes || (ImageTypes = {})); export const ImageTypesEnumSchema = z.nativeEnum(ImageTypes); export var AccessTypes; (function (AccessTypes) { AccessTypes[AccessTypes["Free"] = 1] = "Free"; AccessTypes[AccessTypes["Paid"] = 2] = "Paid"; AccessTypes[AccessTypes["Registration"] = 3] = "Registration"; })(AccessTypes || (AccessTypes = {})); export const AccessTypesEnumSchema = z.nativeEnum(AccessTypes); export var ProductStatuses; (function (ProductStatuses) { ProductStatuses[ProductStatuses["Active"] = 1] = "Active"; ProductStatuses[ProductStatuses["Passed"] = 2] = "Passed"; })(ProductStatuses || (ProductStatuses = {})); export const ProductStatusesEnumSchema = z.nativeEnum(ProductStatuses); export var ScheduleSlotTariffsStatuses; (function (ScheduleSlotTariffsStatuses) { ScheduleSlotTariffsStatuses[ScheduleSlotTariffsStatuses["AwaitingStart"] = 1] = "AwaitingStart"; ScheduleSlotTariffsStatuses[ScheduleSlotTariffsStatuses["Active"] = 2] = "Active"; ScheduleSlotTariffsStatuses[ScheduleSlotTariffsStatuses["SoldOut"] = 3] = "SoldOut"; })(ScheduleSlotTariffsStatuses || (ScheduleSlotTariffsStatuses = {})); export const ScheduleSlotTariffsStatusesEnumSchema = z.nativeEnum(ScheduleSlotTariffsStatuses); export var SoonFilter; (function (SoonFilter) { SoonFilter["Today"] = "\u0421\u0435\u0433\u043E\u0434\u043D\u044F"; SoonFilter["Tomorrow"] = "\u0417\u0430\u0432\u0442\u0440\u0430"; SoonFilter["Weekend"] = "\u0412\u044B\u0445\u043E\u0434\u043D\u044B\u0435"; })(SoonFilter || (SoonFilter = {})); export const SoonFilterEnumSchema = z.nativeEnum(SoonFilter); export const PeriodSchema = z.object({ from: z.coerce.date().nullable(), until: z.coerce.date().nullable(), }); export const PeriodTimeSchema = z.object({ from: z.string().nullable(), until: z.string().nullable(), }); export const ImageSchema = z.object({ id: z.coerce.number(), type: ImageTypesEnumSchema, url: z.string(), altText: z.string(), copyright: z.string().nullable(), copyrightUrl: z.string().nullable(), }); export const GeoSchema = z.object({ lat: z.coerce.number(), lon: z.coerce.number(), }); export const WorkingHourBreakSchema = z.object({ id: z.coerce.number(), period: PeriodTimeSchema, }); export const WorkingHourSchema = z.object({ id: z.coerce.number(), dayOfWeek: z.coerce.number(), period: PeriodTimeSchema, breaks: WorkingHourBreakSchema.array(), }); export const OpenPeriodExclusionSchema = z.object({ id: z.coerce.number(), period: PeriodSchema, }); export const OpenPeriodSchema = z.object({ id: z.coerce.number(), period: PeriodSchema, exclusions: OpenPeriodExclusionSchema.array(), workingHours: WorkingHourSchema.array(), }); export const InventoryItemSchema = z.object({ id: z.coerce.number(), slug: z.string(), name: z.string(), category: CategorySchema, description: z.string(), accessType: AccessTypesEnumSchema, ageRating: z.coerce.number(), address: z.string(), geo: GeoSchema, mapUrl: z.string(), outside: z.coerce.boolean(), animalsAllowed: z.coerce.boolean(), animalsRecommended: z.coerce.boolean(), kidsAllowed: z.coerce.boolean(), kidsRecommended: z.coerce.boolean(), featured: z.coerce.boolean(), images: ImageSchema.array(), openPeriods: OpenPeriodSchema.array(), }); export const InventoryItemFirstSchema = z.object({ id: z.coerce.number(), slug: z.string(), name: z.string(), }); export const ProductSchema = z.object({ id: z.coerce.number(), status: ProductStatusesEnumSchema, slug: z.string(), name: z.string(), saleSchema: SaleSchemasEnumSchema.nullable(), externalUrl: z.string().nullable(), categories: CategorySchema.array(), groups: GroupSchema.array(), tags: TagSchema.array(), badges: BadgeSchema.array(), ageRating: z.coerce.number(), scheduleSlotNext: PeriodSchema.nullable(), scheduleSlotsMulti: z.coerce.boolean().nullable(), lead: z.string().nullable(), description: z.string().nullable(), pushka: z.coerce.boolean().nullable(), paused: z.coerce.boolean().nullable(), priceFrom: z.coerce.number().nullable(), soldOut: z.coerce.boolean().nullable(), images: ImageSchema.array(), inventoryItems: InventoryItemSchema.array(), }); export const ProductCardSchema = z.object({ id: z.coerce.number(), slug: z.string(), name: z.string(), ageRating: z.coerce.number(), saleSchema: SaleSchemasEnumSchema, featured: z.coerce.boolean(), banner: z.coerce.boolean(), pushka: z.coerce.boolean(), paused: z.coerce.boolean(), priceFrom: z.coerce.number().nullable(), soldOut: z.coerce.boolean().nullable(), scheduleSlotNext: PeriodSchema, scheduleSlotsMulti: z.coerce.boolean(), image: ImageSchema.nullable(), inventoryItemFirst: InventoryItemFirstSchema, inventoryItemsMulti: z.coerce.boolean(), categories: CategorySchema.array(), groups: GroupSchema.array(), tags: TagSchema.array(), badges: BadgeSchema.array(), }); export const ProductCardPassedSchema = z.object({ id: z.coerce.number(), slug: z.string(), name: z.string(), ageRating: z.coerce.number(), image: ImageSchema.nullable(), inventoryItemFirst: InventoryItemFirstSchema, inventoryItemsMulti: z.coerce.boolean(), categories: CategorySchema.array(), groups: GroupSchema.array(), tags: TagSchema.array(), badges: BadgeSchema.array(), }); export const ProductCardOnHomepageSchema = z.object({ id: z.coerce.number(), slug: z.string(), name: z.string(), ageRating: z.coerce.number(), saleSchema: SaleSchemasEnumSchema, featured: z.coerce.boolean(), banner: z.coerce.boolean(), pushka: z.coerce.boolean(), paused: z.coerce.boolean(), priceFrom: z.coerce.number().nullable(), soldOut: z.coerce.boolean(), image: ImageSchema.nullable(), inventoryItemFirst: InventoryItemFirstSchema, inventoryItemsMulti: z.coerce.boolean(), categories: CategorySchema.array(), groups: GroupSchema.array(), tags: TagSchema.array(), badges: BadgeSchema.array(), scheduleSlotNext: PeriodSchema, scheduleSlotsMulti: z.coerce.boolean(), scheduleSlotToday: PeriodSchema.nullable(), scheduleSlotsTodayMulti: z.coerce.boolean().nullable(), scheduleSlotTomorrow: PeriodSchema.nullable(), scheduleSlotsTomorrowMulti: z.coerce.boolean().nullable(), scheduleSlotWeekend: PeriodSchema.nullable(), scheduleSlotsWeekendMulti: z.coerce.boolean().nullable(), }); export const ScheduleSlotSchema = z.object({ id: z.coerce.number(), slot: PeriodSchema, capacityAvailable: z.coerce.number().nullable(), soldOut: z.coerce.boolean().nullable(), }); export const TariffSchema = z.object({ id: z.coerce.number(), name: z.string(), nameShort: z.string(), nameFiscal: z.string(), description: z.string().nullable(), price: z.coerce.number(), vatName: z.string().nullable(), vatValue: z.coerce.number().nullable(), multiplier: z.coerce.number(), firstEnterWindow: PeriodSchema.nullable(), lifetimeWindowAfterFirstEnter: PeriodSchema.nullable(), exitEnterAllowed: z.coerce.boolean(), ticketGrouping: z.coerce.boolean(), limitPerPerson: z.coerce.number().nullable(), quotaAvailable: z.coerce.number().nullable(), soldOut: z.coerce.boolean(), inventoryItems: InventoryItemSchema.array(), }); export const TariffGroupSchema = z.object({ id: z.coerce.number(), name: z.string(), slug: z.string(), tariffs: TariffSchema.array(), }); export const ScheduleSlotTariffsSchema = z.object({ status: ScheduleSlotTariffsStatusesEnumSchema, startOn: z.coerce.date().nullable(), groups: TariffGroupSchema.array(), }); export const PromocodeSchema = z.object({ id: z.coerce.number(), promocode: z.string(), tariffIds: z.coerce.number().array(), fixedDiscount: z.coerce.number(), proportionalDiscount: z.coerce.number(), }); export const KzhnoBenefitSchema = z.object({ id: z.string(), name: z.string(), dateTo: z.coerce.date(), }); export const KzhnoSchema = z.object({ cardNumber: z.string(), isKzhnoCard: z.coerce.boolean(), isActive: z.coerce.boolean(), cardType: z.string(), variant: z.string(), benefits: KzhnoBenefitSchema.array(), }); //# sourceMappingURL=products.js.map