/* tslint:disable */ /** * This file was automatically generated by Payload. * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config, * and re-run `payload generate:types` to regenerate this file. */ /** * Supported timezones in IANA format. * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "supportedTimezones". */ export type SupportedTimezones = 'Europe/Kyiv' export interface Config { auth: { users: UserAuthOperations } blocks: {} collections: { users: User media: Media pages: Page 'blog-posts': BlogPost categories: Category tags: Tag tariffs: Tariff leads: Lead orders: Order locations: Location reviews: Review 'birthday-packages': BirthdayPackage redirects: Redirect forms: Form 'form-submissions': FormSubmission 'payload-kv': PayloadKv 'payload-locked-documents': PayloadLockedDocument 'payload-preferences': PayloadPreference 'payload-migrations': PayloadMigration } collectionsJoins: {} collectionsSelect: { users: UsersSelect | UsersSelect media: MediaSelect | MediaSelect pages: PagesSelect | PagesSelect 'blog-posts': BlogPostsSelect | BlogPostsSelect categories: CategoriesSelect | CategoriesSelect tags: TagsSelect | TagsSelect tariffs: TariffsSelect | TariffsSelect leads: LeadsSelect | LeadsSelect orders: OrdersSelect | OrdersSelect locations: LocationsSelect | LocationsSelect reviews: ReviewsSelect | ReviewsSelect 'birthday-packages': BirthdayPackagesSelect | BirthdayPackagesSelect redirects: RedirectsSelect | RedirectsSelect forms: FormsSelect | FormsSelect 'form-submissions': FormSubmissionsSelect | FormSubmissionsSelect 'payload-kv': PayloadKvSelect | PayloadKvSelect 'payload-locked-documents': | PayloadLockedDocumentsSelect | PayloadLockedDocumentsSelect 'payload-preferences': PayloadPreferencesSelect | PayloadPreferencesSelect 'payload-migrations': PayloadMigrationsSelect | PayloadMigrationsSelect } db: { defaultIDType: number } fallbackLocale: null globals: { 'home-page': HomePage 'checkout-page': CheckoutPage 'thank-you-page': ThankYouPage header: Header footer: Footer 'site-settings': SiteSetting 'dyvolis-page': DyvolisPage 'group-visits-page': GroupVisitsPage 'birthday-page': BirthdayPage 'tickets-page': TicketsPage 'locations-page': LocationsPage 'blog-index-page': BlogIndexPage 'dinosaur-page': DinosaurPage } globalsSelect: { 'home-page': HomePageSelect | HomePageSelect 'checkout-page': CheckoutPageSelect | CheckoutPageSelect 'thank-you-page': ThankYouPageSelect | ThankYouPageSelect header: HeaderSelect | HeaderSelect footer: FooterSelect | FooterSelect 'site-settings': SiteSettingsSelect | SiteSettingsSelect 'dyvolis-page': DyvolisPageSelect | DyvolisPageSelect 'group-visits-page': GroupVisitsPageSelect | GroupVisitsPageSelect 'birthday-page': BirthdayPageSelect | BirthdayPageSelect 'tickets-page': TicketsPageSelect | TicketsPageSelect 'locations-page': LocationsPageSelect | LocationsPageSelect 'blog-index-page': BlogIndexPageSelect | BlogIndexPageSelect 'dinosaur-page': DinosaurPageSelect | DinosaurPageSelect } locale: null widgets: { collections: CollectionsWidget } user: User jobs: { tasks: unknown workflows: unknown } } export interface UserAuthOperations { forgotPassword: { email: string password: string } login: { email: string password: string } registerFirstUser: { email: string password: string } unlock: { email: string password: string } } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "users". */ export interface User { id: number name: string role: 'admin' | 'editor' updatedAt: string createdAt: string email: string resetPasswordToken?: string | null resetPasswordExpiration?: string | null salt?: string | null hash?: string | null loginAttempts?: number | null lockUntil?: string | null sessions?: | { id: string createdAt?: string | null expiresAt: string }[] | null password?: string | null collection: 'users' } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "media". */ export interface Media { id: number alt: string updatedAt: string createdAt: string url?: string | null thumbnailURL?: string | null filename?: string | null mimeType?: string | null filesize?: number | null width?: number | null height?: number | null focalX?: number | null focalY?: number | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "pages". */ export interface Page { id: number title: string slug?: string | null status?: ('draft' | 'published') | null layout?: | ( | { title: string subtitle?: string | null ctaLabel?: string | null ctaHref?: string | null backgroundType?: ('image' | 'video') | null backgroundImage?: (number | null) | Media backgroundVideoUrl?: string | null id?: string | null blockName?: string | null blockType: 'hero' } | { title?: string | null locations?: | { name?: string | null description?: string | null image?: (number | null) | Media href?: string | null ctaLabel?: string | null id?: string | null }[] | null id?: string | null blockName?: string | null blockType: 'locationsTeaser' } | { title?: string | null items?: | { icon?: string | null title: string description?: string | null id?: string | null }[] | null id?: string | null blockName?: string | null blockType: 'features' } | { title?: string | null limit?: number | null id?: string | null blockName?: string | null blockType: 'newsBlock' } | { title?: string | null subtitle?: string | null ctaLabel?: string | null id?: string | null blockName?: string | null blockType: 'newsletterForm' } | { title?: string | null images?: | { image: number | Media caption?: string | null id?: string | null }[] | null id?: string | null blockName?: string | null blockType: 'gallery' } | { content: { root: { type: string children: { type: any version: number [k: string]: unknown }[] direction: ('ltr' | 'rtl') | null format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '' indent: number version: number } [k: string]: unknown } id?: string | null blockName?: string | null blockType: 'richText' } | { image: number | Media caption?: string | null fullWidth?: boolean | null id?: string | null blockName?: string | null blockType: 'imageBlock' } | { videoUrl: string caption?: string | null autoplay?: boolean | null id?: string | null blockName?: string | null blockType: 'videoBlock' } | { title?: string | null subtitle?: string | null formSource: string showPhone?: boolean | null showEmail?: boolean | null ctaLabel?: string | null successMessage?: string | null id?: string | null blockName?: string | null blockType: 'leadForm' } | { title?: string | null subtitle?: string | null showOnlyVisible?: boolean | null ctaLabel?: string | null id?: string | null blockName?: string | null blockType: 'pricingBlock' } | { title: string subtitle?: string | null ctaLabel: string ctaHref: string variant?: ('primary' | 'secondary' | 'dark') | null id?: string | null blockName?: string | null blockType: 'cta' } )[] | null meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } updatedAt: string createdAt: string _status?: ('draft' | 'published') | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "blog-posts". */ export interface BlogPost { id: number title: string slug?: string | null publishedAt?: string | null hero?: (number | null) | Media body?: { root: { type: string children: { type: any version: number [k: string]: unknown }[] direction: ('ltr' | 'rtl') | null format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '' indent: number version: number } [k: string]: unknown } | null excerpt?: string | null categories?: (number | Category)[] | null tags?: (number | Tag)[] | null status?: ('draft' | 'published') | null meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } updatedAt: string createdAt: string _status?: ('draft' | 'published') | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "categories". */ export interface Category { id: number name: string slug?: string | null updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "tags". */ export interface Tag { id: number name: string slug?: string | null updatedAt: string createdAt: string } /** * Керування квитками: показ/приховування, значки, описи, фото. Зніміть «Показувати на сайті», щоб приховати квиток (напр. якщо його ще немає в ezy). * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "tariffs". */ export interface Tariff { id: number /** * Встановлюється автоматично при синхронізації з ezy API. Порожнє — для квитків, доданих вручну. */ ezy_id?: number | null display_name?: string | null description?: { root: { type: string children: { type: any version: number [k: string]: unknown }[] direction: ('ltr' | 'rtl') | null format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '' indent: number version: number } [k: string]: unknown } | null image?: (number | null) | Media icon?: string | null category_tag: 'zone' | 'attraction' | 'program' | 'combo' | 'dyno' | 'dyvolis' | 'maze' | 'family' /** * Якщо порожнє — береться з назви категорії (Зона / Атракціон / Екскурсія). */ badgeLabel?: string | null /** * Маленькі значки під назвою: тривалість, вартість за людину, вік тощо. Іконка + текст. */ infoChips?: | { icon: | 'clock' | 'person' | 'group' | 'age' | 'infinity' | 'target' | 'session' | 'height' | 'wrench' | 'graduation' | 'rainbow' | 'send' | 'vr' label: string id?: string | null }[] | null sort?: number | null /** * Зніміть галочку, щоб приховати квиток із сайту (напр. якщо його ще немає в ezy). */ visible?: boolean | null /** * Оновлюється автоматично при синхронізації */ last_synced_name?: string | null last_synced_price?: number | null last_synced_at?: string | null updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "leads". */ export interface Lead { id: number name: string phone: string email?: string | null formSource: string utmSource?: string | null utmMedium?: string | null utmCampaign?: string | null utmContent?: string | null utmTerm?: string | null gclid?: string | null status?: ('new' | 'contacted' | 'qualified' | 'closed') | null message?: string | null groupSize?: number | null preferredDate?: string | null packageSlug?: string | null notes?: string | null lastCallAt?: string | null updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "orders". */ export interface Order { id: number name?: string | null phone?: string | null email: string items?: | { tariffId: string count: number id?: string | null }[] | null amount: number monobankUrl: string status?: ('redirected_to_payment' | 'paid' | 'failed' | 'cancelled') | null ezyActivity?: string | null updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "locations". */ export interface Location { id: number name: string slug: string tagline?: string | null shortDesc?: string | null description?: { root: { type: string children: { type: any version: number [k: string]: unknown }[] direction: ('ltr' | 'rtl') | null format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '' indent: number version: number } [k: string]: unknown } | null image?: (number | null) | Media gallery?: | { image?: (number | null) | Media id?: string | null }[] | null /** * Зовнішнє посилання (якщо є) */ href?: string | null showInMenu?: boolean | null showOnHome?: boolean | null sort?: number | null /** * Увімкнути детальну сторінку для цієї локації */ showDetailPage?: boolean | null /** * Фоновий декор у hero-секції (еліпс, візерунок) */ heroBackground?: (number | null) | Media /** * Число у круглому бейджі, напр. "60+" */ heroStat?: string | null heroStatLabel?: string | null heroTips?: | { text: string id?: string | null }[] | null galleryQuote?: string | null whyVisitTitle?: string | null whyVisitItems?: | { title: string description: string id?: string | null }[] | null /** * Якщо порожньо — використовуються стандартні відео */ reviewVideos?: | { /** * URL відео, напр. /videos/dyvolis/video-01.mp4 */ src: string /** * URL постеру */ poster?: string | null label?: string | null id?: string | null }[] | null /** * Напр. "щодня з 11:00 до 20:00" */ workingHours?: string | null /** * Підзаголовок під секцією "Комбо" в блоці квитків */ comboDescription?: string | null meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "reviews". */ export interface Review { id: number name: string initial?: string | null avatarBg?: (number | null) | Media ago?: string | null rating?: number | null text: string source?: ('google' | 'facebook' | 'instagram' | 'manual') | null /** * URL відео-відгуку, напр. /videos/dyvolis/video-01.mp4 */ videoUrl?: string | null /** * URL постеру для відео */ videoPoster?: string | null showOnHome?: boolean | null sort?: number | null updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "birthday-packages". */ export interface BirthdayPackage { id: number name: string slug: string price: number currency?: string | null priceLabel?: string | null features?: | { text: string id?: string | null }[] | null featured?: boolean | null badge?: string | null ctaLabel?: string | null ctaHref?: string | null sort?: number | null updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "redirects". */ export interface Redirect { id: number from: string to?: { type?: ('reference' | 'custom') | null reference?: { relationTo: 'pages' value: number | Page } | null url?: string | null } type: '301' | '302' updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "forms". */ export interface Form { id: number title: string fields?: | ( | { name: string label?: string | null width?: number | null required?: boolean | null defaultValue?: boolean | null id?: string | null blockName?: string | null blockType: 'checkbox' } | { name: string label?: string | null width?: number | null required?: boolean | null id?: string | null blockName?: string | null blockType: 'email' } | { message?: { root: { type: string children: { type: any version: number [k: string]: unknown }[] direction: ('ltr' | 'rtl') | null format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '' indent: number version: number } [k: string]: unknown } | null id?: string | null blockName?: string | null blockType: 'message' } | { name: string label?: string | null width?: number | null defaultValue?: number | null required?: boolean | null id?: string | null blockName?: string | null blockType: 'number' } | { name: string label?: string | null width?: number | null defaultValue?: string | null placeholder?: string | null options?: | { label: string value: string id?: string | null }[] | null required?: boolean | null id?: string | null blockName?: string | null blockType: 'select' } | { name: string label?: string | null width?: number | null defaultValue?: string | null required?: boolean | null id?: string | null blockName?: string | null blockType: 'text' } | { name: string label?: string | null width?: number | null defaultValue?: string | null required?: boolean | null id?: string | null blockName?: string | null blockType: 'textarea' } | { name: string label?: string | null width?: number | null required?: boolean | null defaultValue?: string | null id?: string | null blockName?: string | null blockType: 'date' } )[] | null submitButtonLabel?: string | null /** * Choose whether to display an on-page message or redirect to a different page after they submit the form. */ confirmationType?: ('message' | 'redirect') | null confirmationMessage?: { root: { type: string children: { type: any version: number [k: string]: unknown }[] direction: ('ltr' | 'rtl') | null format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '' indent: number version: number } [k: string]: unknown } | null redirect?: { type?: ('reference' | 'custom') | null reference?: { relationTo: 'pages' value: number | Page } | null url?: string | null } /** * Send custom emails when the form submits. Use comma separated lists to send the same email to multiple recipients. To reference a value from this form, wrap that field's name with double curly brackets, i.e. {{firstName}}. You can use a wildcard {{*}} to output all data and {{*:table}} to format it as an HTML table in the email. */ emails?: | { emailTo?: string | null cc?: string | null bcc?: string | null replyTo?: string | null emailFrom?: string | null subject: string /** * Enter the message that should be sent in this email. */ message?: { root: { type: string children: { type: any version: number [k: string]: unknown }[] direction: ('ltr' | 'rtl') | null format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '' indent: number version: number } [k: string]: unknown } | null id?: string | null }[] | null updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "form-submissions". */ export interface FormSubmission { id: number form: number | Form submissionData?: | { field: string value: string id?: string | null }[] | null updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-kv". */ export interface PayloadKv { id: number key: string data: | { [k: string]: unknown } | unknown[] | string | number | boolean | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-locked-documents". */ export interface PayloadLockedDocument { id: number document?: | ({ relationTo: 'users' value: number | User } | null) | ({ relationTo: 'media' value: number | Media } | null) | ({ relationTo: 'pages' value: number | Page } | null) | ({ relationTo: 'blog-posts' value: number | BlogPost } | null) | ({ relationTo: 'categories' value: number | Category } | null) | ({ relationTo: 'tags' value: number | Tag } | null) | ({ relationTo: 'tariffs' value: number | Tariff } | null) | ({ relationTo: 'leads' value: number | Lead } | null) | ({ relationTo: 'orders' value: number | Order } | null) | ({ relationTo: 'locations' value: number | Location } | null) | ({ relationTo: 'reviews' value: number | Review } | null) | ({ relationTo: 'birthday-packages' value: number | BirthdayPackage } | null) | ({ relationTo: 'redirects' value: number | Redirect } | null) | ({ relationTo: 'forms' value: number | Form } | null) | ({ relationTo: 'form-submissions' value: number | FormSubmission } | null) globalSlug?: string | null user: { relationTo: 'users' value: number | User } updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-preferences". */ export interface PayloadPreference { id: number user: { relationTo: 'users' value: number | User } key?: string | null value?: | { [k: string]: unknown } | unknown[] | string | number | boolean | null updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-migrations". */ export interface PayloadMigration { id: number name?: string | null batch?: number | null updatedAt: string createdAt: string } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "users_select". */ export interface UsersSelect { name?: T role?: T updatedAt?: T createdAt?: T email?: T resetPasswordToken?: T resetPasswordExpiration?: T salt?: T hash?: T loginAttempts?: T lockUntil?: T sessions?: | T | { id?: T createdAt?: T expiresAt?: T } } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "media_select". */ export interface MediaSelect { alt?: T updatedAt?: T createdAt?: T url?: T thumbnailURL?: T filename?: T mimeType?: T filesize?: T width?: T height?: T focalX?: T focalY?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "pages_select". */ export interface PagesSelect { title?: T slug?: T status?: T layout?: | T | { hero?: | T | { title?: T subtitle?: T ctaLabel?: T ctaHref?: T backgroundType?: T backgroundImage?: T backgroundVideoUrl?: T id?: T blockName?: T } locationsTeaser?: | T | { title?: T locations?: | T | { name?: T description?: T image?: T href?: T ctaLabel?: T id?: T } id?: T blockName?: T } features?: | T | { title?: T items?: | T | { icon?: T title?: T description?: T id?: T } id?: T blockName?: T } newsBlock?: | T | { title?: T limit?: T id?: T blockName?: T } newsletterForm?: | T | { title?: T subtitle?: T ctaLabel?: T id?: T blockName?: T } gallery?: | T | { title?: T images?: | T | { image?: T caption?: T id?: T } id?: T blockName?: T } richText?: | T | { content?: T id?: T blockName?: T } imageBlock?: | T | { image?: T caption?: T fullWidth?: T id?: T blockName?: T } videoBlock?: | T | { videoUrl?: T caption?: T autoplay?: T id?: T blockName?: T } leadForm?: | T | { title?: T subtitle?: T formSource?: T showPhone?: T showEmail?: T ctaLabel?: T successMessage?: T id?: T blockName?: T } pricingBlock?: | T | { title?: T subtitle?: T showOnlyVisible?: T ctaLabel?: T id?: T blockName?: T } cta?: | T | { title?: T subtitle?: T ctaLabel?: T ctaHref?: T variant?: T id?: T blockName?: T } } meta?: | T | { title?: T description?: T image?: T } updatedAt?: T createdAt?: T _status?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "blog-posts_select". */ export interface BlogPostsSelect { title?: T slug?: T publishedAt?: T hero?: T body?: T excerpt?: T categories?: T tags?: T status?: T meta?: | T | { title?: T description?: T image?: T } updatedAt?: T createdAt?: T _status?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "categories_select". */ export interface CategoriesSelect { name?: T slug?: T updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "tags_select". */ export interface TagsSelect { name?: T slug?: T updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "tariffs_select". */ export interface TariffsSelect { ezy_id?: T display_name?: T description?: T image?: T icon?: T category_tag?: T badgeLabel?: T infoChips?: | T | { icon?: T label?: T id?: T } sort?: T visible?: T last_synced_name?: T last_synced_price?: T last_synced_at?: T updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "leads_select". */ export interface LeadsSelect { name?: T phone?: T email?: T formSource?: T utmSource?: T utmMedium?: T utmCampaign?: T utmContent?: T utmTerm?: T gclid?: T status?: T message?: T groupSize?: T preferredDate?: T packageSlug?: T notes?: T lastCallAt?: T updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "orders_select". */ export interface OrdersSelect { name?: T phone?: T email?: T items?: | T | { tariffId?: T count?: T id?: T } amount?: T monobankUrl?: T status?: T ezyActivity?: T updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "locations_select". */ export interface LocationsSelect { name?: T slug?: T tagline?: T shortDesc?: T description?: T image?: T gallery?: | T | { image?: T id?: T } href?: T showInMenu?: T showOnHome?: T sort?: T showDetailPage?: T heroBackground?: T heroStat?: T heroStatLabel?: T heroTips?: | T | { text?: T id?: T } galleryQuote?: T whyVisitTitle?: T whyVisitItems?: | T | { title?: T description?: T id?: T } reviewVideos?: | T | { src?: T poster?: T label?: T id?: T } workingHours?: T comboDescription?: T meta?: | T | { title?: T description?: T image?: T } updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "reviews_select". */ export interface ReviewsSelect { name?: T initial?: T avatarBg?: T ago?: T rating?: T text?: T source?: T videoUrl?: T videoPoster?: T showOnHome?: T sort?: T updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "birthday-packages_select". */ export interface BirthdayPackagesSelect { name?: T slug?: T price?: T currency?: T priceLabel?: T features?: | T | { text?: T id?: T } featured?: T badge?: T ctaLabel?: T ctaHref?: T sort?: T updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "redirects_select". */ export interface RedirectsSelect { from?: T to?: | T | { type?: T reference?: T url?: T } type?: T updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "forms_select". */ export interface FormsSelect { title?: T fields?: | T | { checkbox?: | T | { name?: T label?: T width?: T required?: T defaultValue?: T id?: T blockName?: T } email?: | T | { name?: T label?: T width?: T required?: T id?: T blockName?: T } message?: | T | { message?: T id?: T blockName?: T } number?: | T | { name?: T label?: T width?: T defaultValue?: T required?: T id?: T blockName?: T } select?: | T | { name?: T label?: T width?: T defaultValue?: T placeholder?: T options?: | T | { label?: T value?: T id?: T } required?: T id?: T blockName?: T } text?: | T | { name?: T label?: T width?: T defaultValue?: T required?: T id?: T blockName?: T } textarea?: | T | { name?: T label?: T width?: T defaultValue?: T required?: T id?: T blockName?: T } date?: | T | { name?: T label?: T width?: T required?: T defaultValue?: T id?: T blockName?: T } } submitButtonLabel?: T confirmationType?: T confirmationMessage?: T redirect?: | T | { type?: T reference?: T url?: T } emails?: | T | { emailTo?: T cc?: T bcc?: T replyTo?: T emailFrom?: T subject?: T message?: T id?: T } updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "form-submissions_select". */ export interface FormSubmissionsSelect { form?: T submissionData?: | T | { field?: T value?: T id?: T } updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-kv_select". */ export interface PayloadKvSelect { key?: T data?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-locked-documents_select". */ export interface PayloadLockedDocumentsSelect { document?: T globalSlug?: T user?: T updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-preferences_select". */ export interface PayloadPreferencesSelect { user?: T key?: T value?: T updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-migrations_select". */ export interface PayloadMigrationsSelect { name?: T batch?: T updatedAt?: T createdAt?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "home-page". */ export interface HomePage { id: number hero?: { title?: string | null subtitle?: string | null ctaLabel?: string | null ctaHref?: string | null backgroundVideo?: string | null backgroundImage?: (number | null) | Media /** * Передній план Hero (динозавр PNG з прозорим фоном). Лежить поверх тексту, тільки desktop. */ foregroundOverlay?: (number | null) | Media /** * Сімейне фото / силует на передньому плані Hero. Десктоп тільки. */ silhouetteOverlay?: (number | null) | Media } pageHero?: { /** * Фото-фон під ліквід-гласс хедером на /lokatsii, /blog, /kvytky, /dni-narodzhennia, /grupovi-vidviduvannia. */ backgroundImage?: (number | null) | Media } sectionTitles?: { locations?: string | null whyParents?: string | null birthday?: string | null gallery?: string | null reviews?: string | null news?: string | null } whyParents?: { items?: | { title?: string | null description?: string | null id?: string | null }[] | null sideGallery?: | { image?: (number | null) | Media id?: string | null }[] | null } gallery?: { /** * Завантажте 9 фото для слайдера Фотогалерея — порядок і alt керуйте тут. */ images?: | { image?: (number | null) | Media alt?: string | null id?: string | null }[] | null } video?: { poster?: (number | null) | Media src?: string | null } birthdayIntro?: { text?: string | null } news?: { title?: string | null /** * Підзаголовок секції новин на головній. */ subtitle?: string | null limit?: number | null } map?: { /** * Google Maps iframe src. */ embedUrl?: string | null address?: string | null lat?: number | null lng?: number | null } meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } _status?: ('draft' | 'published') | null updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "checkout-page". */ export interface CheckoutPage { id: number title?: string | null /** * Інструкція для покупця на сторінці оплати */ instructions?: { root: { type: string children: { type: any version: number [k: string]: unknown }[] direction: ('ltr' | 'rtl') | null format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '' indent: number version: number } [k: string]: unknown } | null /** * Умови та правила (показуються перед кнопкою оплати) */ terms?: { root: { type: string children: { type: any version: number [k: string]: unknown }[] direction: ('ltr' | 'rtl') | null format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '' indent: number version: number } [k: string]: unknown } | null meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "thank-you-page". */ export interface ThankYouPage { id: number title?: string | null /** * Текст подяки після успішної оплати */ message?: { root: { type: string children: { type: any version: number [k: string]: unknown }[] direction: ('ltr' | 'rtl') | null format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '' indent: number version: number } [k: string]: unknown } | null /** * Телефон для зв'язку (показується на сторінці подяки) */ contactPhone?: string | null /** * Email для зв'язку (показується на сторінці подяки) */ contactEmail?: string | null meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "header". */ export interface Header { id: number logo?: (number | null) | Media logoAlt?: string | null ctaLabel?: string | null ctaHref?: string | null navLinks?: | { label?: string | null href?: string | null openInNewTab?: boolean | null autoChildrenFrom?: ('none' | 'locations') | null children?: | { label?: string | null href?: string | null id?: string | null }[] | null id?: string | null }[] | null updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "footer". */ export interface Footer { id: number logo?: (number | null) | Media logoAlt?: string | null navLinks?: | { label?: string | null href?: string | null id?: string | null }[] | null contacts?: { phone?: string | null email?: string | null address?: string | null } socials?: | { platform?: ('instagram' | 'facebook' | 'youtube' | 'tiktok') | null url?: string | null id?: string | null }[] | null copyrightText?: string | null updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "site-settings". */ export interface SiteSetting { id: number ga4Id?: string | null binotelId?: string | null telegramChatId?: string | null resendFrom?: string | null defaultMetaTitle?: string | null defaultMetaDescription?: string | null defaultOgImage?: (number | null) | Media /** * Відповідність ключа з ezy API → назва для відображення на сайті */ tariffCategoryLabels?: | { /** * Ключ з ezy API (напр. dyno, dyvolis, maze) */ key: string /** * Назва для відображення (напр. ДиноПарк) */ label: string id?: string | null }[] | null updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "dyvolis-page". */ export interface DyvolisPage { id: number heroTitle?: string | null heroDescription?: string | null /** * Число у круглому бейджі (наприклад "60+") */ heroStat?: string | null heroStatLabel?: string | null heroTips?: | { text: string id?: string | null }[] | null /** * Час роботи, наприклад "щодня з 11:00 до 20:00" */ workingHours?: string | null galleryQuote?: string | null /** * Якщо порожньо — відображаються 24 стандартні фото */ galleryImages?: | { image: number | Media id?: string | null }[] | null whyVisitTitle?: string | null whyVisitItems?: | { title: string description: string id?: string | null }[] | null /** * Якщо порожньо — використовуються 7 стандартних відео */ reviewVideos?: | { /** * URL відео, напр. /videos/dyvolis/video-01.mp4 */ src: string /** * URL постеру, напр. /videos/dyvolis/poster-01.jpg */ poster?: string | null /** * Підпис (опційно) */ label?: string | null id?: string | null }[] | null /** * Підзаголовок під секцією "Комбо" в блоці квитків */ comboDescription?: string | null meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "group-visits-page". */ export interface GroupVisitsPage { id: number heroTitle?: string | null heroSubtitle?: string | null heroDescription?: string | null heroCta?: string | null featureText?: string | null /** * Завантажте 2 фото — відображаються перекошено side by side */ featureImages?: | { image: number | Media id?: string | null }[] | null amenitiesTitle?: string | null amenities?: | { label: string /** * Фото для картки (опційно) */ image?: (number | null) | Media id?: string | null }[] | null workingHoursTitle?: string | null workingHours?: string | null priceTitle?: string | null priceBadge?: string | null price?: string | null priceLabel?: string | null priceNote?: string | null priceMinPeople?: string | null priceCta?: string | null priceDescription?: string | null bottomText?: string | null bottomImages?: | { image: number | Media id?: string | null }[] | null formTitle?: string | null formSubtitle?: string | null /** * CMS-форма для відображення на сторінці. Якщо не вказано — використовується вбудована форма. */ form?: (number | null) | Form meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } _status?: ('draft' | 'published') | null updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "birthday-page". */ export interface BirthdayPage { id: number heroTitle?: string | null heroSubtitle?: string | null heroCta?: string | null packageSectionTitle?: string | null packageSectionSubtitle?: string | null packageItems?: | { title: string description: string /** * Фото для картки */ image?: (number | null) | Media ctaLabel?: string | null /** * Посилання кнопки (опційно) */ ctaHref?: string | null id?: string | null }[] | null whyTitle?: string | null whyItems?: | { title: string description: string id?: string | null }[] | null whyVideos?: | { src: string poster?: string | null label?: string | null id?: string | null }[] | null workingHours?: string | null pricingSectionTitle?: string | null pricingPackages?: | { /** * Підпис над ціною */ label: string /** * Напр. "1 500 грн" */ price: string /** * Примітка під ціною */ note?: string | null ctaLabel?: string | null ctaHref?: string | null id?: string | null }[] | null entranceSectionTitle?: string | null entrancePrices?: | { label: string price: string note?: string | null ctaLabel?: string | null ctaHref?: string | null id?: string | null }[] | null freeInclusions?: string | null entertainmentSectionTitle?: string | null entertainmentPackages?: | { /** * Напр. "Тривалість 1 год" */ label: string price: string ctaLabel?: string | null ctaHref?: string | null id?: string | null }[] | null formTitle?: string | null formSubtitle?: string | null /** * CMS-форма для відображення на сторінці. Якщо не вказано — використовується вбудована форма. */ form?: (number | null) | Form meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } _status?: ('draft' | 'published') | null updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "tickets-page". */ export interface TicketsPage { id: number sectionTitleBirthday?: string | null sectionTitleGroups?: string | null heroTitle?: string | null heroSubtitle?: string | null heroImage?: (number | null) | Media workingHoursTitle?: string | null workingHoursText?: string | null comboSectionTitle?: string | null comboCards?: | { name: string subtitle?: string | null /** * Напр. «600 ₴» */ price: string description?: string | null featured?: boolean | null /** * Напр. «Найпопулярніший» */ badge?: string | null locations?: | { text: string id?: string | null }[] | null id?: string | null }[] | null catalogSectionTitle?: string | null catalogTabAll?: string | null catalogTabZone?: string | null catalogTabAttraction?: string | null catalogTabProgram?: string | null benefitsSectionTitle?: string | null freeEntryTitle?: string | null freeEntryBadge?: string | null freeEntryItems?: | { text: string id?: string | null }[] | null discountsTitle?: string | null discountsBadge?: string | null discountsItems?: | { text: string id?: string | null }[] | null benefitsFootnote?: string | null meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } _status?: ('draft' | 'published') | null updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "locations-page". */ export interface LocationsPage { id: number heroTitle?: string | null heroSubtitle?: string | null meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } _status?: ('draft' | 'published') | null updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "blog-index-page". */ export interface BlogIndexPage { id: number heroTitle?: string | null heroSubtitle?: string | null meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } _status?: ('draft' | 'published') | null updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "dinosaur-page". */ export interface DinosaurPage { id: number heroTitle?: string | null heroDescription?: string | null /** * Число у круглому бейджі (наприклад "26") */ heroStat?: string | null heroStatLabel?: string | null /** * Головне зображення героя (T-Rex / динозавр) */ heroImage?: (number | null) | Media heroFeatures?: | { text: string id?: string | null }[] | null /** * 8 видів для інтерактивного колеса */ dinosaurs?: | { /** * Назва виду */ name: string /** * Наприклад: Крейдяний */ epoch?: string | null /** * Наприклад: 12 м */ length?: string | null /** * Наприклад: 7 т */ weight?: string | null /** * Велике зображення (центр колеса) */ image?: (number | null) | Media /** * Мініатюра для дуги колеса */ thumbnailImage?: (number | null) | Media id?: string | null }[] | null /** * Фото з динопарку */ galleryImages?: | { image: number | Media id?: string | null }[] | null activitiesTitle?: string | null activitiesDescription?: string | null activities?: | { name: string /** * Наприклад: 150 грн */ price?: string | null description?: string | null image?: (number | null) | Media href?: string | null id?: string | null }[] | null whyVisitTitle?: string | null whyVisitItems?: | { title: string description: string id?: string | null }[] | null /** * Якщо порожньо — секція приховується */ reviewVideos?: | { src: string poster?: string | null label?: string | null id?: string | null }[] | null /** * Час роботи */ workingHours?: string | null comboDescription?: string | null meta?: { title?: string | null description?: string | null /** * Maximum upload file size: 12MB. Recommended file size for images is <500KB. */ image?: (number | null) | Media } updatedAt?: string | null createdAt?: string | null } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "home-page_select". */ export interface HomePageSelect { hero?: | T | { title?: T subtitle?: T ctaLabel?: T ctaHref?: T backgroundVideo?: T backgroundImage?: T foregroundOverlay?: T silhouetteOverlay?: T } pageHero?: | T | { backgroundImage?: T } sectionTitles?: | T | { locations?: T whyParents?: T birthday?: T gallery?: T reviews?: T news?: T } whyParents?: | T | { items?: | T | { title?: T description?: T id?: T } sideGallery?: | T | { image?: T id?: T } } gallery?: | T | { images?: | T | { image?: T alt?: T id?: T } } video?: | T | { poster?: T src?: T } birthdayIntro?: | T | { text?: T } news?: | T | { title?: T subtitle?: T limit?: T } map?: | T | { embedUrl?: T address?: T lat?: T lng?: T } meta?: | T | { title?: T description?: T image?: T } _status?: T updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "checkout-page_select". */ export interface CheckoutPageSelect { title?: T instructions?: T terms?: T meta?: | T | { title?: T description?: T image?: T } updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "thank-you-page_select". */ export interface ThankYouPageSelect { title?: T message?: T contactPhone?: T contactEmail?: T meta?: | T | { title?: T description?: T image?: T } updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "header_select". */ export interface HeaderSelect { logo?: T logoAlt?: T ctaLabel?: T ctaHref?: T navLinks?: | T | { label?: T href?: T openInNewTab?: T autoChildrenFrom?: T children?: | T | { label?: T href?: T id?: T } id?: T } updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "footer_select". */ export interface FooterSelect { logo?: T logoAlt?: T navLinks?: | T | { label?: T href?: T id?: T } contacts?: | T | { phone?: T email?: T address?: T } socials?: | T | { platform?: T url?: T id?: T } copyrightText?: T updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "site-settings_select". */ export interface SiteSettingsSelect { ga4Id?: T binotelId?: T telegramChatId?: T resendFrom?: T defaultMetaTitle?: T defaultMetaDescription?: T defaultOgImage?: T tariffCategoryLabels?: | T | { key?: T label?: T id?: T } updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "dyvolis-page_select". */ export interface DyvolisPageSelect { heroTitle?: T heroDescription?: T heroStat?: T heroStatLabel?: T heroTips?: | T | { text?: T id?: T } workingHours?: T galleryQuote?: T galleryImages?: | T | { image?: T id?: T } whyVisitTitle?: T whyVisitItems?: | T | { title?: T description?: T id?: T } reviewVideos?: | T | { src?: T poster?: T label?: T id?: T } comboDescription?: T meta?: | T | { title?: T description?: T image?: T } updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "group-visits-page_select". */ export interface GroupVisitsPageSelect { heroTitle?: T heroSubtitle?: T heroDescription?: T heroCta?: T featureText?: T featureImages?: | T | { image?: T id?: T } amenitiesTitle?: T amenities?: | T | { label?: T image?: T id?: T } workingHoursTitle?: T workingHours?: T priceTitle?: T priceBadge?: T price?: T priceLabel?: T priceNote?: T priceMinPeople?: T priceCta?: T priceDescription?: T bottomText?: T bottomImages?: | T | { image?: T id?: T } formTitle?: T formSubtitle?: T form?: T meta?: | T | { title?: T description?: T image?: T } _status?: T updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "birthday-page_select". */ export interface BirthdayPageSelect { heroTitle?: T heroSubtitle?: T heroCta?: T packageSectionTitle?: T packageSectionSubtitle?: T packageItems?: | T | { title?: T description?: T image?: T ctaLabel?: T ctaHref?: T id?: T } whyTitle?: T whyItems?: | T | { title?: T description?: T id?: T } whyVideos?: | T | { src?: T poster?: T label?: T id?: T } workingHours?: T pricingSectionTitle?: T pricingPackages?: | T | { label?: T price?: T note?: T ctaLabel?: T ctaHref?: T id?: T } entranceSectionTitle?: T entrancePrices?: | T | { label?: T price?: T note?: T ctaLabel?: T ctaHref?: T id?: T } freeInclusions?: T entertainmentSectionTitle?: T entertainmentPackages?: | T | { label?: T price?: T ctaLabel?: T ctaHref?: T id?: T } formTitle?: T formSubtitle?: T form?: T meta?: | T | { title?: T description?: T image?: T } _status?: T updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "tickets-page_select". */ export interface TicketsPageSelect { sectionTitleBirthday?: T sectionTitleGroups?: T heroTitle?: T heroSubtitle?: T heroImage?: T workingHoursTitle?: T workingHoursText?: T comboSectionTitle?: T comboCards?: | T | { name?: T subtitle?: T price?: T description?: T featured?: T badge?: T locations?: | T | { text?: T id?: T } id?: T } catalogSectionTitle?: T catalogTabAll?: T catalogTabZone?: T catalogTabAttraction?: T catalogTabProgram?: T benefitsSectionTitle?: T freeEntryTitle?: T freeEntryBadge?: T freeEntryItems?: | T | { text?: T id?: T } discountsTitle?: T discountsBadge?: T discountsItems?: | T | { text?: T id?: T } benefitsFootnote?: T meta?: | T | { title?: T description?: T image?: T } _status?: T updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "locations-page_select". */ export interface LocationsPageSelect { heroTitle?: T heroSubtitle?: T meta?: | T | { title?: T description?: T image?: T } _status?: T updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "blog-index-page_select". */ export interface BlogIndexPageSelect { heroTitle?: T heroSubtitle?: T meta?: | T | { title?: T description?: T image?: T } _status?: T updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "dinosaur-page_select". */ export interface DinosaurPageSelect { heroTitle?: T heroDescription?: T heroStat?: T heroStatLabel?: T heroImage?: T heroFeatures?: | T | { text?: T id?: T } dinosaurs?: | T | { name?: T epoch?: T length?: T weight?: T image?: T thumbnailImage?: T id?: T } galleryImages?: | T | { image?: T id?: T } activitiesTitle?: T activitiesDescription?: T activities?: | T | { name?: T price?: T description?: T image?: T href?: T id?: T } whyVisitTitle?: T whyVisitItems?: | T | { title?: T description?: T id?: T } reviewVideos?: | T | { src?: T poster?: T label?: T id?: T } workingHours?: T comboDescription?: T meta?: | T | { title?: T description?: T image?: T } updatedAt?: T createdAt?: T globalType?: T } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "collections_widget". */ export interface CollectionsWidget { data?: { [k: string]: unknown } width: 'full' } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "auth". */ export interface Auth { [k: string]: unknown } declare module 'payload' { export interface GeneratedTypes extends Config {} }