- Next.js 16 App Router site with the ANOUMA design system - Payload CMS (PostgreSQL) for offers, events, posts and page content - WebRTC video-call system with custom signaling server - SMTP email reminders and booking-request notifications - Customer accounts, calendar-based availability, and booking workflow
1247 lines
30 KiB
TypeScript
1247 lines
30 KiB
TypeScript
/* tslint:disable */
|
|
/* eslint-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 =
|
|
| 'Pacific/Midway'
|
|
| 'Pacific/Niue'
|
|
| 'Pacific/Honolulu'
|
|
| 'Pacific/Rarotonga'
|
|
| 'America/Anchorage'
|
|
| 'Pacific/Gambier'
|
|
| 'America/Los_Angeles'
|
|
| 'America/Tijuana'
|
|
| 'America/Denver'
|
|
| 'America/Phoenix'
|
|
| 'America/Chicago'
|
|
| 'America/Guatemala'
|
|
| 'America/New_York'
|
|
| 'America/Bogota'
|
|
| 'America/Caracas'
|
|
| 'America/Santiago'
|
|
| 'America/Buenos_Aires'
|
|
| 'America/Sao_Paulo'
|
|
| 'Atlantic/South_Georgia'
|
|
| 'Atlantic/Azores'
|
|
| 'Atlantic/Cape_Verde'
|
|
| 'Europe/London'
|
|
| 'Europe/Berlin'
|
|
| 'Africa/Lagos'
|
|
| 'Europe/Athens'
|
|
| 'Africa/Cairo'
|
|
| 'Europe/Moscow'
|
|
| 'Asia/Riyadh'
|
|
| 'Asia/Dubai'
|
|
| 'Asia/Baku'
|
|
| 'Asia/Karachi'
|
|
| 'Asia/Tashkent'
|
|
| 'Asia/Calcutta'
|
|
| 'Asia/Dhaka'
|
|
| 'Asia/Almaty'
|
|
| 'Asia/Jakarta'
|
|
| 'Asia/Bangkok'
|
|
| 'Asia/Shanghai'
|
|
| 'Asia/Singapore'
|
|
| 'Asia/Tokyo'
|
|
| 'Asia/Seoul'
|
|
| 'Australia/Brisbane'
|
|
| 'Australia/Sydney'
|
|
| 'Pacific/Guam'
|
|
| 'Pacific/Noumea'
|
|
| 'Pacific/Auckland'
|
|
| 'Pacific/Fiji';
|
|
|
|
export interface Config {
|
|
auth: {
|
|
users: UserAuthOperations;
|
|
customers: CustomerAuthOperations;
|
|
};
|
|
blocks: {};
|
|
collections: {
|
|
users: User;
|
|
customers: Customer;
|
|
media: Media;
|
|
events: Event;
|
|
posts: Post;
|
|
offers: Offer;
|
|
'event-registrations': EventRegistration;
|
|
availability: Availability;
|
|
'availability-overrides': AvailabilityOverride;
|
|
'booking-requests': BookingRequest;
|
|
'payload-kv': PayloadKv;
|
|
'payload-locked-documents': PayloadLockedDocument;
|
|
'payload-preferences': PayloadPreference;
|
|
'payload-migrations': PayloadMigration;
|
|
};
|
|
collectionsJoins: {};
|
|
collectionsSelect: {
|
|
users: UsersSelect<false> | UsersSelect<true>;
|
|
customers: CustomersSelect<false> | CustomersSelect<true>;
|
|
media: MediaSelect<false> | MediaSelect<true>;
|
|
events: EventsSelect<false> | EventsSelect<true>;
|
|
posts: PostsSelect<false> | PostsSelect<true>;
|
|
offers: OffersSelect<false> | OffersSelect<true>;
|
|
'event-registrations': EventRegistrationsSelect<false> | EventRegistrationsSelect<true>;
|
|
availability: AvailabilitySelect<false> | AvailabilitySelect<true>;
|
|
'availability-overrides': AvailabilityOverridesSelect<false> | AvailabilityOverridesSelect<true>;
|
|
'booking-requests': BookingRequestsSelect<false> | BookingRequestsSelect<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: Home;
|
|
about: About;
|
|
'angebote-intro': AngeboteIntro;
|
|
'aktuelles-intro': AktuellesIntro;
|
|
contact: Contact;
|
|
booking: Booking;
|
|
'meeting-settings': MeetingSetting;
|
|
'booking-settings': BookingSetting;
|
|
};
|
|
globalsSelect: {
|
|
home: HomeSelect<false> | HomeSelect<true>;
|
|
about: AboutSelect<false> | AboutSelect<true>;
|
|
'angebote-intro': AngeboteIntroSelect<false> | AngeboteIntroSelect<true>;
|
|
'aktuelles-intro': AktuellesIntroSelect<false> | AktuellesIntroSelect<true>;
|
|
contact: ContactSelect<false> | ContactSelect<true>;
|
|
booking: BookingSelect<false> | BookingSelect<true>;
|
|
'meeting-settings': MeetingSettingsSelect<false> | MeetingSettingsSelect<true>;
|
|
'booking-settings': BookingSettingsSelect<false> | BookingSettingsSelect<true>;
|
|
};
|
|
locale: null;
|
|
widgets: {
|
|
collections: CollectionsWidget;
|
|
};
|
|
user: User | Customer;
|
|
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;
|
|
};
|
|
}
|
|
export interface CustomerAuthOperations {
|
|
forgotPassword: {
|
|
email: string;
|
|
password: string;
|
|
};
|
|
login: {
|
|
email: string;
|
|
password: string;
|
|
};
|
|
registerFirstUser: {
|
|
email: string;
|
|
password: string;
|
|
};
|
|
unlock: {
|
|
email: string;
|
|
password: string;
|
|
};
|
|
}
|
|
/**
|
|
* Zugänge für den geschützten Admin-Bereich.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "users".
|
|
*/
|
|
export interface User {
|
|
id: number;
|
|
name: string;
|
|
role: 'admin';
|
|
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';
|
|
}
|
|
/**
|
|
* Konten der Website-Besucher:innen (nicht die Admin-Zugänge unter „Benutzer:innen“).
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "customers".
|
|
*/
|
|
export interface Customer {
|
|
id: number;
|
|
name: string;
|
|
/**
|
|
* Optional — für eine spätere Nutzung vorbereitet, aktuell nicht verpflichtend.
|
|
*/
|
|
phone?: string | null;
|
|
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: 'customers';
|
|
}
|
|
/**
|
|
* Bilder für die Website — Alt-Text ist für Barrierefreiheit und SEO Pflicht.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "media".
|
|
*/
|
|
export interface Media {
|
|
id: number;
|
|
/**
|
|
* Kurze Beschreibung des Bildes für Screenreader und Suchmaschinen.
|
|
*/
|
|
alt: string;
|
|
/**
|
|
* Optionale, längere Beschreibung (z. B. für eine Bildunterschrift).
|
|
*/
|
|
caption?: string | null;
|
|
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?: {
|
|
thumbnail?: {
|
|
url?: string | null;
|
|
width?: number | null;
|
|
height?: number | null;
|
|
mimeType?: string | null;
|
|
filesize?: number | null;
|
|
filename?: string | null;
|
|
};
|
|
card?: {
|
|
url?: string | null;
|
|
width?: number | null;
|
|
height?: number | null;
|
|
mimeType?: string | null;
|
|
filesize?: number | null;
|
|
filename?: string | null;
|
|
};
|
|
hero?: {
|
|
url?: string | null;
|
|
width?: number | null;
|
|
height?: number | null;
|
|
mimeType?: string | null;
|
|
filesize?: number | null;
|
|
filename?: string | null;
|
|
};
|
|
};
|
|
}
|
|
/**
|
|
* Termine und Veranstaltungen — erscheinen automatisch unter /termine.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "events".
|
|
*/
|
|
export interface Event {
|
|
id: number;
|
|
title: string;
|
|
/**
|
|
* Wird automatisch aus dem Titel erzeugt, kann aber angepasst werden.
|
|
*/
|
|
slug?: 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;
|
|
date: string;
|
|
startTime?: string | null;
|
|
endTime?: string | null;
|
|
location?: string | null;
|
|
category:
|
|
| 'prozessbegleitung'
|
|
| 'doula'
|
|
| 'erdenkinder'
|
|
| 'maedchenkreis'
|
|
| 'singen-im-kreis'
|
|
| 'singen-fuer-schwangere'
|
|
| 'singen-fuer-mamas-mit-baby'
|
|
| 'sonstiges';
|
|
image?: (number | null) | Media;
|
|
maxParticipants?: number | null;
|
|
registrationRequired?: boolean | null;
|
|
/**
|
|
* z. B. eine E-Mail-Adresse, ein Link oder ein Hinweistext.
|
|
*/
|
|
registrationInfo?: string | null;
|
|
/**
|
|
* Aktiviert Meeting-Passwort, Beitrittsseite und Erinnerungs-E-Mails.
|
|
*/
|
|
isOnline?: boolean | null;
|
|
/**
|
|
* Wird automatisch erzeugt. Ist nicht Teil des Meeting-Links.
|
|
*/
|
|
meetingPassword?: string | null;
|
|
regeneratePassword?: boolean | null;
|
|
reminder60Enabled?: boolean | null;
|
|
reminder30Enabled?: boolean | null;
|
|
hostReminderEnabled?: boolean | null;
|
|
hostReminder60Sent?: boolean | null;
|
|
hostReminder30Sent?: boolean | null;
|
|
/**
|
|
* Wird automatisch gesetzt, wenn dieser Termin aus einer bestätigten Einzelbuchung entstanden ist. Solche Termine bleiben unveröffentlicht.
|
|
*/
|
|
isPrivateBooking?: boolean | null;
|
|
bookingRequest?: (number | null) | BookingRequest;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
_status?: ('draft' | 'published') | null;
|
|
}
|
|
/**
|
|
* Terminanfragen von Nutzer:innen — bestätigen, ablehnen oder einen alternativen Termin vorschlagen, indem du die Felder unten änderst und speicherst.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "booking-requests".
|
|
*/
|
|
export interface BookingRequest {
|
|
id: number;
|
|
user: number | Customer;
|
|
offer: number | Offer;
|
|
date: string;
|
|
startTime: string;
|
|
endTime: string;
|
|
appointmentType: 'onsite' | 'online';
|
|
/**
|
|
* Auf „Bestätigt“ setzen und speichern, um den Termin verbindlich zu machen (Konfliktprüfung läuft automatisch).
|
|
*/
|
|
status: 'pending' | 'confirmed' | 'rejected' | 'cancelled';
|
|
userMessage?: string | null;
|
|
/**
|
|
* Nur für Anna sichtbar.
|
|
*/
|
|
internalNote?: string | null;
|
|
proposedAlternative?: {
|
|
date?: string | null;
|
|
startTime?: string | null;
|
|
endTime?: string | null;
|
|
};
|
|
linkedEvent?: (number | null) | Event;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
}
|
|
/**
|
|
* Die Angebote von Anouma — erscheinen im Menü und auf /angebote.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "offers".
|
|
*/
|
|
export interface Offer {
|
|
id: number;
|
|
title: string;
|
|
/**
|
|
* Wird automatisch aus dem Titel erzeugt, kann aber angepasst werden.
|
|
*/
|
|
slug?: string | null;
|
|
/**
|
|
* Kurzer Satz für Karten, Menü und Übersicht.
|
|
*/
|
|
shortDescription: string;
|
|
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;
|
|
};
|
|
image?: (number | null) | Media;
|
|
category: 'prozessbegleitung' | 'doula-begleitung' | 'kindergruppen' | 'singkreise';
|
|
/**
|
|
* Kleinere Zahl erscheint zuerst.
|
|
*/
|
|
order?: number | null;
|
|
/**
|
|
* Private Angebote wie „Einzelbegleitung“ erscheinen nicht im Menü oder auf /angebote.
|
|
*/
|
|
visibility: 'public' | 'private';
|
|
/**
|
|
* Aktiviert die Terminbuchung mit Kalenderauswahl auf der Angebotsseite.
|
|
*/
|
|
bookable?: boolean | null;
|
|
/**
|
|
* z. B. „80 €“ oder „auf Anfrage“.
|
|
*/
|
|
price?: string | null;
|
|
durationMinutes?: number | null;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
_status?: ('draft' | 'published') | null;
|
|
}
|
|
/**
|
|
* Neuigkeiten und Beiträge für die Seite „Aktuelles“.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "posts".
|
|
*/
|
|
export interface Post {
|
|
id: number;
|
|
title: string;
|
|
/**
|
|
* Wird automatisch aus dem Titel erzeugt, kann aber angepasst werden.
|
|
*/
|
|
slug?: string | null;
|
|
/**
|
|
* Kurzer Anrisstext für die Übersicht.
|
|
*/
|
|
teaser: string;
|
|
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;
|
|
};
|
|
coverImage?: (number | null) | Media;
|
|
publishDate?: string | null;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
_status?: ('draft' | 'published') | null;
|
|
}
|
|
/**
|
|
* Anmeldungen zu Terminen — wird beim öffentlichen Anmeldeformular befüllt.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "event-registrations".
|
|
*/
|
|
export interface EventRegistration {
|
|
id: number;
|
|
event: number | Event;
|
|
name: string;
|
|
email: string;
|
|
status: 'registered' | 'cancelled' | 'attended';
|
|
registeredAt?: string | null;
|
|
reminder60Sent?: boolean | null;
|
|
reminder30Sent?: boolean | null;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
}
|
|
/**
|
|
* Wiederkehrende wöchentliche Arbeitszeiten für Buchungsanfragen. Kein Eintrag = an diesem Tag nicht verfügbar.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "availability".
|
|
*/
|
|
export interface Availability {
|
|
id: number;
|
|
weekday: 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';
|
|
startTime: string;
|
|
endTime: string;
|
|
/**
|
|
* Deaktivieren statt löschen, um eine Zeitspanne vorübergehend auszusetzen.
|
|
*/
|
|
active?: boolean | null;
|
|
updatedAt: string;
|
|
createdAt: string;
|
|
}
|
|
/**
|
|
* Einzelne Abweichungen von den wiederkehrenden Verfügbarkeiten — Urlaub, Feiertage, Krankheit oder Sonderöffnungszeiten.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "availability-overrides".
|
|
*/
|
|
export interface AvailabilityOverride {
|
|
id: number;
|
|
date: string;
|
|
type: 'unavailable' | 'custom-hours';
|
|
startTime?: string | null;
|
|
endTime?: string | null;
|
|
reason?: ('urlaub' | 'feiertag' | 'krankheit' | 'sonderoeffnungszeit' | 'sonstiges') | 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: 'customers';
|
|
value: number | Customer;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'media';
|
|
value: number | Media;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'events';
|
|
value: number | Event;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'posts';
|
|
value: number | Post;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'offers';
|
|
value: number | Offer;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'event-registrations';
|
|
value: number | EventRegistration;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'availability';
|
|
value: number | Availability;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'availability-overrides';
|
|
value: number | AvailabilityOverride;
|
|
} | null)
|
|
| ({
|
|
relationTo: 'booking-requests';
|
|
value: number | BookingRequest;
|
|
} | null);
|
|
globalSlug?: string | null;
|
|
user:
|
|
| {
|
|
relationTo: 'users';
|
|
value: number | User;
|
|
}
|
|
| {
|
|
relationTo: 'customers';
|
|
value: number | Customer;
|
|
};
|
|
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;
|
|
}
|
|
| {
|
|
relationTo: 'customers';
|
|
value: number | Customer;
|
|
};
|
|
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` "customers_select".
|
|
*/
|
|
export interface CustomersSelect<T extends boolean = true> {
|
|
name?: T;
|
|
phone?: 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;
|
|
caption?: 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
|
|
| {
|
|
thumbnail?:
|
|
| T
|
|
| {
|
|
url?: T;
|
|
width?: T;
|
|
height?: T;
|
|
mimeType?: T;
|
|
filesize?: T;
|
|
filename?: T;
|
|
};
|
|
card?:
|
|
| T
|
|
| {
|
|
url?: T;
|
|
width?: T;
|
|
height?: T;
|
|
mimeType?: T;
|
|
filesize?: T;
|
|
filename?: T;
|
|
};
|
|
hero?:
|
|
| 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` "events_select".
|
|
*/
|
|
export interface EventsSelect<T extends boolean = true> {
|
|
title?: T;
|
|
slug?: T;
|
|
description?: T;
|
|
date?: T;
|
|
startTime?: T;
|
|
endTime?: T;
|
|
location?: T;
|
|
category?: T;
|
|
image?: T;
|
|
maxParticipants?: T;
|
|
registrationRequired?: T;
|
|
registrationInfo?: T;
|
|
isOnline?: T;
|
|
meetingPassword?: T;
|
|
regeneratePassword?: T;
|
|
reminder60Enabled?: T;
|
|
reminder30Enabled?: T;
|
|
hostReminderEnabled?: T;
|
|
hostReminder60Sent?: T;
|
|
hostReminder30Sent?: T;
|
|
isPrivateBooking?: T;
|
|
bookingRequest?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
_status?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "posts_select".
|
|
*/
|
|
export interface PostsSelect<T extends boolean = true> {
|
|
title?: T;
|
|
slug?: T;
|
|
teaser?: T;
|
|
content?: T;
|
|
coverImage?: T;
|
|
publishDate?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
_status?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "offers_select".
|
|
*/
|
|
export interface OffersSelect<T extends boolean = true> {
|
|
title?: T;
|
|
slug?: T;
|
|
shortDescription?: T;
|
|
description?: T;
|
|
image?: T;
|
|
category?: T;
|
|
order?: T;
|
|
visibility?: T;
|
|
bookable?: T;
|
|
price?: T;
|
|
durationMinutes?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
_status?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "event-registrations_select".
|
|
*/
|
|
export interface EventRegistrationsSelect<T extends boolean = true> {
|
|
event?: T;
|
|
name?: T;
|
|
email?: T;
|
|
status?: T;
|
|
registeredAt?: T;
|
|
reminder60Sent?: T;
|
|
reminder30Sent?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "availability_select".
|
|
*/
|
|
export interface AvailabilitySelect<T extends boolean = true> {
|
|
weekday?: T;
|
|
startTime?: T;
|
|
endTime?: T;
|
|
active?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "availability-overrides_select".
|
|
*/
|
|
export interface AvailabilityOverridesSelect<T extends boolean = true> {
|
|
date?: T;
|
|
type?: T;
|
|
startTime?: T;
|
|
endTime?: T;
|
|
reason?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "booking-requests_select".
|
|
*/
|
|
export interface BookingRequestsSelect<T extends boolean = true> {
|
|
user?: T;
|
|
offer?: T;
|
|
date?: T;
|
|
startTime?: T;
|
|
endTime?: T;
|
|
appointmentType?: T;
|
|
status?: T;
|
|
userMessage?: T;
|
|
internalNote?: T;
|
|
proposedAlternative?:
|
|
| T
|
|
| {
|
|
date?: T;
|
|
startTime?: T;
|
|
endTime?: T;
|
|
};
|
|
linkedEvent?: 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;
|
|
}
|
|
/**
|
|
* Bearbeitbare Texte der Startseite (Hero, Über-mich-Teaser, Philosophie, CTA).
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "home".
|
|
*/
|
|
export interface Home {
|
|
id: number;
|
|
heroEyebrow?: string | null;
|
|
heroTitle: string;
|
|
heroHighlight?: string | null;
|
|
heroSupporting?: string | null;
|
|
heroImage?: (number | null) | Media;
|
|
aboutEyebrow?: string | null;
|
|
aboutTitle?: string | null;
|
|
aboutText?: {
|
|
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;
|
|
aboutImage?: (number | null) | Media;
|
|
valuesEyebrow?: string | null;
|
|
valuesTitle?: string | null;
|
|
values?:
|
|
| {
|
|
title: string;
|
|
quote: string;
|
|
id?: string | null;
|
|
}[]
|
|
| null;
|
|
ctaTitle?: string | null;
|
|
ctaLead?: string | null;
|
|
updatedAt?: string | null;
|
|
createdAt?: string | null;
|
|
}
|
|
/**
|
|
* Inhalt der Seite „Über mich“.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "about".
|
|
*/
|
|
export interface About {
|
|
id: number;
|
|
eyebrow?: string | null;
|
|
title: string;
|
|
portrait?: (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;
|
|
};
|
|
closingLead?: string | null;
|
|
closingHighlight?: string | null;
|
|
closingParagraph?: string | null;
|
|
updatedAt?: string | null;
|
|
createdAt?: string | null;
|
|
}
|
|
/**
|
|
* Kopftext der Angebote-Übersichtsseite. Die Angebote selbst werden in der Sammlung „Angebote“ gepflegt.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "angebote-intro".
|
|
*/
|
|
export interface AngeboteIntro {
|
|
id: number;
|
|
eyebrow?: string | null;
|
|
title: string;
|
|
lead?: string | null;
|
|
updatedAt?: string | null;
|
|
createdAt?: string | null;
|
|
}
|
|
/**
|
|
* Kopftext der Aktuelles-Seite. Die Beiträge selbst werden in der Sammlung „Beiträge“ gepflegt.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "aktuelles-intro".
|
|
*/
|
|
export interface AktuellesIntro {
|
|
id: number;
|
|
eyebrow?: string | null;
|
|
title: string;
|
|
lead?: string | null;
|
|
updatedAt?: string | null;
|
|
createdAt?: string | null;
|
|
}
|
|
/**
|
|
* Inhalt und Kontaktdaten der Kontakt-Seite.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "contact".
|
|
*/
|
|
export interface Contact {
|
|
id: number;
|
|
eyebrow?: string | null;
|
|
title: string;
|
|
lead?: string | null;
|
|
email: string;
|
|
phone?: string | null;
|
|
region?: string | null;
|
|
updatedAt?: string | null;
|
|
createdAt?: string | null;
|
|
}
|
|
/**
|
|
* Inhalt der Seite „Termin buchen“.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "booking".
|
|
*/
|
|
export interface Booking {
|
|
id: number;
|
|
eyebrow?: string | null;
|
|
title: string;
|
|
lead?: string | null;
|
|
steps?:
|
|
| {
|
|
title: string;
|
|
text: string;
|
|
id?: string | null;
|
|
}[]
|
|
| null;
|
|
formNote?: string | null;
|
|
updatedAt?: string | null;
|
|
createdAt?: string | null;
|
|
}
|
|
/**
|
|
* Zentrale Zeitfenster für alle Online-Termine.
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "meeting-settings".
|
|
*/
|
|
export interface MeetingSetting {
|
|
id: number;
|
|
participantJoinWindowMinutes: number;
|
|
hostJoinWindowMinutes: number;
|
|
meetingCloseAfterMinutes: number;
|
|
updatedAt?: string | null;
|
|
createdAt?: string | null;
|
|
}
|
|
/**
|
|
* Adresse für Vor-Ort-Termine (wird für den Maps-Link verwendet).
|
|
*
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "booking-settings".
|
|
*/
|
|
export interface BookingSetting {
|
|
id: number;
|
|
locationName?: string | null;
|
|
street?: string | null;
|
|
postalCode?: string | null;
|
|
city?: string | null;
|
|
updatedAt?: string | null;
|
|
createdAt?: string | null;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "home_select".
|
|
*/
|
|
export interface HomeSelect<T extends boolean = true> {
|
|
heroEyebrow?: T;
|
|
heroTitle?: T;
|
|
heroHighlight?: T;
|
|
heroSupporting?: T;
|
|
heroImage?: T;
|
|
aboutEyebrow?: T;
|
|
aboutTitle?: T;
|
|
aboutText?: T;
|
|
aboutImage?: T;
|
|
valuesEyebrow?: T;
|
|
valuesTitle?: T;
|
|
values?:
|
|
| T
|
|
| {
|
|
title?: T;
|
|
quote?: T;
|
|
id?: T;
|
|
};
|
|
ctaTitle?: T;
|
|
ctaLead?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
globalType?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "about_select".
|
|
*/
|
|
export interface AboutSelect<T extends boolean = true> {
|
|
eyebrow?: T;
|
|
title?: T;
|
|
portrait?: T;
|
|
body?: T;
|
|
closingLead?: T;
|
|
closingHighlight?: T;
|
|
closingParagraph?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
globalType?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "angebote-intro_select".
|
|
*/
|
|
export interface AngeboteIntroSelect<T extends boolean = true> {
|
|
eyebrow?: T;
|
|
title?: T;
|
|
lead?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
globalType?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "aktuelles-intro_select".
|
|
*/
|
|
export interface AktuellesIntroSelect<T extends boolean = true> {
|
|
eyebrow?: T;
|
|
title?: T;
|
|
lead?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
globalType?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "contact_select".
|
|
*/
|
|
export interface ContactSelect<T extends boolean = true> {
|
|
eyebrow?: T;
|
|
title?: T;
|
|
lead?: T;
|
|
email?: T;
|
|
phone?: T;
|
|
region?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
globalType?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "booking_select".
|
|
*/
|
|
export interface BookingSelect<T extends boolean = true> {
|
|
eyebrow?: T;
|
|
title?: T;
|
|
lead?: T;
|
|
steps?:
|
|
| T
|
|
| {
|
|
title?: T;
|
|
text?: T;
|
|
id?: T;
|
|
};
|
|
formNote?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
globalType?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "meeting-settings_select".
|
|
*/
|
|
export interface MeetingSettingsSelect<T extends boolean = true> {
|
|
participantJoinWindowMinutes?: T;
|
|
hostJoinWindowMinutes?: T;
|
|
meetingCloseAfterMinutes?: T;
|
|
updatedAt?: T;
|
|
createdAt?: T;
|
|
globalType?: T;
|
|
}
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema
|
|
* via the `definition` "booking-settings_select".
|
|
*/
|
|
export interface BookingSettingsSelect<T extends boolean = true> {
|
|
locationName?: T;
|
|
street?: T;
|
|
postalCode?: T;
|
|
city?: 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 {}
|
|
} |