- LegalPages global in Payload CMS (Юридичні сторінки section) - /privacy-policy, /terms-of-use, /oferta, /data-processing pages - Legal text pre-filled with contract data (ТОВ ТЕХНОСМАРТ УКРАЇНА, ЄДРПОУ 40166430, contacts from contract №20260422) - Footer: legal links row above copyright - All pages editable from CMS admin, fallback to hardcoded defaults Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3151 lines
70 KiB
TypeScript
3151 lines
70 KiB
TypeScript
/* 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<false> | UsersSelect<true>
|
||
media: MediaSelect<false> | MediaSelect<true>
|
||
pages: PagesSelect<false> | PagesSelect<true>
|
||
'blog-posts': BlogPostsSelect<false> | BlogPostsSelect<true>
|
||
categories: CategoriesSelect<false> | CategoriesSelect<true>
|
||
tags: TagsSelect<false> | TagsSelect<true>
|
||
tariffs: TariffsSelect<false> | TariffsSelect<true>
|
||
leads: LeadsSelect<false> | LeadsSelect<true>
|
||
orders: OrdersSelect<false> | OrdersSelect<true>
|
||
locations: LocationsSelect<false> | LocationsSelect<true>
|
||
reviews: ReviewsSelect<false> | ReviewsSelect<true>
|
||
'birthday-packages': BirthdayPackagesSelect<false> | BirthdayPackagesSelect<true>
|
||
redirects: RedirectsSelect<false> | RedirectsSelect<true>
|
||
forms: FormsSelect<false> | FormsSelect<true>
|
||
'form-submissions': FormSubmissionsSelect<false> | FormSubmissionsSelect<true>
|
||
'payload-kv': PayloadKvSelect<false> | PayloadKvSelect<true>
|
||
'payload-locked-documents':
|
||
| PayloadLockedDocumentsSelect<false>
|
||
| PayloadLockedDocumentsSelect<true>
|
||
'payload-preferences': PayloadPreferencesSelect<false> | PayloadPreferencesSelect<true>
|
||
'payload-migrations': PayloadMigrationsSelect<false> | PayloadMigrationsSelect<true>
|
||
}
|
||
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
|
||
'legal-pages': LegalPage
|
||
}
|
||
globalsSelect: {
|
||
'home-page': HomePageSelect<false> | HomePageSelect<true>
|
||
'checkout-page': CheckoutPageSelect<false> | CheckoutPageSelect<true>
|
||
'thank-you-page': ThankYouPageSelect<false> | ThankYouPageSelect<true>
|
||
header: HeaderSelect<false> | HeaderSelect<true>
|
||
footer: FooterSelect<false> | FooterSelect<true>
|
||
'site-settings': SiteSettingsSelect<false> | SiteSettingsSelect<true>
|
||
'dyvolis-page': DyvolisPageSelect<false> | DyvolisPageSelect<true>
|
||
'group-visits-page': GroupVisitsPageSelect<false> | GroupVisitsPageSelect<true>
|
||
'birthday-page': BirthdayPageSelect<false> | BirthdayPageSelect<true>
|
||
'tickets-page': TicketsPageSelect<false> | TicketsPageSelect<true>
|
||
'locations-page': LocationsPageSelect<false> | LocationsPageSelect<true>
|
||
'blog-index-page': BlogIndexPageSelect<false> | BlogIndexPageSelect<true>
|
||
'dinosaur-page': DinosaurPageSelect<false> | DinosaurPageSelect<true>
|
||
'legal-pages': LegalPagesSelect<false> | LegalPagesSelect<true>
|
||
}
|
||
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
|
||
sizes?: {
|
||
mobile?: {
|
||
url?: string | null
|
||
width?: number | null
|
||
height?: number | null
|
||
mimeType?: string | null
|
||
filesize?: number | null
|
||
filename?: string | null
|
||
}
|
||
tablet?: {
|
||
url?: string | null
|
||
width?: number | null
|
||
height?: number | null
|
||
mimeType?: string | null
|
||
filesize?: number | null
|
||
filename?: string | null
|
||
}
|
||
desktop?: {
|
||
url?: string | null
|
||
width?: number | null
|
||
height?: number | null
|
||
mimeType?: string | null
|
||
filesize?: number | null
|
||
filename?: string | 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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
alt?: T
|
||
updatedAt?: T
|
||
createdAt?: T
|
||
url?: T
|
||
thumbnailURL?: T
|
||
filename?: T
|
||
mimeType?: T
|
||
filesize?: T
|
||
width?: T
|
||
height?: T
|
||
focalX?: T
|
||
focalY?: T
|
||
sizes?:
|
||
| T
|
||
| {
|
||
mobile?:
|
||
| T
|
||
| {
|
||
url?: T
|
||
width?: T
|
||
height?: T
|
||
mimeType?: T
|
||
filesize?: T
|
||
filename?: T
|
||
}
|
||
tablet?:
|
||
| T
|
||
| {
|
||
url?: T
|
||
width?: T
|
||
height?: T
|
||
mimeType?: T
|
||
filesize?: T
|
||
filename?: T
|
||
}
|
||
desktop?:
|
||
| T
|
||
| {
|
||
url?: T
|
||
width?: T
|
||
height?: T
|
||
mimeType?: T
|
||
filesize?: T
|
||
filename?: T
|
||
}
|
||
}
|
||
}
|
||
/**
|
||
* This interface was referenced by `Config`'s JSON-Schema
|
||
* via the `definition` "pages_select".
|
||
*/
|
||
export interface PagesSelect<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
key?: T
|
||
data?: T
|
||
}
|
||
/**
|
||
* This interface was referenced by `Config`'s JSON-Schema
|
||
* via the `definition` "payload-locked-documents_select".
|
||
*/
|
||
export interface PayloadLockedDocumentsSelect<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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
|
||
/**
|
||
* Слайди головного банера. Якщо порожньо — використовується дефолтний контент.
|
||
*/
|
||
heroSlides?:
|
||
| {
|
||
/**
|
||
* Завантажте нове фото, або вкажіть шлях нижче.
|
||
*/
|
||
backgroundImage?: (number | null) | Media
|
||
/**
|
||
* Якщо не завантажено фото вище — вкажіть шлях до існуючого файлу, напр.: /images/figma/hero-slide-1.webp
|
||
*/
|
||
backgroundImageUrl?: string | null
|
||
type?: ('brand' | 'location') | null
|
||
title: string
|
||
subtitle?: string | null
|
||
ctaLabel?: string | null
|
||
ctaHref?: string | null
|
||
id?: string | null
|
||
}[]
|
||
| null
|
||
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
|
||
}
|
||
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
|
||
heroImage?: (number | null) | Media
|
||
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
|
||
heroImage?: (number | null) | Media
|
||
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
|
||
}
|
||
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
|
||
heroImage?: (number | null) | Media
|
||
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
|
||
}
|
||
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
|
||
}
|
||
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
|
||
}
|
||
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
|
||
}
|
||
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` "legal-pages".
|
||
*/
|
||
export interface LegalPage {
|
||
id: number
|
||
privacy?: {
|
||
title?: string | null
|
||
content?: string | null
|
||
}
|
||
terms?: {
|
||
title?: string | null
|
||
content?: string | null
|
||
}
|
||
offer?: {
|
||
title?: string | null
|
||
content?: string | null
|
||
}
|
||
dataProcessing?: {
|
||
title?: string | null
|
||
content?: string | null
|
||
}
|
||
updatedAt?: string | null
|
||
createdAt?: string | null
|
||
}
|
||
/**
|
||
* This interface was referenced by `Config`'s JSON-Schema
|
||
* via the `definition` "home-page_select".
|
||
*/
|
||
export interface HomePageSelect<T extends boolean = true> {
|
||
heroSlides?:
|
||
| T
|
||
| {
|
||
backgroundImage?: T
|
||
backgroundImageUrl?: T
|
||
type?: T
|
||
title?: T
|
||
subtitle?: T
|
||
ctaLabel?: T
|
||
ctaHref?: T
|
||
id?: T
|
||
}
|
||
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
|
||
}
|
||
updatedAt?: T
|
||
createdAt?: T
|
||
globalType?: T
|
||
}
|
||
/**
|
||
* This interface was referenced by `Config`'s JSON-Schema
|
||
* via the `definition` "checkout-page_select".
|
||
*/
|
||
export interface CheckoutPageSelect<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
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<T extends boolean = true> {
|
||
heroImage?: T
|
||
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<T extends boolean = true> {
|
||
heroImage?: T
|
||
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
|
||
}
|
||
updatedAt?: T
|
||
createdAt?: T
|
||
globalType?: T
|
||
}
|
||
/**
|
||
* This interface was referenced by `Config`'s JSON-Schema
|
||
* via the `definition` "birthday-page_select".
|
||
*/
|
||
export interface BirthdayPageSelect<T extends boolean = true> {
|
||
heroImage?: T
|
||
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
|
||
}
|
||
updatedAt?: T
|
||
createdAt?: T
|
||
globalType?: T
|
||
}
|
||
/**
|
||
* This interface was referenced by `Config`'s JSON-Schema
|
||
* via the `definition` "tickets-page_select".
|
||
*/
|
||
export interface TicketsPageSelect<T extends boolean = true> {
|
||
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
|
||
}
|
||
updatedAt?: T
|
||
createdAt?: T
|
||
globalType?: T
|
||
}
|
||
/**
|
||
* This interface was referenced by `Config`'s JSON-Schema
|
||
* via the `definition` "locations-page_select".
|
||
*/
|
||
export interface LocationsPageSelect<T extends boolean = true> {
|
||
heroTitle?: T
|
||
heroSubtitle?: 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` "blog-index-page_select".
|
||
*/
|
||
export interface BlogIndexPageSelect<T extends boolean = true> {
|
||
heroTitle?: T
|
||
heroSubtitle?: 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` "dinosaur-page_select".
|
||
*/
|
||
export interface DinosaurPageSelect<T extends boolean = true> {
|
||
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` "legal-pages_select".
|
||
*/
|
||
export interface LegalPagesSelect<T extends boolean = true> {
|
||
privacy?:
|
||
| T
|
||
| {
|
||
title?: T
|
||
content?: T
|
||
}
|
||
terms?:
|
||
| T
|
||
| {
|
||
title?: T
|
||
content?: T
|
||
}
|
||
offer?:
|
||
| T
|
||
| {
|
||
title?: T
|
||
content?: T
|
||
}
|
||
dataProcessing?:
|
||
| T
|
||
| {
|
||
title?: T
|
||
content?: 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 {}
|
||
}
|