Shumiland/src/payload-types.ts
Vadym Samoilenko 1defcc13b0
Some checks are pending
CI / Type Check (push) Waiting to run
CI / Lint (push) Waiting to run
CI / Unit Tests (push) Waiting to run
Deploy / Build & Push Image (push) Waiting to run
Deploy / Deploy to VPS (push) Blocked by required conditions
fix(build): commit payload-types.ts and untrack from gitignore
payload-types.ts was gitignored so Docker builder had no file to compile
against — caused TS2307 "Cannot find module @/payload-types" in production
build. Regenerated types from current schema and removed from .gitignore
so it is always available in the build context.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 18:39:01 +01:00

2139 lines
48 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* 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
'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>
'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
}
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>
}
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
}
/**
* This interface was referenced by `Config`'s JSON-Schema
* via the `definition` "tariffs".
*/
export interface Tariff {
id: number
/**
* Встановлюється автоматично при синхронізації з ezy API
*/
ezy_id: number
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: 'dyno' | 'dyvolis' | 'maze' | 'combo' | 'family'
sort?: number | null
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` "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)
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
}
/**
* 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
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` "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
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
formTitle?: string | null
formSubtitle?: string | null
groups?:
| {
/**
* Emoji іконка
*/
icon: string
title: string
description: string
/**
* Напр. "15 осіб"
*/
minPeople: string
/**
* Напр. "15%"
*/
discount: string
id?: string | null
}[]
| 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` "birthday-page".
*/
export interface BirthdayPage {
id: number
heroTitle?: string | null
heroSubtitle?: string | null
formTitle?: string | null
formSubtitle?: 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` "tickets-page".
*/
export interface TicketsPage {
id: number
heroTitle?: string | null
heroSubtitle?: string | null
sectionTitleBirthday?: string | null
sectionTitleGroups?: 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` "home-page_select".
*/
export interface HomePageSelect<T extends boolean = true> {
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<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> {
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> {
heroTitle?: T
heroSubtitle?: T
formTitle?: T
formSubtitle?: T
groups?:
| T
| {
icon?: T
title?: T
description?: T
minPeople?: T
discount?: T
id?: 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<T extends boolean = true> {
heroTitle?: T
heroSubtitle?: T
formTitle?: T
formSubtitle?: 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<T extends boolean = true> {
heroTitle?: T
heroSubtitle?: T
sectionTitleBirthday?: T
sectionTitleGroups?: 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<T extends boolean = true> {
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<T extends boolean = true> {
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` "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 {}
}