/* 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; }; blocks: {}; collections: { users: User; media: Media; tenants: Tenant; pages: Page; posts: Post; categories: Category; 'social-links': SocialLink; testimonials: Testimonial; 'newsletter-subscribers': NewsletterSubscriber; 'portfolio-categories': PortfolioCategory; portfolios: Portfolio; 'cookie-configurations': CookieConfiguration; 'cookie-inventory': CookieInventory; 'consent-logs': ConsentLog; 'privacy-policy-settings': PrivacyPolicySetting; 'email-logs': EmailLog; forms: Form; 'form-submissions': FormSubmission; redirects: Redirect; 'payload-kv': PayloadKv; 'payload-locked-documents': PayloadLockedDocument; 'payload-preferences': PayloadPreference; 'payload-migrations': PayloadMigration; }; collectionsJoins: {}; collectionsSelect: { users: UsersSelect | UsersSelect; media: MediaSelect | MediaSelect; tenants: TenantsSelect | TenantsSelect; pages: PagesSelect | PagesSelect; posts: PostsSelect | PostsSelect; categories: CategoriesSelect | CategoriesSelect; 'social-links': SocialLinksSelect | SocialLinksSelect; testimonials: TestimonialsSelect | TestimonialsSelect; 'newsletter-subscribers': NewsletterSubscribersSelect | NewsletterSubscribersSelect; 'portfolio-categories': PortfolioCategoriesSelect | PortfolioCategoriesSelect; portfolios: PortfoliosSelect | PortfoliosSelect; 'cookie-configurations': CookieConfigurationsSelect | CookieConfigurationsSelect; 'cookie-inventory': CookieInventorySelect | CookieInventorySelect; 'consent-logs': ConsentLogsSelect | ConsentLogsSelect; 'privacy-policy-settings': PrivacyPolicySettingsSelect | PrivacyPolicySettingsSelect; 'email-logs': EmailLogsSelect | EmailLogsSelect; forms: FormsSelect | FormsSelect; 'form-submissions': FormSubmissionsSelect | FormSubmissionsSelect; redirects: RedirectsSelect | RedirectsSelect; 'payload-kv': PayloadKvSelect | PayloadKvSelect; 'payload-locked-documents': PayloadLockedDocumentsSelect | PayloadLockedDocumentsSelect; 'payload-preferences': PayloadPreferencesSelect | PayloadPreferencesSelect; 'payload-migrations': PayloadMigrationsSelect | PayloadMigrationsSelect; }; db: { defaultIDType: number; }; fallbackLocale: ('false' | 'none' | 'null') | false | null | ('de' | 'en') | ('de' | 'en')[]; globals: { 'site-settings': SiteSetting; navigation: Navigation; 'seo-settings': SeoSetting; }; globalsSelect: { 'site-settings': SiteSettingsSelect | SiteSettingsSelect; navigation: NavigationSelect | NavigationSelect; 'seo-settings': SeoSettingsSelect | SeoSettingsSelect; }; locale: 'de' | 'en'; user: User & { collection: 'users'; }; 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; /** * Super Admins haben Zugriff auf alle Tenants und können neue Tenants erstellen. */ isSuperAdmin?: boolean | null; tenants?: | { tenant: number | Tenant; id?: string | null; }[] | 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; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "tenants". */ export interface Tenant { id: number; name: string; slug: string; domains?: | { domain: string; id?: string | null; }[] | null; /** * SMTP-Einstellungen für diesen Tenant. Leer = globale Einstellungen. */ email?: { fromAddress?: string | null; fromName?: string | null; replyTo?: string | null; useCustomSmtp?: boolean | null; smtp?: { host?: string | null; port?: number | null; secure?: boolean | null; user?: string | null; pass?: string | null; }; }; updatedAt: string; createdAt: string; } /** * Bilder und Dokumente mit automatischer Optimierung * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "media". */ export interface Media { id: number; tenant?: (number | null) | Tenant; /** * Beschreibung für Screenreader und SEO (Pflichtfeld) */ alt: string; /** * Optionale Bildunterschrift für Darstellung unter dem Bild */ caption?: string | null; /** * Fotograf, Agentur oder Quelle */ credit?: string | null; /** * Schlagwörter für die Suche und Filterung */ tags?: 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; }; small?: { url?: string | null; width?: number | null; height?: number | null; mimeType?: string | null; filesize?: number | null; filename?: string | null; }; medium?: { url?: string | null; width?: number | null; height?: number | null; mimeType?: string | null; filesize?: number | null; filename?: string | null; }; large?: { url?: string | null; width?: number | null; height?: number | null; mimeType?: string | null; filesize?: number | null; filename?: string | null; }; xlarge?: { url?: string | null; width?: number | null; height?: number | null; mimeType?: string | null; filesize?: number | null; filename?: string | null; }; '2k'?: { url?: string | null; width?: number | null; height?: number | null; mimeType?: string | null; filesize?: number | null; filename?: string | null; }; og?: { url?: string | null; width?: number | null; height?: number | null; mimeType?: string | null; filesize?: number | null; filename?: string | null; }; medium_avif?: { url?: string | null; width?: number | null; height?: number | null; mimeType?: string | null; filesize?: number | null; filename?: string | null; }; large_avif?: { url?: string | null; width?: number | null; height?: number | null; mimeType?: string | null; filesize?: number | null; filename?: string | null; }; xlarge_avif?: { 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; tenant?: (number | null) | Tenant; title: string; /** * URL-Pfad (z.B. "ueber-uns" / "about-us") */ slug: string; hero?: { image?: (number | null) | Media; headline?: string | null; subline?: string | null; }; layout?: | ( | { backgroundImage?: (number | null) | Media; headline: string; subline?: string | null; alignment?: ('left' | 'center' | 'right') | null; overlay?: boolean | null; cta?: { text?: string | null; link?: string | null; style?: ('primary' | 'secondary' | 'outline') | null; }; id?: string | null; blockName?: string | null; blockType: 'hero-block'; } | { 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; }; width?: ('narrow' | 'medium' | 'full') | null; id?: string | null; blockName?: string | null; blockType: 'text-block'; } | { image: number | Media; imagePosition?: ('left' | 'right') | null; headline?: string | null; 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; } | null; cta?: { text?: string | null; link?: string | null; }; id?: string | null; blockName?: string | null; blockType: 'image-text-block'; } | { headline?: string | null; cards?: | { image?: (number | null) | Media; title: string; description?: string | null; link?: string | null; linkText?: string | null; id?: string | null; }[] | null; columns?: ('2' | '3' | '4') | null; id?: string | null; blockName?: string | null; blockType: 'card-grid-block'; } | { quote: string; author?: string | null; role?: string | null; image?: (number | null) | Media; style?: ('simple' | 'highlighted' | 'with-image') | null; id?: string | null; blockName?: string | null; blockType: 'quote-block'; } | { headline: string; description?: string | null; buttons?: | { text: string; link: string; style?: ('primary' | 'secondary' | 'outline') | null; id?: string | null; }[] | null; backgroundColor?: ('dark' | 'light' | 'accent') | null; id?: string | null; blockName?: string | null; blockType: 'cta-block'; } | { headline?: string | null; description?: string | null; recipientEmail?: string | null; showPhone?: boolean | null; showAddress?: boolean | null; showSocials?: boolean | null; id?: string | null; blockName?: string | null; blockType: 'contact-form-block'; } | { title?: string | null; subtitle?: string | null; layout?: ('vertical' | 'alternating' | 'horizontal') | null; showConnector?: boolean | null; markerStyle?: ('dot' | 'number' | 'icon' | 'date') | null; items?: | { /** * z.B. "2024", "Januar 2024", "15.03.2024" */ year?: string | null; title: string; description?: string | null; /** * Emoji oder Icon-Name */ icon?: string | null; image?: (number | null) | Media; link?: { label?: string | null; href?: string | null; }; id?: string | null; }[] | null; backgroundColor?: ('white' | 'light' | 'dark') | null; id?: string | null; blockName?: string | null; blockType: 'timeline-block'; } | { style?: ('line' | 'space' | 'dots') | null; spacing?: ('small' | 'medium' | 'large') | null; id?: string | null; blockName?: string | null; blockType: 'divider-block'; } | { /** * YouTube oder Vimeo URL */ videoUrl: string; caption?: string | null; aspectRatio?: ('16:9' | '4:3' | '1:1') | null; id?: string | null; blockName?: string | null; blockType: 'video-block'; } | { title?: string | null; subtitle?: string | null; postType: 'blog' | 'news' | 'press' | 'announcement' | 'all'; layout?: ('grid' | 'list' | 'featured' | 'compact' | 'masonry') | null; columns?: ('2' | '3' | '4') | null; limit?: number | null; showFeaturedOnly?: boolean | null; /** * Leer = alle Kategorien */ filterByCategory?: (number | Category)[] | null; showExcerpt?: boolean | null; showDate?: boolean | null; showAuthor?: boolean | null; showCategory?: boolean | null; showPagination?: boolean | null; showReadMore?: boolean | null; readMoreLabel?: string | null; readMoreLink?: string | null; backgroundColor?: ('white' | 'light' | 'dark') | null; id?: string | null; blockName?: string | null; blockType: 'posts-list-block'; } | { title?: string | null; subtitle?: string | null; layout?: ('slider' | 'grid' | 'single' | 'masonry' | 'list') | null; columns?: ('2' | '3' | '4') | null; displayMode?: ('all' | 'selected') | null; selectedTestimonials?: (number | Testimonial)[] | null; limit?: number | null; showRating?: boolean | null; showImage?: boolean | null; showCompany?: boolean | null; showSource?: boolean | null; autoplay?: boolean | null; autoplaySpeed?: number | null; backgroundColor?: ('white' | 'light' | 'dark' | 'accent') | null; id?: string | null; blockName?: string | null; blockType: 'testimonials-block'; } | { title?: string | null; subtitle?: string | null; layout?: ('inline' | 'stacked' | 'with-image' | 'minimal' | 'card') | null; image?: (number | null) | Media; imagePosition?: ('left' | 'right') | null; collectName?: boolean | null; showInterests?: boolean | null; availableInterests?: ('general' | 'blog' | 'products' | 'offers' | 'events')[] | null; buttonText?: string | null; placeholderEmail?: string | null; successMessage?: string | null; errorMessage?: string | null; privacyText?: string | null; privacyLink?: string | null; /** * Wird gespeichert um zu tracken, wo die Anmeldung erfolgte */ source?: string | null; backgroundColor?: ('white' | 'light' | 'dark' | 'accent') | null; id?: string | null; blockName?: string | null; blockType: 'newsletter-block'; } | { title?: string | null; subtitle?: string | null; layout?: ('horizontal' | 'vertical' | 'alternating' | 'connected' | 'timeline') | null; showNumbers?: boolean | null; showIcons?: boolean | null; steps?: | { title: string; description?: string | null; /** * Emoji oder Icon-Name (z.B. "📞", "✓", "1") */ icon?: string | null; image?: (number | null) | Media; id?: string | null; }[] | null; cta?: { show?: boolean | null; label?: string | null; href?: string | null; variant?: ('default' | 'ghost' | 'light') | null; }; backgroundColor?: ('white' | 'light' | 'dark') | null; id?: string | null; blockName?: string | null; blockType: 'process-steps-block'; } )[] | null; seo?: { metaTitle?: string | null; metaDescription?: string | null; ogImage?: (number | null) | Media; }; status?: ('draft' | 'published') | null; publishedAt?: string | null; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "categories". */ export interface Category { id: number; tenant?: (number | null) | Tenant; name: string; slug: string; description?: string | null; updatedAt: string; createdAt: string; } /** * Kundenstimmen und Bewertungen * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "testimonials". */ export interface Testimonial { id: number; tenant?: (number | null) | Tenant; /** * Die Aussage des Kunden */ quote: string; author: string; /** * z.B. "Patient", "Geschäftsführer", "Marketing Manager" */ role?: string | null; company?: string | null; /** * Portrait-Foto (empfohlen: quadratisch, min. 200x200px) */ image?: (number | null) | Media; /** * Optional: Sterne-Bewertung */ rating?: number | null; /** * z.B. "Google Reviews", "Trustpilot", "Persönlich" */ source?: string | null; /** * URL zur Original-Bewertung (falls öffentlich) */ sourceUrl?: string | null; date?: string | null; /** * Inaktive Testimonials werden nicht angezeigt */ isActive?: boolean | null; /** * Niedrigere Zahlen werden zuerst angezeigt */ order?: number | null; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "posts". */ export interface Post { id: number; tenant?: (number | null) | Tenant; title: string; /** * URL-Pfad (z.B. "mein-beitrag" / "my-post") */ slug: string; /** * Art des Beitrags */ type: 'blog' | 'news' | 'press' | 'announcement'; /** * Auf Startseite/oben anzeigen */ isFeatured?: boolean | null; /** * Für Übersichten und SEO (max. 300 Zeichen). Wird automatisch aus Content generiert, falls leer. */ excerpt?: string | null; featuredImage?: (number | null) | Media; 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; }; categories?: (number | Category)[] | null; author?: string | null; status?: ('draft' | 'published' | 'archived') | null; publishedAt?: string | null; seo?: { metaTitle?: string | null; metaDescription?: string | null; ogImage?: (number | null) | Media; }; updatedAt: string; createdAt: string; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "social-links". */ export interface SocialLink { id: number; tenant?: (number | null) | Tenant; platform: 'facebook' | 'x' | 'instagram' | 'youtube' | 'linkedin' | 'xing'; url: string; isActive?: boolean | null; updatedAt: string; createdAt: string; } /** * Newsletter-Abonnenten (DSGVO-konform) * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "newsletter-subscribers". */ export interface NewsletterSubscriber { id: number; tenant?: (number | null) | Tenant; email: string; firstName?: string | null; lastName?: string | null; status: 'pending' | 'confirmed' | 'unsubscribed' | 'bounced'; interests?: ('general' | 'blog' | 'products' | 'offers' | 'events')[] | null; /** * z.B. "Footer", "Popup", "Blog-Artikel", "Kontakt-Seite" */ source?: string | null; subscribedAt?: string | null; confirmedAt?: string | null; unsubscribedAt?: string | null; confirmationToken?: string | null; /** * DSGVO-Nachweis der Anmeldung */ ipAddress?: string | null; userAgent?: string | null; updatedAt: string; createdAt: string; } /** * Kategorien für Portfolio-Galerien (z.B. Hochzeit, Portrait, Landschaft) * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "portfolio-categories". */ export interface PortfolioCategory { id: number; tenant?: (number | null) | Tenant; /** * z.B. "Hochzeitsfotografie", "Portraits", "Landschaften" */ name: string; /** * URL-freundlicher Name (z.B. "hochzeit", "portrait") */ slug: string; /** * Kurzbeschreibung der Kategorie für SEO und Übersichten */ description?: string | null; /** * Repräsentatives Bild für die Kategorieübersicht */ coverImage?: (number | null) | Media; /** * Niedrigere Zahlen erscheinen zuerst */ order?: number | null; /** * Inaktive Kategorien werden nicht angezeigt */ isActive?: boolean | null; updatedAt: string; createdAt: string; } /** * Portfolio-Galerien mit Fotografien * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "portfolios". */ export interface Portfolio { id: number; tenant?: (number | null) | Tenant; /** * Name der Galerie / des Projekts */ title: string; /** * URL-freundlicher Name (z.B. "hochzeit-maria-thomas") */ slug: string; /** * Ausführliche Beschreibung des Projekts/Shootings */ 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; /** * Kurze Beschreibung für Übersichten und SEO (max. 300 Zeichen) */ excerpt?: string | null; /** * Hauptkategorie dieser Galerie */ category: number | PortfolioCategory; /** * Zusätzliche Schlagwörter für Filterung (z.B. "outdoor", "studio", "schwarz-weiß") */ tags?: string[] | null; /** * Hauptbild für Übersichten und Vorschauen */ coverImage: number | Media; /** * Alle Bilder dieser Galerie */ images: { image: number | Media; /** * Optionale Beschreibung für dieses Bild */ caption?: string | null; /** * Als Highlight-Bild markieren */ isHighlight?: boolean | null; id?: string | null; }[]; /** * Zusätzliche Informationen zum Shooting */ projectDetails?: { /** * Name des Kunden (optional, für Referenzen) */ client?: string | null; /** * Wo wurde das Shooting durchgeführt? */ location?: string | null; shootingDate?: string | null; /** * Kamera, Objektive etc. (optional) */ equipment?: string[] | null; }; /** * Veröffentlichungsstatus */ status: 'draft' | 'published' | 'archived'; /** * Auf der Startseite anzeigen */ isFeatured?: boolean | null; /** * Wann soll die Galerie veröffentlicht werden? */ publishedAt?: string | null; /** * Für manuelle Sortierung (niedrigere Zahlen zuerst) */ order?: number | null; seo?: { /** * Überschreibt den Standardtitel für Suchmaschinen */ metaTitle?: string | null; /** * Beschreibung für Suchmaschinen (max. 160 Zeichen) */ metaDescription?: string | null; /** * Bild für Social Media Shares (verwendet Cover-Bild wenn leer) */ ogImage?: (number | null) | Media; }; updatedAt: string; createdAt: string; } /** * Cookie-Banner Konfiguration pro Tenant * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "cookie-configurations". */ export interface CookieConfiguration { id: number; /** * Jeder Tenant kann nur eine Konfiguration haben */ tenant: number | Tenant; /** * Interner Titel zur Identifikation */ title: string; /** * Bei inhaltlichen Änderungen erhöhen → erzwingt erneuten Consent bei allen Nutzern */ revision: number; /** * Welche Kategorien sollen im Banner angezeigt werden? */ enabledCategories: ('necessary' | 'functional' | 'analytics' | 'marketing')[]; translations?: { de?: { bannerTitle?: string | null; bannerDescription?: string | null; acceptAllButton?: string | null; acceptNecessaryButton?: string | null; settingsButton?: string | null; saveButton?: string | null; privacyPolicyUrl?: string | null; categoryLabels?: { necessary?: { title?: string | null; description?: string | null; }; functional?: { title?: string | null; description?: string | null; }; analytics?: { title?: string | null; description?: string | null; }; marketing?: { title?: string | null; description?: string | null; }; }; }; }; styling?: { position?: ('bottom' | 'top' | 'middle') | null; theme?: ('dark' | 'light' | 'auto') | null; }; updatedAt: string; createdAt: string; } /** * Cookie-Dokumentation für die Datenschutzerklärung * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "cookie-inventory". */ export interface CookieInventory { id: number; tenant: number | Tenant; /** * Technischer Name des Cookies (z.B. "_ga") */ name: string; /** * Anbieter (z.B. "Google LLC") */ provider: string; category: 'necessary' | 'functional' | 'analytics' | 'marketing'; /** * Speicherdauer (z.B. "2 Jahre") */ duration: string; /** * Verständliche Erklärung für Endnutzer */ description: string; isActive?: boolean | null; updatedAt: string; createdAt: string; } /** * WORM Audit-Trail für Cookie-Einwilligungen (unveränderbar) * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "consent-logs". */ export interface ConsentLog { id: number; /** * Server-generierte eindeutige ID */ consentId: string; /** * Client-seitige Referenz (Cookie-UUID) für Traceability */ clientRef?: string | null; tenant: number | Tenant; /** * Akzeptierte Kategorien zum Zeitpunkt der Einwilligung */ categories: | { [k: string]: unknown; } | unknown[] | string | number | boolean | null; /** * Version der Konfiguration zum Zeitpunkt der Zustimmung */ revision: number; /** * Browser/Device (für Forensik und Bot-Erkennung) */ userAgent?: string | null; /** * HMAC-Hash der IP (täglich rotierender, tenant-spezifischer Salt) */ anonymizedIp?: string | null; /** * Automatische Löschung nach 3 Jahren */ expiresAt: string; updatedAt: string; createdAt: string; } /** * Externe Datenschutzerklärung Konfiguration (Alfright) * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "privacy-policy-settings". */ export interface PrivacyPolicySetting { id: number; /** * Jeder Tenant kann nur eine Konfiguration haben */ tenant: number | Tenant; /** * Interner Titel zur Identifikation */ title: string; /** * Quelle der Datenschutzerklärung */ provider: 'alfright' | 'internal'; /** * Einstellungen für die Alfright Integration */ alfright?: { /** * Alfright Tenant-ID (aus dem iframe-Code) */ tenantId: string; /** * Alfright API-Key / Dokument-ID (aus dem iframe-Code, z.B. "9f315103c43245bcb0806dd56c2be757") */ apiKey: string; /** * Sprache der Datenschutzerklärung */ language: 'de-de' | 'de-at' | 'de-ch' | 'en-gb' | 'en-us'; /** * Höhe des iframes in Pixeln (empfohlen: 3000-5000) */ iframeHeight: number; }; /** * Farben und Schriften an das Website-Design anpassen */ styling?: { /** * Farbe der Überschriften (Hex-Code, z.B. #ca8a04 für Gold) */ headerColor: string; /** * Schriftart der Überschriften */ headerFont: string; /** * Schriftgröße der Hauptüberschriften */ headerSize: string; /** * Schriftgröße der Unterüberschriften */ subheaderSize: string; /** * Textfarbe (Hex-Code, z.B. #f3f4f6 für hellen Text) */ fontColor: string; /** * Schriftart für Fließtext */ textFont: string; /** * Schriftgröße für Fließtext */ textSize: string; /** * Linkfarbe (Hex-Code) */ linkColor: string; /** * Hintergrundfarbe (Hex-Code, z.B. #111827 für Dark Theme) */ backgroundColor: string; }; /** * Cookie-Tabelle aus CookieInventory unterhalb der Datenschutzerklärung anzeigen */ showCookieTable?: boolean | null; /** * Überschrift für die Cookie-Tabelle */ cookieTableTitle?: string | null; /** * Einleitungstext für die Cookie-Tabelle */ cookieTableDescription?: string | null; seo?: { /** * Meta-Titel für die Seite */ metaTitle?: string | null; /** * Meta-Beschreibung für Suchmaschinen */ metaDescription?: string | null; }; updatedAt: string; createdAt: string; } /** * Protokoll aller gesendeten E-Mails * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "email-logs". */ export interface EmailLog { id: number; tenant: number | Tenant; to: string; from: string; subject: string; status: 'pending' | 'sent' | 'failed'; /** * SMTP Message-ID bei erfolgreichem Versand */ messageId?: string | null; error?: string | null; source: 'manual' | 'form' | 'system' | 'newsletter'; /** * Zusätzliche Kontextinformationen (z.B. Form-ID) */ metadata?: | { [k: string]: unknown; } | unknown[] | string | number | boolean | null; 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'; } )[] | 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` "redirects". */ export interface Redirect { id: number; from: string; to?: { type?: ('reference' | 'custom') | null; reference?: { relationTo: 'pages'; value: number | Page; } | null; url?: string | 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: 'tenants'; value: number | Tenant; } | null) | ({ relationTo: 'pages'; value: number | Page; } | null) | ({ relationTo: 'posts'; value: number | Post; } | null) | ({ relationTo: 'categories'; value: number | Category; } | null) | ({ relationTo: 'social-links'; value: number | SocialLink; } | null) | ({ relationTo: 'testimonials'; value: number | Testimonial; } | null) | ({ relationTo: 'newsletter-subscribers'; value: number | NewsletterSubscriber; } | null) | ({ relationTo: 'portfolio-categories'; value: number | PortfolioCategory; } | null) | ({ relationTo: 'portfolios'; value: number | Portfolio; } | null) | ({ relationTo: 'cookie-configurations'; value: number | CookieConfiguration; } | null) | ({ relationTo: 'cookie-inventory'; value: number | CookieInventory; } | null) | ({ relationTo: 'consent-logs'; value: number | ConsentLog; } | null) | ({ relationTo: 'privacy-policy-settings'; value: number | PrivacyPolicySetting; } | null) | ({ relationTo: 'email-logs'; value: number | EmailLog; } | null) | ({ relationTo: 'forms'; value: number | Form; } | null) | ({ relationTo: 'form-submissions'; value: number | FormSubmission; } | 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 { isSuperAdmin?: T; tenants?: | T | { tenant?: T; id?: 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 { tenant?: T; alt?: T; caption?: T; credit?: T; tags?: 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; }; small?: | T | { url?: T; width?: T; height?: T; mimeType?: T; filesize?: T; filename?: T; }; medium?: | T | { url?: T; width?: T; height?: T; mimeType?: T; filesize?: T; filename?: T; }; large?: | T | { url?: T; width?: T; height?: T; mimeType?: T; filesize?: T; filename?: T; }; xlarge?: | T | { url?: T; width?: T; height?: T; mimeType?: T; filesize?: T; filename?: T; }; '2k'?: | T | { url?: T; width?: T; height?: T; mimeType?: T; filesize?: T; filename?: T; }; og?: | T | { url?: T; width?: T; height?: T; mimeType?: T; filesize?: T; filename?: T; }; medium_avif?: | T | { url?: T; width?: T; height?: T; mimeType?: T; filesize?: T; filename?: T; }; large_avif?: | T | { url?: T; width?: T; height?: T; mimeType?: T; filesize?: T; filename?: T; }; xlarge_avif?: | 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` "tenants_select". */ export interface TenantsSelect { name?: T; slug?: T; domains?: | T | { domain?: T; id?: T; }; email?: | T | { fromAddress?: T; fromName?: T; replyTo?: T; useCustomSmtp?: T; smtp?: | T | { host?: T; port?: T; secure?: T; user?: T; pass?: T; }; }; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "pages_select". */ export interface PagesSelect { tenant?: T; title?: T; slug?: T; hero?: | T | { image?: T; headline?: T; subline?: T; }; layout?: | T | { 'hero-block'?: | T | { backgroundImage?: T; headline?: T; subline?: T; alignment?: T; overlay?: T; cta?: | T | { text?: T; link?: T; style?: T; }; id?: T; blockName?: T; }; 'text-block'?: | T | { content?: T; width?: T; id?: T; blockName?: T; }; 'image-text-block'?: | T | { image?: T; imagePosition?: T; headline?: T; content?: T; cta?: | T | { text?: T; link?: T; }; id?: T; blockName?: T; }; 'card-grid-block'?: | T | { headline?: T; cards?: | T | { image?: T; title?: T; description?: T; link?: T; linkText?: T; id?: T; }; columns?: T; id?: T; blockName?: T; }; 'quote-block'?: | T | { quote?: T; author?: T; role?: T; image?: T; style?: T; id?: T; blockName?: T; }; 'cta-block'?: | T | { headline?: T; description?: T; buttons?: | T | { text?: T; link?: T; style?: T; id?: T; }; backgroundColor?: T; id?: T; blockName?: T; }; 'contact-form-block'?: | T | { headline?: T; description?: T; recipientEmail?: T; showPhone?: T; showAddress?: T; showSocials?: T; id?: T; blockName?: T; }; 'timeline-block'?: | T | { title?: T; subtitle?: T; layout?: T; showConnector?: T; markerStyle?: T; items?: | T | { year?: T; title?: T; description?: T; icon?: T; image?: T; link?: | T | { label?: T; href?: T; }; id?: T; }; backgroundColor?: T; id?: T; blockName?: T; }; 'divider-block'?: | T | { style?: T; spacing?: T; id?: T; blockName?: T; }; 'video-block'?: | T | { videoUrl?: T; caption?: T; aspectRatio?: T; id?: T; blockName?: T; }; 'posts-list-block'?: | T | { title?: T; subtitle?: T; postType?: T; layout?: T; columns?: T; limit?: T; showFeaturedOnly?: T; filterByCategory?: T; showExcerpt?: T; showDate?: T; showAuthor?: T; showCategory?: T; showPagination?: T; showReadMore?: T; readMoreLabel?: T; readMoreLink?: T; backgroundColor?: T; id?: T; blockName?: T; }; 'testimonials-block'?: | T | { title?: T; subtitle?: T; layout?: T; columns?: T; displayMode?: T; selectedTestimonials?: T; limit?: T; showRating?: T; showImage?: T; showCompany?: T; showSource?: T; autoplay?: T; autoplaySpeed?: T; backgroundColor?: T; id?: T; blockName?: T; }; 'newsletter-block'?: | T | { title?: T; subtitle?: T; layout?: T; image?: T; imagePosition?: T; collectName?: T; showInterests?: T; availableInterests?: T; buttonText?: T; placeholderEmail?: T; successMessage?: T; errorMessage?: T; privacyText?: T; privacyLink?: T; source?: T; backgroundColor?: T; id?: T; blockName?: T; }; 'process-steps-block'?: | T | { title?: T; subtitle?: T; layout?: T; showNumbers?: T; showIcons?: T; steps?: | T | { title?: T; description?: T; icon?: T; image?: T; id?: T; }; cta?: | T | { show?: T; label?: T; href?: T; variant?: T; }; backgroundColor?: T; id?: T; blockName?: T; }; }; seo?: | T | { metaTitle?: T; metaDescription?: T; ogImage?: T; }; status?: T; publishedAt?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "posts_select". */ export interface PostsSelect { tenant?: T; title?: T; slug?: T; type?: T; isFeatured?: T; excerpt?: T; featuredImage?: T; content?: T; categories?: T; author?: T; status?: T; publishedAt?: T; seo?: | T | { metaTitle?: T; metaDescription?: T; ogImage?: T; }; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "categories_select". */ export interface CategoriesSelect { tenant?: T; name?: T; slug?: T; description?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "social-links_select". */ export interface SocialLinksSelect { tenant?: T; platform?: T; url?: T; isActive?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "testimonials_select". */ export interface TestimonialsSelect { tenant?: T; quote?: T; author?: T; role?: T; company?: T; image?: T; rating?: T; source?: T; sourceUrl?: T; date?: T; isActive?: T; order?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "newsletter-subscribers_select". */ export interface NewsletterSubscribersSelect { tenant?: T; email?: T; firstName?: T; lastName?: T; status?: T; interests?: T; source?: T; subscribedAt?: T; confirmedAt?: T; unsubscribedAt?: T; confirmationToken?: T; ipAddress?: T; userAgent?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "portfolio-categories_select". */ export interface PortfolioCategoriesSelect { tenant?: T; name?: T; slug?: T; description?: T; coverImage?: T; order?: T; isActive?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "portfolios_select". */ export interface PortfoliosSelect { tenant?: T; title?: T; slug?: T; description?: T; excerpt?: T; category?: T; tags?: T; coverImage?: T; images?: | T | { image?: T; caption?: T; isHighlight?: T; id?: T; }; projectDetails?: | T | { client?: T; location?: T; shootingDate?: T; equipment?: T; }; status?: T; isFeatured?: T; publishedAt?: T; order?: T; seo?: | T | { metaTitle?: T; metaDescription?: T; ogImage?: T; }; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "cookie-configurations_select". */ export interface CookieConfigurationsSelect { tenant?: T; title?: T; revision?: T; enabledCategories?: T; translations?: | T | { de?: | T | { bannerTitle?: T; bannerDescription?: T; acceptAllButton?: T; acceptNecessaryButton?: T; settingsButton?: T; saveButton?: T; privacyPolicyUrl?: T; categoryLabels?: | T | { necessary?: | T | { title?: T; description?: T; }; functional?: | T | { title?: T; description?: T; }; analytics?: | T | { title?: T; description?: T; }; marketing?: | T | { title?: T; description?: T; }; }; }; }; styling?: | T | { position?: T; theme?: T; }; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "cookie-inventory_select". */ export interface CookieInventorySelect { tenant?: T; name?: T; provider?: T; category?: T; duration?: T; description?: T; isActive?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "consent-logs_select". */ export interface ConsentLogsSelect { consentId?: T; clientRef?: T; tenant?: T; categories?: T; revision?: T; userAgent?: T; anonymizedIp?: T; expiresAt?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "privacy-policy-settings_select". */ export interface PrivacyPolicySettingsSelect { tenant?: T; title?: T; provider?: T; alfright?: | T | { tenantId?: T; apiKey?: T; language?: T; iframeHeight?: T; }; styling?: | T | { headerColor?: T; headerFont?: T; headerSize?: T; subheaderSize?: T; fontColor?: T; textFont?: T; textSize?: T; linkColor?: T; backgroundColor?: T; }; showCookieTable?: T; cookieTableTitle?: T; cookieTableDescription?: T; seo?: | T | { metaTitle?: T; metaDescription?: T; }; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "email-logs_select". */ export interface EmailLogsSelect { tenant?: T; to?: T; from?: T; subject?: T; status?: T; messageId?: T; error?: T; source?: T; metadata?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "forms_select". */ export interface FormsSelect { title?: T; fields?: | T | { checkbox?: | T | { name?: T; label?: T; width?: T; required?: T; defaultValue?: T; id?: T; blockName?: T; }; email?: | T | { name?: T; label?: T; width?: T; required?: T; id?: T; blockName?: T; }; message?: | T | { message?: T; id?: T; blockName?: T; }; number?: | T | { name?: T; label?: T; width?: T; defaultValue?: T; required?: T; id?: T; blockName?: T; }; select?: | T | { name?: T; label?: T; width?: T; defaultValue?: T; placeholder?: T; options?: | T | { label?: T; value?: T; id?: T; }; required?: T; id?: T; blockName?: T; }; text?: | T | { name?: T; label?: T; width?: T; defaultValue?: T; required?: T; id?: T; blockName?: T; }; textarea?: | T | { name?: T; label?: T; width?: T; defaultValue?: T; required?: T; id?: T; blockName?: T; }; }; submitButtonLabel?: T; confirmationType?: T; confirmationMessage?: T; redirect?: | T | { type?: T; reference?: T; url?: T; }; emails?: | T | { emailTo?: T; cc?: T; bcc?: T; replyTo?: T; emailFrom?: T; subject?: T; message?: T; id?: T; }; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "form-submissions_select". */ export interface FormSubmissionsSelect { form?: T; submissionData?: | T | { field?: T; value?: T; id?: T; }; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "redirects_select". */ export interface RedirectsSelect { from?: T; to?: | T | { type?: T; reference?: T; url?: T; }; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-kv_select". */ export interface PayloadKvSelect { key?: T; data?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-locked-documents_select". */ export interface PayloadLockedDocumentsSelect { document?: T; globalSlug?: T; user?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-preferences_select". */ export interface PayloadPreferencesSelect { user?: T; key?: T; value?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "payload-migrations_select". */ export interface PayloadMigrationsSelect { name?: T; batch?: T; updatedAt?: T; createdAt?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "site-settings". */ export interface SiteSetting { id: number; siteName?: string | null; siteTagline?: string | null; logo?: (number | null) | Media; favicon?: (number | null) | Media; contact?: { email?: string | null; phone?: string | null; address?: string | null; }; footer?: { copyrightText?: string | null; showSocialLinks?: boolean | null; }; seo?: { defaultMetaTitle?: string | null; defaultMetaDescription?: string | null; defaultOgImage?: (number | null) | Media; }; updatedAt?: string | null; createdAt?: string | null; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "navigation". */ export interface Navigation { id: number; mainMenu?: | { label: string; type?: ('page' | 'custom' | 'submenu') | null; page?: (number | null) | Page; url?: string | null; openInNewTab?: boolean | null; submenu?: | { label: string; linkType?: ('page' | 'custom') | null; page?: (number | null) | Page; url?: string | null; id?: string | null; }[] | null; id?: string | null; }[] | null; footerMenu?: | { label: string; linkType?: ('page' | 'custom') | null; page?: (number | null) | Page; url?: string | null; id?: string | null; }[] | null; updatedAt?: string | null; createdAt?: string | null; } /** * Globale SEO-Konfiguration und Schema.org Daten * * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "seo-settings". */ export interface SeoSetting { id: number; metaDefaults?: { /** * Wird an jeden Seitentitel angehängt (z.B. "Startseite | Firmenname") */ titleSuffix?: string | null; /** * Wird verwendet, wenn keine spezifische Beschreibung gesetzt ist */ defaultDescription?: string | null; /** * Fallback-Bild für Social Media Shares (empfohlen: 1200x630px) */ defaultOgImage?: (number | null) | Media; /** * Globale Keywords (optional, geringe SEO-Relevanz) */ keywords?: string[] | null; }; /** * Daten für das Organization Schema */ organization: { name: string; /** * Vollständiger rechtlicher Firmenname (falls abweichend) */ legalName?: string | null; description?: string | null; /** * Firmenlogo für Schema.org (min. 112x112px, empfohlen: 512x512px) */ logo?: (number | null) | Media; foundingDate?: string | null; }; contact?: { email?: string | null; /** * Im Format +49 123 456789 */ phone?: string | null; fax?: string | null; }; address?: { street?: string | null; postalCode?: string | null; city?: string | null; region?: string | null; country?: string | null; /** * ISO 3166-1 Alpha-2 Code */ countryCode?: string | null; }; /** * Für Local Business Schema */ geo?: { latitude?: number | null; longitude?: number | null; }; /** * URLs zu Social Media Profilen (für sameAs Schema) */ socialProfiles?: | { platform?: | ('facebook' | 'instagram' | 'twitter' | 'linkedin' | 'youtube' | 'tiktok' | 'pinterest' | 'xing' | 'other') | null; url: string; id?: string | null; }[] | null; /** * Zusätzliche Daten für lokale Unternehmen */ localBusiness?: { enabled?: boolean | null; type?: | ( | 'LocalBusiness' | 'Physician' | 'Dentist' | 'Attorney' | 'Restaurant' | 'Hotel' | 'Store' | 'HealthClub' | 'HairSalon' | 'AutoRepair' | 'RealEstateAgent' | 'FinancialService' | 'ProfessionalService' | 'MedicalBusiness' ) | null; priceRange?: ('€' | '€€' | '€€€' | '€€€€') | null; /** * Im Format "Mo-Fr 09:00-17:00" */ openingHours?: | { specification?: string | null; id?: string | null; }[] | null; }; robots?: { /** * Wenn deaktiviert, wird die gesamte Website von Suchmaschinen ausgeschlossen */ allowIndexing?: boolean | null; /** * Pfade die nicht gecrawlt werden sollen (z.B. "/intern", "/preview") */ additionalDisallow?: string[] | null; }; /** * Codes für Suchmaschinen-Verifizierung */ verification?: { /** * Meta-Tag Content (nur der Code, nicht das gesamte Tag) */ google?: string | null; bing?: string | null; yandex?: string | null; }; updatedAt?: string | null; createdAt?: string | null; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "site-settings_select". */ export interface SiteSettingsSelect { siteName?: T; siteTagline?: T; logo?: T; favicon?: T; contact?: | T | { email?: T; phone?: T; address?: T; }; footer?: | T | { copyrightText?: T; showSocialLinks?: T; }; seo?: | T | { defaultMetaTitle?: T; defaultMetaDescription?: T; defaultOgImage?: T; }; updatedAt?: T; createdAt?: T; globalType?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "navigation_select". */ export interface NavigationSelect { mainMenu?: | T | { label?: T; type?: T; page?: T; url?: T; openInNewTab?: T; submenu?: | T | { label?: T; linkType?: T; page?: T; url?: T; id?: T; }; id?: T; }; footerMenu?: | T | { label?: T; linkType?: T; page?: T; url?: T; id?: T; }; updatedAt?: T; createdAt?: T; globalType?: T; } /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "seo-settings_select". */ export interface SeoSettingsSelect { metaDefaults?: | T | { titleSuffix?: T; defaultDescription?: T; defaultOgImage?: T; keywords?: T; }; organization?: | T | { name?: T; legalName?: T; description?: T; logo?: T; foundingDate?: T; }; contact?: | T | { email?: T; phone?: T; fax?: T; }; address?: | T | { street?: T; postalCode?: T; city?: T; region?: T; country?: T; countryCode?: T; }; geo?: | T | { latitude?: T; longitude?: T; }; socialProfiles?: | T | { platform?: T; url?: T; id?: T; }; localBusiness?: | T | { enabled?: T; type?: T; priceRange?: T; openingHours?: | T | { specification?: T; id?: T; }; }; robots?: | T | { allowIndexing?: T; additionalDisallow?: T; }; verification?: | T | { google?: T; bing?: T; yandex?: T; }; updatedAt?: T; createdAt?: T; globalType?: T; } /** * 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 {} }