From 063dae411c35f56d62cda218e578ec63cdfbf4a5 Mon Sep 17 00:00:00 2001 From: Martin Porwoll Date: Tue, 17 Feb 2026 10:41:51 +0000 Subject: [PATCH] security: harden payload endpoints and access controls --- .env.example | 16 +- backup.sql | 9855 ----------------- docs/anleitungen/SECURITY.md | 35 +- next.config.mjs | 8 - .../analytics/channel-comparison/route.ts | 16 +- .../api/community/analytics/overview/route.ts | 16 +- .../analytics/response-metrics/route.ts | 16 +- .../analytics/sentiment-trend/route.ts | 16 +- .../community/analytics/top-content/route.ts | 16 +- .../community/analytics/topic-cloud/route.ts | 16 +- .../(payload)/api/community/export/route.ts | 30 +- .../(payload)/api/community/stats/route.ts | 28 +- .../api/cron/community-sync/route.ts | 35 +- .../(payload)/api/cron/send-reports/route.ts | 35 +- .../(payload)/api/cron/token-refresh/route.ts | 35 +- .../api/cron/youtube-channel-sync/route.ts | 21 +- .../api/cron/youtube-metrics-sync/route.ts | 21 +- .../(payload)/api/cron/youtube-sync/route.ts | 23 +- .../api/newsletter/unsubscribe/route.ts | 22 +- src/app/(payload)/api/users/login/route.ts | 131 +- src/collections/Users.ts | 15 +- src/instrumentation.ts | 14 +- src/lib/communityAccess.ts | 59 +- src/lib/email/newsletter-service.ts | 59 +- src/lib/envValidation.ts | 5 + src/lib/pdf/pdf-service.ts | 116 + src/lib/search.ts | 8 +- src/lib/security/cron-auth.ts | 38 + src/lib/security/index.ts | 3 + src/lib/security/ip-allowlist.ts | 7 +- tests/int/search.int.spec.ts | 2 +- 31 files changed, 507 insertions(+), 10210 deletions(-) delete mode 100644 backup.sql create mode 100644 src/lib/security/cron-auth.ts diff --git a/.env.example b/.env.example index 00ff312..4e4a793 100644 --- a/.env.example +++ b/.env.example @@ -21,6 +21,11 @@ REDIS_URL=redis://localhost:6379 # Security CSRF_SECRET=your-csrf-secret TRUST_PROXY=true +BLOCKED_IPS= +SEND_EMAIL_ALLOWED_IPS= +GENERATE_PDF_ALLOWED_IPS= +ADMIN_ALLOWED_IPS= +WEBHOOK_ALLOWED_IPS= # YouTube OAuth (optional) GOOGLE_CLIENT_ID=your-client-id @@ -32,8 +37,17 @@ META_APP_ID=your-app-id META_APP_SECRET=your-app-secret META_REDIRECT_URI=http://localhost:3000/api/auth/meta/callback -# Cron Jobs (optional) +# Cron Jobs (required in production) CRON_SECRET=your-64-char-hex +# PDF Security +PDF_ALLOWED_HOSTS=example.com,.example.com +# Nur in non-production und nur falls zwingend notwendig aktivieren: +PDF_ALLOW_HTTP_URLS=false + +# Scheduler +# In Production standardmäßig deaktiviert, um Doppel-Ausführungen in Multi-Instance-Deployments zu vermeiden +ENABLE_IN_PROCESS_SCHEDULER=false + # Tests EMAIL_DELIVERY_DISABLED=false diff --git a/backup.sql b/backup.sql deleted file mode 100644 index 268906b..0000000 --- a/backup.sql +++ /dev/null @@ -1,9855 +0,0 @@ --- --- PostgreSQL database dump --- - -\restrict sqUvasorUpmIhntcC7ZKrLbpKfevosTybInjrOemGqmqYbFTO2pfO02bfYrztdl - --- Dumped from database version 17.6 (Debian 17.6-0+deb13u1) --- Dumped by pg_dump version 17.6 (Debian 17.6-0+deb13u1) - -SET statement_timeout = 0; -SET lock_timeout = 0; -SET idle_in_transaction_session_timeout = 0; -SET transaction_timeout = 0; -SET client_encoding = 'UTF8'; -SET standard_conforming_strings = on; -SELECT pg_catalog.set_config('search_path', '', false); -SET check_function_bodies = false; -SET xmloption = content; -SET client_min_messages = warning; -SET row_security = off; - --- --- Name: public; Type: SCHEMA; Schema: -; Owner: payload --- - --- *not* creating schema, since initdb creates it - - -ALTER SCHEMA public OWNER TO payload; - --- --- Name: SCHEMA public; Type: COMMENT; Schema: -; Owner: payload --- - -COMMENT ON SCHEMA public IS ''; - - --- --- Name: _locales; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public._locales AS ENUM ( - 'de', - 'en' -); - - -ALTER TYPE public._locales OWNER TO payload; - --- --- Name: enum_cookie_configurations_enabled_categories; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_cookie_configurations_enabled_categories AS ENUM ( - 'necessary', - 'functional', - 'analytics', - 'marketing' -); - - -ALTER TYPE public.enum_cookie_configurations_enabled_categories OWNER TO payload; - --- --- Name: enum_cookie_configurations_styling_position; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_cookie_configurations_styling_position AS ENUM ( - 'bottom', - 'top', - 'middle' -); - - -ALTER TYPE public.enum_cookie_configurations_styling_position OWNER TO payload; - --- --- Name: enum_cookie_configurations_styling_theme; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_cookie_configurations_styling_theme AS ENUM ( - 'dark', - 'light', - 'auto' -); - - -ALTER TYPE public.enum_cookie_configurations_styling_theme OWNER TO payload; - --- --- Name: enum_cookie_inventory_category; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_cookie_inventory_category AS ENUM ( - 'necessary', - 'functional', - 'analytics', - 'marketing' -); - - -ALTER TYPE public.enum_cookie_inventory_category OWNER TO payload; - --- --- Name: enum_forms_confirmation_type; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_forms_confirmation_type AS ENUM ( - 'message', - 'redirect' -); - - -ALTER TYPE public.enum_forms_confirmation_type OWNER TO payload; - --- --- Name: enum_forms_redirect_type; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_forms_redirect_type AS ENUM ( - 'reference', - 'custom' -); - - -ALTER TYPE public.enum_forms_redirect_type OWNER TO payload; - --- --- Name: enum_navigation_footer_menu_link_type; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_navigation_footer_menu_link_type AS ENUM ( - 'page', - 'custom' -); - - -ALTER TYPE public.enum_navigation_footer_menu_link_type OWNER TO payload; - --- --- Name: enum_navigation_main_menu_submenu_link_type; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_navigation_main_menu_submenu_link_type AS ENUM ( - 'page', - 'custom' -); - - -ALTER TYPE public.enum_navigation_main_menu_submenu_link_type OWNER TO payload; - --- --- Name: enum_navigation_main_menu_type; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_navigation_main_menu_type AS ENUM ( - 'page', - 'custom', - 'submenu' -); - - -ALTER TYPE public.enum_navigation_main_menu_type OWNER TO payload; - --- --- Name: enum_newsletter_subscribers_interests; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_newsletter_subscribers_interests AS ENUM ( - 'general', - 'blog', - 'products', - 'offers', - 'events' -); - - -ALTER TYPE public.enum_newsletter_subscribers_interests OWNER TO payload; - --- --- Name: enum_newsletter_subscribers_status; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_newsletter_subscribers_status AS ENUM ( - 'pending', - 'confirmed', - 'unsubscribed', - 'bounced' -); - - -ALTER TYPE public.enum_newsletter_subscribers_status OWNER TO payload; - --- --- Name: enum_pages_blocks_card_grid_block_columns; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_card_grid_block_columns AS ENUM ( - '2', - '3', - '4' -); - - -ALTER TYPE public.enum_pages_blocks_card_grid_block_columns OWNER TO payload; - --- --- Name: enum_pages_blocks_cta_block_background_color; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_cta_block_background_color AS ENUM ( - 'dark', - 'light', - 'accent' -); - - -ALTER TYPE public.enum_pages_blocks_cta_block_background_color OWNER TO payload; - --- --- Name: enum_pages_blocks_cta_block_buttons_style; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_cta_block_buttons_style AS ENUM ( - 'primary', - 'secondary', - 'outline' -); - - -ALTER TYPE public.enum_pages_blocks_cta_block_buttons_style OWNER TO payload; - --- --- Name: enum_pages_blocks_divider_block_spacing; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_divider_block_spacing AS ENUM ( - 'small', - 'medium', - 'large' -); - - -ALTER TYPE public.enum_pages_blocks_divider_block_spacing OWNER TO payload; - --- --- Name: enum_pages_blocks_divider_block_style; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_divider_block_style AS ENUM ( - 'line', - 'space', - 'dots' -); - - -ALTER TYPE public.enum_pages_blocks_divider_block_style OWNER TO payload; - --- --- Name: enum_pages_blocks_hero_block_alignment; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_hero_block_alignment AS ENUM ( - 'left', - 'center', - 'right' -); - - -ALTER TYPE public.enum_pages_blocks_hero_block_alignment OWNER TO payload; - --- --- Name: enum_pages_blocks_hero_block_cta_style; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_hero_block_cta_style AS ENUM ( - 'primary', - 'secondary', - 'outline' -); - - -ALTER TYPE public.enum_pages_blocks_hero_block_cta_style OWNER TO payload; - --- --- Name: enum_pages_blocks_image_text_block_image_position; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_image_text_block_image_position AS ENUM ( - 'left', - 'right' -); - - -ALTER TYPE public.enum_pages_blocks_image_text_block_image_position OWNER TO payload; - --- --- Name: enum_pages_blocks_newsletter_block_available_interests; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_newsletter_block_available_interests AS ENUM ( - 'general', - 'blog', - 'products', - 'offers', - 'events' -); - - -ALTER TYPE public.enum_pages_blocks_newsletter_block_available_interests OWNER TO payload; - --- --- Name: enum_pages_blocks_newsletter_block_background_color; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_newsletter_block_background_color AS ENUM ( - 'white', - 'light', - 'dark', - 'accent' -); - - -ALTER TYPE public.enum_pages_blocks_newsletter_block_background_color OWNER TO payload; - --- --- Name: enum_pages_blocks_newsletter_block_image_position; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_newsletter_block_image_position AS ENUM ( - 'left', - 'right' -); - - -ALTER TYPE public.enum_pages_blocks_newsletter_block_image_position OWNER TO payload; - --- --- Name: enum_pages_blocks_newsletter_block_layout; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_newsletter_block_layout AS ENUM ( - 'inline', - 'stacked', - 'with-image', - 'minimal', - 'card' -); - - -ALTER TYPE public.enum_pages_blocks_newsletter_block_layout OWNER TO payload; - --- --- Name: enum_pages_blocks_posts_list_block_background_color; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_posts_list_block_background_color AS ENUM ( - 'white', - 'light', - 'dark' -); - - -ALTER TYPE public.enum_pages_blocks_posts_list_block_background_color OWNER TO payload; - --- --- Name: enum_pages_blocks_posts_list_block_columns; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_posts_list_block_columns AS ENUM ( - '2', - '3', - '4' -); - - -ALTER TYPE public.enum_pages_blocks_posts_list_block_columns OWNER TO payload; - --- --- Name: enum_pages_blocks_posts_list_block_layout; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_posts_list_block_layout AS ENUM ( - 'grid', - 'list', - 'featured', - 'compact', - 'masonry' -); - - -ALTER TYPE public.enum_pages_blocks_posts_list_block_layout OWNER TO payload; - --- --- Name: enum_pages_blocks_posts_list_block_post_type; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_posts_list_block_post_type AS ENUM ( - 'blog', - 'news', - 'press', - 'announcement', - 'all' -); - - -ALTER TYPE public.enum_pages_blocks_posts_list_block_post_type OWNER TO payload; - --- --- Name: enum_pages_blocks_process_steps_block_background_color; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_process_steps_block_background_color AS ENUM ( - 'white', - 'light', - 'dark' -); - - -ALTER TYPE public.enum_pages_blocks_process_steps_block_background_color OWNER TO payload; - --- --- Name: enum_pages_blocks_process_steps_block_cta_variant; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_process_steps_block_cta_variant AS ENUM ( - 'default', - 'ghost', - 'light' -); - - -ALTER TYPE public.enum_pages_blocks_process_steps_block_cta_variant OWNER TO payload; - --- --- Name: enum_pages_blocks_process_steps_block_layout; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_process_steps_block_layout AS ENUM ( - 'horizontal', - 'vertical', - 'alternating', - 'connected', - 'timeline' -); - - -ALTER TYPE public.enum_pages_blocks_process_steps_block_layout OWNER TO payload; - --- --- Name: enum_pages_blocks_quote_block_style; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_quote_block_style AS ENUM ( - 'simple', - 'highlighted', - 'with-image' -); - - -ALTER TYPE public.enum_pages_blocks_quote_block_style OWNER TO payload; - --- --- Name: enum_pages_blocks_testimonials_block_background_color; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_testimonials_block_background_color AS ENUM ( - 'white', - 'light', - 'dark', - 'accent' -); - - -ALTER TYPE public.enum_pages_blocks_testimonials_block_background_color OWNER TO payload; - --- --- Name: enum_pages_blocks_testimonials_block_columns; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_testimonials_block_columns AS ENUM ( - '2', - '3', - '4' -); - - -ALTER TYPE public.enum_pages_blocks_testimonials_block_columns OWNER TO payload; - --- --- Name: enum_pages_blocks_testimonials_block_display_mode; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_testimonials_block_display_mode AS ENUM ( - 'all', - 'selected' -); - - -ALTER TYPE public.enum_pages_blocks_testimonials_block_display_mode OWNER TO payload; - --- --- Name: enum_pages_blocks_testimonials_block_layout; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_testimonials_block_layout AS ENUM ( - 'slider', - 'grid', - 'single', - 'masonry', - 'list' -); - - -ALTER TYPE public.enum_pages_blocks_testimonials_block_layout OWNER TO payload; - --- --- Name: enum_pages_blocks_text_block_width; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_text_block_width AS ENUM ( - 'narrow', - 'medium', - 'full' -); - - -ALTER TYPE public.enum_pages_blocks_text_block_width OWNER TO payload; - --- --- Name: enum_pages_blocks_timeline_block_background_color; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_timeline_block_background_color AS ENUM ( - 'white', - 'light', - 'dark' -); - - -ALTER TYPE public.enum_pages_blocks_timeline_block_background_color OWNER TO payload; - --- --- Name: enum_pages_blocks_timeline_block_layout; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_timeline_block_layout AS ENUM ( - 'vertical', - 'alternating', - 'horizontal' -); - - -ALTER TYPE public.enum_pages_blocks_timeline_block_layout OWNER TO payload; - --- --- Name: enum_pages_blocks_timeline_block_marker_style; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_timeline_block_marker_style AS ENUM ( - 'dot', - 'number', - 'icon', - 'date' -); - - -ALTER TYPE public.enum_pages_blocks_timeline_block_marker_style OWNER TO payload; - --- --- Name: enum_pages_blocks_video_block_aspect_ratio; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_blocks_video_block_aspect_ratio AS ENUM ( - '16:9', - '4:3', - '1:1' -); - - -ALTER TYPE public.enum_pages_blocks_video_block_aspect_ratio OWNER TO payload; - --- --- Name: enum_pages_status; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_pages_status AS ENUM ( - 'draft', - 'published' -); - - -ALTER TYPE public.enum_pages_status OWNER TO payload; - --- --- Name: enum_posts_status; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_posts_status AS ENUM ( - 'draft', - 'published', - 'archived' -); - - -ALTER TYPE public.enum_posts_status OWNER TO payload; - --- --- Name: enum_posts_type; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_posts_type AS ENUM ( - 'blog', - 'news', - 'press', - 'announcement' -); - - -ALTER TYPE public.enum_posts_type OWNER TO payload; - --- --- Name: enum_privacy_policy_settings_alfright_language; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_privacy_policy_settings_alfright_language AS ENUM ( - 'de-de', - 'de-at', - 'de-ch', - 'en-gb', - 'en-us' -); - - -ALTER TYPE public.enum_privacy_policy_settings_alfright_language OWNER TO payload; - --- --- Name: enum_privacy_policy_settings_provider; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_privacy_policy_settings_provider AS ENUM ( - 'alfright', - 'internal' -); - - -ALTER TYPE public.enum_privacy_policy_settings_provider OWNER TO payload; - --- --- Name: enum_redirects_to_type; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_redirects_to_type AS ENUM ( - 'reference', - 'custom' -); - - -ALTER TYPE public.enum_redirects_to_type OWNER TO payload; - --- --- Name: enum_seo_settings_local_business_price_range; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_seo_settings_local_business_price_range AS ENUM ( - '€', - '€€', - '€€€', - '€€€€' -); - - -ALTER TYPE public.enum_seo_settings_local_business_price_range OWNER TO payload; - --- --- Name: enum_seo_settings_local_business_type; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_seo_settings_local_business_type AS ENUM ( - 'LocalBusiness', - 'Physician', - 'Dentist', - 'Attorney', - 'Restaurant', - 'Hotel', - 'Store', - 'HealthClub', - 'HairSalon', - 'AutoRepair', - 'RealEstateAgent', - 'FinancialService', - 'ProfessionalService', - 'MedicalBusiness' -); - - -ALTER TYPE public.enum_seo_settings_local_business_type OWNER TO payload; - --- --- Name: enum_seo_settings_social_profiles_platform; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_seo_settings_social_profiles_platform AS ENUM ( - 'facebook', - 'instagram', - 'twitter', - 'linkedin', - 'youtube', - 'tiktok', - 'pinterest', - 'xing', - 'other' -); - - -ALTER TYPE public.enum_seo_settings_social_profiles_platform OWNER TO payload; - --- --- Name: enum_social_links_platform; Type: TYPE; Schema: public; Owner: payload --- - -CREATE TYPE public.enum_social_links_platform AS ENUM ( - 'facebook', - 'x', - 'instagram', - 'youtube', - 'linkedin', - 'xing' -); - - -ALTER TYPE public.enum_social_links_platform OWNER TO payload; - -SET default_tablespace = ''; - -SET default_table_access_method = heap; - --- --- Name: categories; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.categories ( - id integer NOT NULL, - tenant_id integer, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.categories OWNER TO payload; - --- --- Name: categories_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.categories_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.categories_id_seq OWNER TO payload; - --- --- Name: categories_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.categories_id_seq OWNED BY public.categories.id; - - --- --- Name: categories_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.categories_locales ( - name character varying NOT NULL, - slug character varying NOT NULL, - description character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id integer NOT NULL -); - - -ALTER TABLE public.categories_locales OWNER TO payload; - --- --- Name: categories_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.categories_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.categories_locales_id_seq OWNER TO payload; - --- --- Name: categories_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.categories_locales_id_seq OWNED BY public.categories_locales.id; - - --- --- Name: consent_logs; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.consent_logs ( - id integer NOT NULL, - consent_id character varying NOT NULL, - client_ref character varying, - tenant_id integer NOT NULL, - categories jsonb NOT NULL, - revision numeric NOT NULL, - user_agent character varying, - anonymized_ip character varying, - expires_at timestamp(3) with time zone NOT NULL, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.consent_logs OWNER TO payload; - --- --- Name: consent_logs_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.consent_logs_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.consent_logs_id_seq OWNER TO payload; - --- --- Name: consent_logs_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.consent_logs_id_seq OWNED BY public.consent_logs.id; - - --- --- Name: cookie_configurations; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.cookie_configurations ( - id integer NOT NULL, - tenant_id integer NOT NULL, - title character varying DEFAULT 'Cookie-Einstellungen'::character varying NOT NULL, - revision numeric DEFAULT 1 NOT NULL, - translations_de_banner_title character varying DEFAULT 'Wir respektieren Ihre Privatsphäre'::character varying, - translations_de_banner_description character varying DEFAULT 'Diese Website verwendet Cookies, um Ihnen die bestmögliche Erfahrung zu bieten.'::character varying, - translations_de_accept_all_button character varying DEFAULT 'Alle akzeptieren'::character varying, - translations_de_accept_necessary_button character varying DEFAULT 'Nur notwendige'::character varying, - translations_de_settings_button character varying DEFAULT 'Einstellungen'::character varying, - translations_de_save_button character varying DEFAULT 'Auswahl speichern'::character varying, - translations_de_privacy_policy_url character varying DEFAULT '/datenschutz'::character varying, - translations_de_category_labels_necessary_title character varying DEFAULT 'Notwendig'::character varying, - translations_de_category_labels_necessary_description character varying DEFAULT 'Diese Cookies sind für die Grundfunktionen der Website erforderlich.'::character varying, - translations_de_category_labels_functional_title character varying DEFAULT 'Funktional'::character varying, - translations_de_category_labels_functional_description character varying DEFAULT 'Diese Cookies ermöglichen erweiterte Funktionen.'::character varying, - translations_de_category_labels_analytics_title character varying DEFAULT 'Statistik'::character varying, - translations_de_category_labels_analytics_description character varying DEFAULT 'Diese Cookies helfen uns zu verstehen, wie Besucher die Website nutzen.'::character varying, - translations_de_category_labels_marketing_title character varying DEFAULT 'Marketing'::character varying, - translations_de_category_labels_marketing_description character varying DEFAULT 'Diese Cookies werden für Werbezwecke verwendet.'::character varying, - styling_position public.enum_cookie_configurations_styling_position DEFAULT 'bottom'::public.enum_cookie_configurations_styling_position, - styling_theme public.enum_cookie_configurations_styling_theme DEFAULT 'dark'::public.enum_cookie_configurations_styling_theme, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.cookie_configurations OWNER TO payload; - --- --- Name: cookie_configurations_enabled_categories; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.cookie_configurations_enabled_categories ( - "order" integer NOT NULL, - parent_id integer NOT NULL, - value public.enum_cookie_configurations_enabled_categories, - id integer NOT NULL -); - - -ALTER TABLE public.cookie_configurations_enabled_categories OWNER TO payload; - --- --- Name: cookie_configurations_enabled_categories_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.cookie_configurations_enabled_categories_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.cookie_configurations_enabled_categories_id_seq OWNER TO payload; - --- --- Name: cookie_configurations_enabled_categories_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.cookie_configurations_enabled_categories_id_seq OWNED BY public.cookie_configurations_enabled_categories.id; - - --- --- Name: cookie_configurations_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.cookie_configurations_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.cookie_configurations_id_seq OWNER TO payload; - --- --- Name: cookie_configurations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.cookie_configurations_id_seq OWNED BY public.cookie_configurations.id; - - --- --- Name: cookie_inventory; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.cookie_inventory ( - id integer NOT NULL, - tenant_id integer NOT NULL, - name character varying NOT NULL, - provider character varying NOT NULL, - category public.enum_cookie_inventory_category NOT NULL, - duration character varying NOT NULL, - description character varying NOT NULL, - is_active boolean DEFAULT true, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.cookie_inventory OWNER TO payload; - --- --- Name: cookie_inventory_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.cookie_inventory_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.cookie_inventory_id_seq OWNER TO payload; - --- --- Name: cookie_inventory_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.cookie_inventory_id_seq OWNED BY public.cookie_inventory.id; - - --- --- Name: form_submissions; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.form_submissions ( - id integer NOT NULL, - form_id integer NOT NULL, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.form_submissions OWNER TO payload; - --- --- Name: form_submissions_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.form_submissions_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.form_submissions_id_seq OWNER TO payload; - --- --- Name: form_submissions_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.form_submissions_id_seq OWNED BY public.form_submissions.id; - - --- --- Name: form_submissions_submission_data; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.form_submissions_submission_data ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - id character varying NOT NULL, - field character varying NOT NULL, - value character varying NOT NULL -); - - -ALTER TABLE public.form_submissions_submission_data OWNER TO payload; - --- --- Name: forms; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms ( - id integer NOT NULL, - title character varying NOT NULL, - confirmation_type public.enum_forms_confirmation_type DEFAULT 'message'::public.enum_forms_confirmation_type, - redirect_url character varying, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL, - redirect_type public.enum_forms_redirect_type DEFAULT 'reference'::public.enum_forms_redirect_type -); - - -ALTER TABLE public.forms OWNER TO payload; - --- --- Name: forms_blocks_checkbox; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_checkbox ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - name character varying NOT NULL, - width numeric, - required boolean, - default_value boolean, - block_name character varying -); - - -ALTER TABLE public.forms_blocks_checkbox OWNER TO payload; - --- --- Name: forms_blocks_checkbox_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_checkbox_locales ( - label character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.forms_blocks_checkbox_locales OWNER TO payload; - --- --- Name: forms_blocks_checkbox_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.forms_blocks_checkbox_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.forms_blocks_checkbox_locales_id_seq OWNER TO payload; - --- --- Name: forms_blocks_checkbox_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.forms_blocks_checkbox_locales_id_seq OWNED BY public.forms_blocks_checkbox_locales.id; - - --- --- Name: forms_blocks_email; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_email ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - name character varying NOT NULL, - width numeric, - required boolean, - block_name character varying -); - - -ALTER TABLE public.forms_blocks_email OWNER TO payload; - --- --- Name: forms_blocks_email_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_email_locales ( - label character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.forms_blocks_email_locales OWNER TO payload; - --- --- Name: forms_blocks_email_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.forms_blocks_email_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.forms_blocks_email_locales_id_seq OWNER TO payload; - --- --- Name: forms_blocks_email_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.forms_blocks_email_locales_id_seq OWNED BY public.forms_blocks_email_locales.id; - - --- --- Name: forms_blocks_message; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_message ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - block_name character varying -); - - -ALTER TABLE public.forms_blocks_message OWNER TO payload; - --- --- Name: forms_blocks_message_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_message_locales ( - message jsonb, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.forms_blocks_message_locales OWNER TO payload; - --- --- Name: forms_blocks_message_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.forms_blocks_message_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.forms_blocks_message_locales_id_seq OWNER TO payload; - --- --- Name: forms_blocks_message_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.forms_blocks_message_locales_id_seq OWNED BY public.forms_blocks_message_locales.id; - - --- --- Name: forms_blocks_number; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_number ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - name character varying NOT NULL, - width numeric, - default_value numeric, - required boolean, - block_name character varying -); - - -ALTER TABLE public.forms_blocks_number OWNER TO payload; - --- --- Name: forms_blocks_number_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_number_locales ( - label character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.forms_blocks_number_locales OWNER TO payload; - --- --- Name: forms_blocks_number_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.forms_blocks_number_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.forms_blocks_number_locales_id_seq OWNER TO payload; - --- --- Name: forms_blocks_number_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.forms_blocks_number_locales_id_seq OWNED BY public.forms_blocks_number_locales.id; - - --- --- Name: forms_blocks_select; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_select ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - name character varying NOT NULL, - width numeric, - placeholder character varying, - required boolean, - block_name character varying -); - - -ALTER TABLE public.forms_blocks_select OWNER TO payload; - --- --- Name: forms_blocks_select_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_select_locales ( - label character varying, - default_value character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.forms_blocks_select_locales OWNER TO payload; - --- --- Name: forms_blocks_select_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.forms_blocks_select_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.forms_blocks_select_locales_id_seq OWNER TO payload; - --- --- Name: forms_blocks_select_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.forms_blocks_select_locales_id_seq OWNED BY public.forms_blocks_select_locales.id; - - --- --- Name: forms_blocks_select_options; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_select_options ( - _order integer NOT NULL, - _parent_id character varying NOT NULL, - id character varying NOT NULL, - value character varying NOT NULL -); - - -ALTER TABLE public.forms_blocks_select_options OWNER TO payload; - --- --- Name: forms_blocks_select_options_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_select_options_locales ( - label character varying NOT NULL, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.forms_blocks_select_options_locales OWNER TO payload; - --- --- Name: forms_blocks_select_options_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.forms_blocks_select_options_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.forms_blocks_select_options_locales_id_seq OWNER TO payload; - --- --- Name: forms_blocks_select_options_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.forms_blocks_select_options_locales_id_seq OWNED BY public.forms_blocks_select_options_locales.id; - - --- --- Name: forms_blocks_text; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_text ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - name character varying NOT NULL, - width numeric, - required boolean, - block_name character varying -); - - -ALTER TABLE public.forms_blocks_text OWNER TO payload; - --- --- Name: forms_blocks_text_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_text_locales ( - label character varying, - default_value character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.forms_blocks_text_locales OWNER TO payload; - --- --- Name: forms_blocks_text_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.forms_blocks_text_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.forms_blocks_text_locales_id_seq OWNER TO payload; - --- --- Name: forms_blocks_text_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.forms_blocks_text_locales_id_seq OWNED BY public.forms_blocks_text_locales.id; - - --- --- Name: forms_blocks_textarea; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_textarea ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - name character varying NOT NULL, - width numeric, - required boolean, - block_name character varying -); - - -ALTER TABLE public.forms_blocks_textarea OWNER TO payload; - --- --- Name: forms_blocks_textarea_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_blocks_textarea_locales ( - label character varying, - default_value character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.forms_blocks_textarea_locales OWNER TO payload; - --- --- Name: forms_blocks_textarea_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.forms_blocks_textarea_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.forms_blocks_textarea_locales_id_seq OWNER TO payload; - --- --- Name: forms_blocks_textarea_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.forms_blocks_textarea_locales_id_seq OWNED BY public.forms_blocks_textarea_locales.id; - - --- --- Name: forms_emails; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_emails ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - id character varying NOT NULL, - email_to character varying, - cc character varying, - bcc character varying, - reply_to character varying, - email_from character varying -); - - -ALTER TABLE public.forms_emails OWNER TO payload; - --- --- Name: forms_emails_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_emails_locales ( - subject character varying DEFAULT 'You''ve received a new message.'::character varying NOT NULL, - message jsonb, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.forms_emails_locales OWNER TO payload; - --- --- Name: forms_emails_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.forms_emails_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.forms_emails_locales_id_seq OWNER TO payload; - --- --- Name: forms_emails_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.forms_emails_locales_id_seq OWNED BY public.forms_emails_locales.id; - - --- --- Name: forms_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.forms_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.forms_id_seq OWNER TO payload; - --- --- Name: forms_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.forms_id_seq OWNED BY public.forms.id; - - --- --- Name: forms_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_locales ( - submit_button_label character varying, - confirmation_message jsonb, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id integer NOT NULL -); - - -ALTER TABLE public.forms_locales OWNER TO payload; - --- --- Name: forms_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.forms_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.forms_locales_id_seq OWNER TO payload; - --- --- Name: forms_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.forms_locales_id_seq OWNED BY public.forms_locales.id; - - --- --- Name: forms_rels; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.forms_rels ( - id integer NOT NULL, - "order" integer, - parent_id integer NOT NULL, - path character varying NOT NULL, - pages_id integer -); - - -ALTER TABLE public.forms_rels OWNER TO payload; - --- --- Name: forms_rels_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.forms_rels_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.forms_rels_id_seq OWNER TO payload; - --- --- Name: forms_rels_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.forms_rels_id_seq OWNED BY public.forms_rels.id; - - --- --- Name: media; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.media ( - id integer NOT NULL, - tenant_id integer, - alt character varying NOT NULL, - caption character varying, - credit character varying, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL, - url character varying, - thumbnail_u_r_l character varying, - filename character varying, - mime_type character varying, - filesize numeric, - width numeric, - height numeric, - focal_x numeric, - focal_y numeric, - sizes_thumbnail_url character varying, - sizes_thumbnail_width numeric, - sizes_thumbnail_height numeric, - sizes_thumbnail_mime_type character varying, - sizes_thumbnail_filesize numeric, - sizes_thumbnail_filename character varying, - sizes_small_url character varying, - sizes_small_width numeric, - sizes_small_height numeric, - sizes_small_mime_type character varying, - sizes_small_filesize numeric, - sizes_small_filename character varying, - sizes_medium_url character varying, - sizes_medium_width numeric, - sizes_medium_height numeric, - sizes_medium_mime_type character varying, - sizes_medium_filesize numeric, - sizes_medium_filename character varying, - sizes_large_url character varying, - sizes_large_width numeric, - sizes_large_height numeric, - sizes_large_mime_type character varying, - sizes_large_filesize numeric, - sizes_large_filename character varying, - sizes_xlarge_url character varying, - sizes_xlarge_width numeric, - sizes_xlarge_height numeric, - sizes_xlarge_mime_type character varying, - sizes_xlarge_filesize numeric, - sizes_xlarge_filename character varying, - sizes_2k_url character varying, - sizes_2k_width numeric, - sizes_2k_height numeric, - sizes_2k_mime_type character varying, - sizes_2k_filesize numeric, - sizes_2k_filename character varying, - sizes_og_url character varying, - sizes_og_width numeric, - sizes_og_height numeric, - sizes_og_mime_type character varying, - sizes_og_filesize numeric, - sizes_og_filename character varying, - sizes_medium_avif_url character varying, - sizes_medium_avif_width numeric, - sizes_medium_avif_height numeric, - sizes_medium_avif_mime_type character varying, - sizes_medium_avif_filesize numeric, - sizes_medium_avif_filename character varying, - sizes_large_avif_url character varying, - sizes_large_avif_width numeric, - sizes_large_avif_height numeric, - sizes_large_avif_mime_type character varying, - sizes_large_avif_filesize numeric, - sizes_large_avif_filename character varying, - sizes_xlarge_avif_url character varying, - sizes_xlarge_avif_width numeric, - sizes_xlarge_avif_height numeric, - sizes_xlarge_avif_mime_type character varying, - sizes_xlarge_avif_filesize numeric, - sizes_xlarge_avif_filename character varying -); - - -ALTER TABLE public.media OWNER TO payload; - --- --- Name: media_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.media_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.media_id_seq OWNER TO payload; - --- --- Name: media_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.media_id_seq OWNED BY public.media.id; - - --- --- Name: media_texts; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.media_texts ( - id integer NOT NULL, - "order" integer NOT NULL, - parent_id integer NOT NULL, - path character varying NOT NULL, - text character varying -); - - -ALTER TABLE public.media_texts OWNER TO payload; - --- --- Name: media_texts_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.media_texts_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.media_texts_id_seq OWNER TO payload; - --- --- Name: media_texts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.media_texts_id_seq OWNED BY public.media_texts.id; - - --- --- Name: navigation; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.navigation ( - id integer NOT NULL, - updated_at timestamp(3) with time zone, - created_at timestamp(3) with time zone -); - - -ALTER TABLE public.navigation OWNER TO payload; - --- --- Name: navigation_footer_menu; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.navigation_footer_menu ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - id character varying NOT NULL, - link_type public.enum_navigation_footer_menu_link_type DEFAULT 'page'::public.enum_navigation_footer_menu_link_type, - page_id integer, - url character varying -); - - -ALTER TABLE public.navigation_footer_menu OWNER TO payload; - --- --- Name: navigation_footer_menu_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.navigation_footer_menu_locales ( - label character varying NOT NULL, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.navigation_footer_menu_locales OWNER TO payload; - --- --- Name: navigation_footer_menu_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.navigation_footer_menu_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.navigation_footer_menu_locales_id_seq OWNER TO payload; - --- --- Name: navigation_footer_menu_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.navigation_footer_menu_locales_id_seq OWNED BY public.navigation_footer_menu_locales.id; - - --- --- Name: navigation_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.navigation_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.navigation_id_seq OWNER TO payload; - --- --- Name: navigation_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.navigation_id_seq OWNED BY public.navigation.id; - - --- --- Name: navigation_main_menu; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.navigation_main_menu ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - id character varying NOT NULL, - type public.enum_navigation_main_menu_type DEFAULT 'page'::public.enum_navigation_main_menu_type, - page_id integer, - url character varying, - open_in_new_tab boolean DEFAULT false -); - - -ALTER TABLE public.navigation_main_menu OWNER TO payload; - --- --- Name: navigation_main_menu_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.navigation_main_menu_locales ( - label character varying NOT NULL, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.navigation_main_menu_locales OWNER TO payload; - --- --- Name: navigation_main_menu_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.navigation_main_menu_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.navigation_main_menu_locales_id_seq OWNER TO payload; - --- --- Name: navigation_main_menu_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.navigation_main_menu_locales_id_seq OWNED BY public.navigation_main_menu_locales.id; - - --- --- Name: navigation_main_menu_submenu; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.navigation_main_menu_submenu ( - _order integer NOT NULL, - _parent_id character varying NOT NULL, - id character varying NOT NULL, - link_type public.enum_navigation_main_menu_submenu_link_type DEFAULT 'page'::public.enum_navigation_main_menu_submenu_link_type, - page_id integer, - url character varying -); - - -ALTER TABLE public.navigation_main_menu_submenu OWNER TO payload; - --- --- Name: navigation_main_menu_submenu_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.navigation_main_menu_submenu_locales ( - label character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.navigation_main_menu_submenu_locales OWNER TO payload; - --- --- Name: navigation_main_menu_submenu_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.navigation_main_menu_submenu_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.navigation_main_menu_submenu_locales_id_seq OWNER TO payload; - --- --- Name: navigation_main_menu_submenu_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.navigation_main_menu_submenu_locales_id_seq OWNED BY public.navigation_main_menu_submenu_locales.id; - - --- --- Name: newsletter_subscribers; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.newsletter_subscribers ( - id integer NOT NULL, - tenant_id integer, - email character varying NOT NULL, - first_name character varying, - last_name character varying, - status public.enum_newsletter_subscribers_status DEFAULT 'pending'::public.enum_newsletter_subscribers_status NOT NULL, - source character varying, - subscribed_at timestamp(3) with time zone, - confirmed_at timestamp(3) with time zone, - unsubscribed_at timestamp(3) with time zone, - confirmation_token character varying, - ip_address character varying, - user_agent character varying, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.newsletter_subscribers OWNER TO payload; - --- --- Name: newsletter_subscribers_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.newsletter_subscribers_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.newsletter_subscribers_id_seq OWNER TO payload; - --- --- Name: newsletter_subscribers_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.newsletter_subscribers_id_seq OWNED BY public.newsletter_subscribers.id; - - --- --- Name: newsletter_subscribers_interests; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.newsletter_subscribers_interests ( - "order" integer NOT NULL, - parent_id integer NOT NULL, - value public.enum_newsletter_subscribers_interests, - id integer NOT NULL -); - - -ALTER TABLE public.newsletter_subscribers_interests OWNER TO payload; - --- --- Name: newsletter_subscribers_interests_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.newsletter_subscribers_interests_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.newsletter_subscribers_interests_id_seq OWNER TO payload; - --- --- Name: newsletter_subscribers_interests_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.newsletter_subscribers_interests_id_seq OWNED BY public.newsletter_subscribers_interests.id; - - --- --- Name: pages; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages ( - id integer NOT NULL, - tenant_id integer, - hero_image_id integer, - seo_og_image_id integer, - status public.enum_pages_status DEFAULT 'draft'::public.enum_pages_status, - published_at timestamp(3) with time zone, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.pages OWNER TO payload; - --- --- Name: pages_blocks_card_grid_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_card_grid_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - columns public.enum_pages_blocks_card_grid_block_columns DEFAULT '3'::public.enum_pages_blocks_card_grid_block_columns, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_card_grid_block OWNER TO payload; - --- --- Name: pages_blocks_card_grid_block_cards; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_card_grid_block_cards ( - _order integer NOT NULL, - _parent_id character varying NOT NULL, - id character varying NOT NULL, - image_id integer, - link character varying -); - - -ALTER TABLE public.pages_blocks_card_grid_block_cards OWNER TO payload; - --- --- Name: pages_blocks_card_grid_block_cards_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_card_grid_block_cards_locales ( - title character varying NOT NULL, - description character varying, - link_text character varying DEFAULT 'mehr'::character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_card_grid_block_cards_locales OWNER TO payload; - --- --- Name: pages_blocks_card_grid_block_cards_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_card_grid_block_cards_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_card_grid_block_cards_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_card_grid_block_cards_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_card_grid_block_cards_locales_id_seq OWNED BY public.pages_blocks_card_grid_block_cards_locales.id; - - --- --- Name: pages_blocks_card_grid_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_card_grid_block_locales ( - headline character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_card_grid_block_locales OWNER TO payload; - --- --- Name: pages_blocks_card_grid_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_card_grid_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_card_grid_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_card_grid_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_card_grid_block_locales_id_seq OWNED BY public.pages_blocks_card_grid_block_locales.id; - - --- --- Name: pages_blocks_contact_form_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_contact_form_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - recipient_email character varying DEFAULT 'info@porwoll.de'::character varying, - show_phone boolean DEFAULT true, - show_address boolean DEFAULT true, - show_socials boolean DEFAULT true, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_contact_form_block OWNER TO payload; - --- --- Name: pages_blocks_contact_form_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_contact_form_block_locales ( - headline character varying DEFAULT 'Kontakt'::character varying, - description character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_contact_form_block_locales OWNER TO payload; - --- --- Name: pages_blocks_contact_form_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_contact_form_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_contact_form_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_contact_form_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_contact_form_block_locales_id_seq OWNED BY public.pages_blocks_contact_form_block_locales.id; - - --- --- Name: pages_blocks_cta_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_cta_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - background_color public.enum_pages_blocks_cta_block_background_color DEFAULT 'dark'::public.enum_pages_blocks_cta_block_background_color, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_cta_block OWNER TO payload; - --- --- Name: pages_blocks_cta_block_buttons; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_cta_block_buttons ( - _order integer NOT NULL, - _parent_id character varying NOT NULL, - id character varying NOT NULL, - link character varying NOT NULL, - style public.enum_pages_blocks_cta_block_buttons_style DEFAULT 'primary'::public.enum_pages_blocks_cta_block_buttons_style -); - - -ALTER TABLE public.pages_blocks_cta_block_buttons OWNER TO payload; - --- --- Name: pages_blocks_cta_block_buttons_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_cta_block_buttons_locales ( - text character varying NOT NULL, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_cta_block_buttons_locales OWNER TO payload; - --- --- Name: pages_blocks_cta_block_buttons_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_cta_block_buttons_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_cta_block_buttons_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_cta_block_buttons_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_cta_block_buttons_locales_id_seq OWNED BY public.pages_blocks_cta_block_buttons_locales.id; - - --- --- Name: pages_blocks_cta_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_cta_block_locales ( - headline character varying NOT NULL, - description character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_cta_block_locales OWNER TO payload; - --- --- Name: pages_blocks_cta_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_cta_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_cta_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_cta_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_cta_block_locales_id_seq OWNED BY public.pages_blocks_cta_block_locales.id; - - --- --- Name: pages_blocks_divider_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_divider_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - style public.enum_pages_blocks_divider_block_style DEFAULT 'space'::public.enum_pages_blocks_divider_block_style, - spacing public.enum_pages_blocks_divider_block_spacing DEFAULT 'medium'::public.enum_pages_blocks_divider_block_spacing, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_divider_block OWNER TO payload; - --- --- Name: pages_blocks_hero_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_hero_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - background_image_id integer, - alignment public.enum_pages_blocks_hero_block_alignment DEFAULT 'center'::public.enum_pages_blocks_hero_block_alignment, - "overlay" boolean DEFAULT true, - cta_link character varying, - cta_style public.enum_pages_blocks_hero_block_cta_style DEFAULT 'primary'::public.enum_pages_blocks_hero_block_cta_style, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_hero_block OWNER TO payload; - --- --- Name: pages_blocks_hero_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_hero_block_locales ( - headline character varying NOT NULL, - subline character varying, - cta_text character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_hero_block_locales OWNER TO payload; - --- --- Name: pages_blocks_hero_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_hero_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_hero_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_hero_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_hero_block_locales_id_seq OWNED BY public.pages_blocks_hero_block_locales.id; - - --- --- Name: pages_blocks_image_text_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_image_text_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - image_id integer NOT NULL, - image_position public.enum_pages_blocks_image_text_block_image_position DEFAULT 'left'::public.enum_pages_blocks_image_text_block_image_position, - cta_link character varying, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_image_text_block OWNER TO payload; - --- --- Name: pages_blocks_image_text_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_image_text_block_locales ( - headline character varying, - content jsonb, - cta_text character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_image_text_block_locales OWNER TO payload; - --- --- Name: pages_blocks_image_text_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_image_text_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_image_text_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_image_text_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_image_text_block_locales_id_seq OWNED BY public.pages_blocks_image_text_block_locales.id; - - --- --- Name: pages_blocks_newsletter_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_newsletter_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - layout public.enum_pages_blocks_newsletter_block_layout DEFAULT 'inline'::public.enum_pages_blocks_newsletter_block_layout, - image_id integer, - image_position public.enum_pages_blocks_newsletter_block_image_position DEFAULT 'left'::public.enum_pages_blocks_newsletter_block_image_position, - collect_name boolean DEFAULT false, - show_interests boolean DEFAULT false, - privacy_link character varying DEFAULT '/datenschutz'::character varying, - source character varying DEFAULT 'website'::character varying, - background_color public.enum_pages_blocks_newsletter_block_background_color DEFAULT 'accent'::public.enum_pages_blocks_newsletter_block_background_color, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_newsletter_block OWNER TO payload; - --- --- Name: pages_blocks_newsletter_block_available_interests; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_newsletter_block_available_interests ( - "order" integer NOT NULL, - parent_id character varying NOT NULL, - value public.enum_pages_blocks_newsletter_block_available_interests, - id integer NOT NULL -); - - -ALTER TABLE public.pages_blocks_newsletter_block_available_interests OWNER TO payload; - --- --- Name: pages_blocks_newsletter_block_available_interests_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_newsletter_block_available_interests_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_newsletter_block_available_interests_id_seq OWNER TO payload; - --- --- Name: pages_blocks_newsletter_block_available_interests_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_newsletter_block_available_interests_id_seq OWNED BY public.pages_blocks_newsletter_block_available_interests.id; - - --- --- Name: pages_blocks_newsletter_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_newsletter_block_locales ( - title character varying DEFAULT 'Newsletter abonnieren'::character varying, - subtitle character varying DEFAULT 'Erhalten Sie regelmäßig Updates und Neuigkeiten direkt in Ihr Postfach.'::character varying, - button_text character varying DEFAULT 'Anmelden'::character varying, - placeholder_email character varying DEFAULT 'Ihre E-Mail-Adresse'::character varying, - success_message character varying DEFAULT 'Vielen Dank! Bitte bestätigen Sie Ihre E-Mail-Adresse über den Link in der Bestätigungsmail.'::character varying, - error_message character varying DEFAULT 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.'::character varying, - privacy_text character varying DEFAULT 'Mit der Anmeldung akzeptieren Sie unsere Datenschutzerklärung. Sie können sich jederzeit abmelden.'::character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_newsletter_block_locales OWNER TO payload; - --- --- Name: pages_blocks_newsletter_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_newsletter_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_newsletter_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_newsletter_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_newsletter_block_locales_id_seq OWNED BY public.pages_blocks_newsletter_block_locales.id; - - --- --- Name: pages_blocks_posts_list_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_posts_list_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - post_type public.enum_pages_blocks_posts_list_block_post_type DEFAULT 'blog'::public.enum_pages_blocks_posts_list_block_post_type NOT NULL, - layout public.enum_pages_blocks_posts_list_block_layout DEFAULT 'grid'::public.enum_pages_blocks_posts_list_block_layout, - columns public.enum_pages_blocks_posts_list_block_columns DEFAULT '3'::public.enum_pages_blocks_posts_list_block_columns, - "limit" numeric DEFAULT 6, - show_featured_only boolean DEFAULT false, - show_excerpt boolean DEFAULT true, - show_date boolean DEFAULT true, - show_author boolean DEFAULT false, - show_category boolean DEFAULT true, - show_pagination boolean DEFAULT false, - show_read_more boolean DEFAULT true, - read_more_link character varying DEFAULT '/blog'::character varying, - background_color public.enum_pages_blocks_posts_list_block_background_color DEFAULT 'white'::public.enum_pages_blocks_posts_list_block_background_color, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_posts_list_block OWNER TO payload; - --- --- Name: pages_blocks_posts_list_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_posts_list_block_locales ( - title character varying, - subtitle character varying, - read_more_label character varying DEFAULT 'Alle Beiträge anzeigen'::character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_posts_list_block_locales OWNER TO payload; - --- --- Name: pages_blocks_posts_list_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_posts_list_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_posts_list_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_posts_list_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_posts_list_block_locales_id_seq OWNED BY public.pages_blocks_posts_list_block_locales.id; - - --- --- Name: pages_blocks_process_steps_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_process_steps_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - layout public.enum_pages_blocks_process_steps_block_layout DEFAULT 'horizontal'::public.enum_pages_blocks_process_steps_block_layout, - show_numbers boolean DEFAULT true, - show_icons boolean DEFAULT true, - cta_show boolean DEFAULT false, - cta_href character varying, - cta_variant public.enum_pages_blocks_process_steps_block_cta_variant DEFAULT 'default'::public.enum_pages_blocks_process_steps_block_cta_variant, - background_color public.enum_pages_blocks_process_steps_block_background_color DEFAULT 'white'::public.enum_pages_blocks_process_steps_block_background_color, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_process_steps_block OWNER TO payload; - --- --- Name: pages_blocks_process_steps_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_process_steps_block_locales ( - title character varying DEFAULT 'So funktioniert es'::character varying, - subtitle character varying, - cta_label character varying DEFAULT 'Jetzt starten'::character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_process_steps_block_locales OWNER TO payload; - --- --- Name: pages_blocks_process_steps_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_process_steps_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_process_steps_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_process_steps_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_process_steps_block_locales_id_seq OWNED BY public.pages_blocks_process_steps_block_locales.id; - - --- --- Name: pages_blocks_process_steps_block_steps; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_process_steps_block_steps ( - _order integer NOT NULL, - _parent_id character varying NOT NULL, - id character varying NOT NULL, - icon character varying, - image_id integer -); - - -ALTER TABLE public.pages_blocks_process_steps_block_steps OWNER TO payload; - --- --- Name: pages_blocks_process_steps_block_steps_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_process_steps_block_steps_locales ( - title character varying NOT NULL, - description character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_process_steps_block_steps_locales OWNER TO payload; - --- --- Name: pages_blocks_process_steps_block_steps_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_process_steps_block_steps_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_process_steps_block_steps_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_process_steps_block_steps_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_process_steps_block_steps_locales_id_seq OWNED BY public.pages_blocks_process_steps_block_steps_locales.id; - - --- --- Name: pages_blocks_quote_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_quote_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - author character varying, - image_id integer, - style public.enum_pages_blocks_quote_block_style DEFAULT 'simple'::public.enum_pages_blocks_quote_block_style, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_quote_block OWNER TO payload; - --- --- Name: pages_blocks_quote_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_quote_block_locales ( - quote character varying NOT NULL, - role character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_quote_block_locales OWNER TO payload; - --- --- Name: pages_blocks_quote_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_quote_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_quote_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_quote_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_quote_block_locales_id_seq OWNED BY public.pages_blocks_quote_block_locales.id; - - --- --- Name: pages_blocks_testimonials_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_testimonials_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - layout public.enum_pages_blocks_testimonials_block_layout DEFAULT 'slider'::public.enum_pages_blocks_testimonials_block_layout, - columns public.enum_pages_blocks_testimonials_block_columns DEFAULT '3'::public.enum_pages_blocks_testimonials_block_columns, - display_mode public.enum_pages_blocks_testimonials_block_display_mode DEFAULT 'all'::public.enum_pages_blocks_testimonials_block_display_mode, - "limit" numeric DEFAULT 6, - show_rating boolean DEFAULT true, - show_image boolean DEFAULT true, - show_company boolean DEFAULT true, - show_source boolean DEFAULT false, - autoplay boolean DEFAULT true, - autoplay_speed numeric DEFAULT 5000, - background_color public.enum_pages_blocks_testimonials_block_background_color DEFAULT 'light'::public.enum_pages_blocks_testimonials_block_background_color, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_testimonials_block OWNER TO payload; - --- --- Name: pages_blocks_testimonials_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_testimonials_block_locales ( - title character varying DEFAULT 'Das sagen unsere Kunden'::character varying, - subtitle character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_testimonials_block_locales OWNER TO payload; - --- --- Name: pages_blocks_testimonials_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_testimonials_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_testimonials_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_testimonials_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_testimonials_block_locales_id_seq OWNED BY public.pages_blocks_testimonials_block_locales.id; - - --- --- Name: pages_blocks_text_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_text_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - width public.enum_pages_blocks_text_block_width DEFAULT 'medium'::public.enum_pages_blocks_text_block_width, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_text_block OWNER TO payload; - --- --- Name: pages_blocks_text_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_text_block_locales ( - content jsonb NOT NULL, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_text_block_locales OWNER TO payload; - --- --- Name: pages_blocks_text_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_text_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_text_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_text_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_text_block_locales_id_seq OWNED BY public.pages_blocks_text_block_locales.id; - - --- --- Name: pages_blocks_timeline_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_timeline_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - layout public.enum_pages_blocks_timeline_block_layout DEFAULT 'vertical'::public.enum_pages_blocks_timeline_block_layout, - show_connector boolean DEFAULT true, - marker_style public.enum_pages_blocks_timeline_block_marker_style DEFAULT 'dot'::public.enum_pages_blocks_timeline_block_marker_style, - background_color public.enum_pages_blocks_timeline_block_background_color DEFAULT 'white'::public.enum_pages_blocks_timeline_block_background_color, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_timeline_block OWNER TO payload; - --- --- Name: pages_blocks_timeline_block_items; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_timeline_block_items ( - _order integer NOT NULL, - _parent_id character varying NOT NULL, - id character varying NOT NULL, - year character varying, - icon character varying, - image_id integer, - link_href character varying -); - - -ALTER TABLE public.pages_blocks_timeline_block_items OWNER TO payload; - --- --- Name: pages_blocks_timeline_block_items_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_timeline_block_items_locales ( - title character varying NOT NULL, - description character varying, - link_label character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_timeline_block_items_locales OWNER TO payload; - --- --- Name: pages_blocks_timeline_block_items_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_timeline_block_items_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_timeline_block_items_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_timeline_block_items_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_timeline_block_items_locales_id_seq OWNED BY public.pages_blocks_timeline_block_items_locales.id; - - --- --- Name: pages_blocks_timeline_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_timeline_block_locales ( - title character varying, - subtitle character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_timeline_block_locales OWNER TO payload; - --- --- Name: pages_blocks_timeline_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_timeline_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_timeline_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_timeline_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_timeline_block_locales_id_seq OWNED BY public.pages_blocks_timeline_block_locales.id; - - --- --- Name: pages_blocks_video_block; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_video_block ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - _path text NOT NULL, - id character varying NOT NULL, - video_url character varying NOT NULL, - aspect_ratio public.enum_pages_blocks_video_block_aspect_ratio DEFAULT '16:9'::public.enum_pages_blocks_video_block_aspect_ratio, - block_name character varying -); - - -ALTER TABLE public.pages_blocks_video_block OWNER TO payload; - --- --- Name: pages_blocks_video_block_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_blocks_video_block_locales ( - caption character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id character varying NOT NULL -); - - -ALTER TABLE public.pages_blocks_video_block_locales OWNER TO payload; - --- --- Name: pages_blocks_video_block_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_blocks_video_block_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_blocks_video_block_locales_id_seq OWNER TO payload; - --- --- Name: pages_blocks_video_block_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_blocks_video_block_locales_id_seq OWNED BY public.pages_blocks_video_block_locales.id; - - --- --- Name: pages_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_id_seq OWNER TO payload; - --- --- Name: pages_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_id_seq OWNED BY public.pages.id; - - --- --- Name: pages_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_locales ( - title character varying NOT NULL, - slug character varying NOT NULL, - hero_headline character varying, - hero_subline character varying, - seo_meta_title character varying, - seo_meta_description character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id integer NOT NULL -); - - -ALTER TABLE public.pages_locales OWNER TO payload; - --- --- Name: pages_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_locales_id_seq OWNER TO payload; - --- --- Name: pages_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_locales_id_seq OWNED BY public.pages_locales.id; - - --- --- Name: pages_rels; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.pages_rels ( - id integer NOT NULL, - "order" integer, - parent_id integer NOT NULL, - path character varying NOT NULL, - categories_id integer, - testimonials_id integer -); - - -ALTER TABLE public.pages_rels OWNER TO payload; - --- --- Name: pages_rels_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.pages_rels_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.pages_rels_id_seq OWNER TO payload; - --- --- Name: pages_rels_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.pages_rels_id_seq OWNED BY public.pages_rels.id; - - --- --- Name: payload_kv; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.payload_kv ( - id integer NOT NULL, - key character varying NOT NULL, - data jsonb NOT NULL -); - - -ALTER TABLE public.payload_kv OWNER TO payload; - --- --- Name: payload_kv_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.payload_kv_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.payload_kv_id_seq OWNER TO payload; - --- --- Name: payload_kv_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.payload_kv_id_seq OWNED BY public.payload_kv.id; - - --- --- Name: payload_locked_documents; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.payload_locked_documents ( - id integer NOT NULL, - global_slug character varying, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.payload_locked_documents OWNER TO payload; - --- --- Name: payload_locked_documents_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.payload_locked_documents_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.payload_locked_documents_id_seq OWNER TO payload; - --- --- Name: payload_locked_documents_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.payload_locked_documents_id_seq OWNED BY public.payload_locked_documents.id; - - --- --- Name: payload_locked_documents_rels; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.payload_locked_documents_rels ( - id integer NOT NULL, - "order" integer, - parent_id integer NOT NULL, - path character varying NOT NULL, - users_id integer, - media_id integer, - tenants_id integer, - pages_id integer, - posts_id integer, - categories_id integer, - social_links_id integer, - testimonials_id integer, - newsletter_subscribers_id integer, - cookie_configurations_id integer, - cookie_inventory_id integer, - consent_logs_id integer, - privacy_policy_settings_id integer, - forms_id integer, - form_submissions_id integer, - redirects_id integer -); - - -ALTER TABLE public.payload_locked_documents_rels OWNER TO payload; - --- --- Name: payload_locked_documents_rels_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.payload_locked_documents_rels_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.payload_locked_documents_rels_id_seq OWNER TO payload; - --- --- Name: payload_locked_documents_rels_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.payload_locked_documents_rels_id_seq OWNED BY public.payload_locked_documents_rels.id; - - --- --- Name: payload_migrations; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.payload_migrations ( - id integer NOT NULL, - name character varying, - batch numeric, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.payload_migrations OWNER TO payload; - --- --- Name: payload_migrations_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.payload_migrations_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.payload_migrations_id_seq OWNER TO payload; - --- --- Name: payload_migrations_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.payload_migrations_id_seq OWNED BY public.payload_migrations.id; - - --- --- Name: payload_preferences; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.payload_preferences ( - id integer NOT NULL, - key character varying, - value jsonb, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.payload_preferences OWNER TO payload; - --- --- Name: payload_preferences_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.payload_preferences_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.payload_preferences_id_seq OWNER TO payload; - --- --- Name: payload_preferences_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.payload_preferences_id_seq OWNED BY public.payload_preferences.id; - - --- --- Name: payload_preferences_rels; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.payload_preferences_rels ( - id integer NOT NULL, - "order" integer, - parent_id integer NOT NULL, - path character varying NOT NULL, - users_id integer -); - - -ALTER TABLE public.payload_preferences_rels OWNER TO payload; - --- --- Name: payload_preferences_rels_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.payload_preferences_rels_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.payload_preferences_rels_id_seq OWNER TO payload; - --- --- Name: payload_preferences_rels_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.payload_preferences_rels_id_seq OWNED BY public.payload_preferences_rels.id; - - --- --- Name: posts; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.posts ( - id integer NOT NULL, - tenant_id integer, - type public.enum_posts_type DEFAULT 'blog'::public.enum_posts_type NOT NULL, - is_featured boolean DEFAULT false, - featured_image_id integer, - author character varying, - status public.enum_posts_status DEFAULT 'draft'::public.enum_posts_status, - published_at timestamp(3) with time zone, - seo_og_image_id integer, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.posts OWNER TO payload; - --- --- Name: posts_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.posts_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.posts_id_seq OWNER TO payload; - --- --- Name: posts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.posts_id_seq OWNED BY public.posts.id; - - --- --- Name: posts_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.posts_locales ( - title character varying NOT NULL, - slug character varying NOT NULL, - excerpt character varying, - content jsonb NOT NULL, - seo_meta_title character varying, - seo_meta_description character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id integer NOT NULL -); - - -ALTER TABLE public.posts_locales OWNER TO payload; - --- --- Name: posts_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.posts_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.posts_locales_id_seq OWNER TO payload; - --- --- Name: posts_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.posts_locales_id_seq OWNED BY public.posts_locales.id; - - --- --- Name: posts_rels; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.posts_rels ( - id integer NOT NULL, - "order" integer, - parent_id integer NOT NULL, - path character varying NOT NULL, - categories_id integer -); - - -ALTER TABLE public.posts_rels OWNER TO payload; - --- --- Name: posts_rels_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.posts_rels_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.posts_rels_id_seq OWNER TO payload; - --- --- Name: posts_rels_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.posts_rels_id_seq OWNED BY public.posts_rels.id; - - --- --- Name: privacy_policy_settings; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.privacy_policy_settings ( - id integer NOT NULL, - tenant_id integer NOT NULL, - title character varying DEFAULT 'Datenschutzerklärung'::character varying NOT NULL, - provider public.enum_privacy_policy_settings_provider DEFAULT 'alfright'::public.enum_privacy_policy_settings_provider NOT NULL, - alfright_tenant_id character varying DEFAULT 'alfright_schutzteam'::character varying, - alfright_api_key character varying, - alfright_language public.enum_privacy_policy_settings_alfright_language DEFAULT 'de-de'::public.enum_privacy_policy_settings_alfright_language, - alfright_iframe_height numeric DEFAULT 4000, - styling_header_color character varying DEFAULT '#ca8a04'::character varying, - styling_header_font character varying DEFAULT 'Inter, sans-serif'::character varying, - styling_header_size character varying DEFAULT '24px'::character varying, - styling_subheader_size character varying DEFAULT '18px'::character varying, - styling_font_color character varying DEFAULT '#f3f4f6'::character varying, - styling_text_font character varying DEFAULT 'Inter, sans-serif'::character varying, - styling_text_size character varying DEFAULT '16px'::character varying, - styling_link_color character varying DEFAULT '#ca8a04'::character varying, - styling_background_color character varying DEFAULT '#111827'::character varying, - show_cookie_table boolean DEFAULT true, - cookie_table_title character varying DEFAULT 'Übersicht der verwendeten Cookies'::character varying, - cookie_table_description character varying DEFAULT 'Ergänzend zur Datenschutzerklärung finden Sie hier eine detaillierte Übersicht aller auf dieser Website eingesetzten Cookies. Sie können Ihre Cookie-Einstellungen jederzeit über den Link "Cookie-Einstellungen" im Footer anpassen.'::character varying, - seo_meta_title character varying DEFAULT 'Datenschutzerklärung'::character varying, - seo_meta_description character varying DEFAULT 'Informationen zum Datenschutz und zur Verarbeitung Ihrer personenbezogenen Daten.'::character varying, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.privacy_policy_settings OWNER TO payload; - --- --- Name: privacy_policy_settings_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.privacy_policy_settings_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.privacy_policy_settings_id_seq OWNER TO payload; - --- --- Name: privacy_policy_settings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.privacy_policy_settings_id_seq OWNED BY public.privacy_policy_settings.id; - - --- --- Name: redirects; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.redirects ( - id integer NOT NULL, - "from" character varying NOT NULL, - to_type public.enum_redirects_to_type DEFAULT 'reference'::public.enum_redirects_to_type, - to_url character varying, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.redirects OWNER TO payload; - --- --- Name: redirects_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.redirects_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.redirects_id_seq OWNER TO payload; - --- --- Name: redirects_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.redirects_id_seq OWNED BY public.redirects.id; - - --- --- Name: redirects_rels; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.redirects_rels ( - id integer NOT NULL, - "order" integer, - parent_id integer NOT NULL, - path character varying NOT NULL, - pages_id integer -); - - -ALTER TABLE public.redirects_rels OWNER TO payload; - --- --- Name: redirects_rels_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.redirects_rels_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.redirects_rels_id_seq OWNER TO payload; - --- --- Name: redirects_rels_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.redirects_rels_id_seq OWNED BY public.redirects_rels.id; - - --- --- Name: seo_settings; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.seo_settings ( - id integer NOT NULL, - meta_defaults_default_og_image_id integer, - organization_name character varying NOT NULL, - organization_legal_name character varying, - organization_logo_id integer, - organization_founding_date timestamp(3) with time zone, - contact_email character varying, - contact_phone character varying, - contact_fax character varying, - address_street character varying, - address_postal_code character varying, - address_city character varying, - address_region character varying, - address_country character varying DEFAULT 'Deutschland'::character varying, - address_country_code character varying DEFAULT 'DE'::character varying, - geo_latitude numeric, - geo_longitude numeric, - local_business_enabled boolean DEFAULT false, - local_business_type public.enum_seo_settings_local_business_type, - local_business_price_range public.enum_seo_settings_local_business_price_range, - robots_allow_indexing boolean DEFAULT true, - verification_google character varying, - verification_bing character varying, - verification_yandex character varying, - updated_at timestamp(3) with time zone, - created_at timestamp(3) with time zone -); - - -ALTER TABLE public.seo_settings OWNER TO payload; - --- --- Name: seo_settings_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.seo_settings_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.seo_settings_id_seq OWNER TO payload; - --- --- Name: seo_settings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.seo_settings_id_seq OWNED BY public.seo_settings.id; - - --- --- Name: seo_settings_local_business_opening_hours; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.seo_settings_local_business_opening_hours ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - id character varying NOT NULL, - specification character varying -); - - -ALTER TABLE public.seo_settings_local_business_opening_hours OWNER TO payload; - --- --- Name: seo_settings_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.seo_settings_locales ( - meta_defaults_title_suffix character varying DEFAULT '| Website'::character varying, - meta_defaults_default_description character varying, - organization_description character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id integer NOT NULL -); - - -ALTER TABLE public.seo_settings_locales OWNER TO payload; - --- --- Name: seo_settings_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.seo_settings_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.seo_settings_locales_id_seq OWNER TO payload; - --- --- Name: seo_settings_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.seo_settings_locales_id_seq OWNED BY public.seo_settings_locales.id; - - --- --- Name: seo_settings_social_profiles; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.seo_settings_social_profiles ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - id character varying NOT NULL, - platform public.enum_seo_settings_social_profiles_platform, - url character varying NOT NULL -); - - -ALTER TABLE public.seo_settings_social_profiles OWNER TO payload; - --- --- Name: seo_settings_texts; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.seo_settings_texts ( - id integer NOT NULL, - "order" integer NOT NULL, - parent_id integer NOT NULL, - path character varying NOT NULL, - text character varying -); - - -ALTER TABLE public.seo_settings_texts OWNER TO payload; - --- --- Name: seo_settings_texts_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.seo_settings_texts_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.seo_settings_texts_id_seq OWNER TO payload; - --- --- Name: seo_settings_texts_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.seo_settings_texts_id_seq OWNED BY public.seo_settings_texts.id; - - --- --- Name: site_settings; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.site_settings ( - id integer NOT NULL, - logo_id integer, - favicon_id integer, - contact_email character varying, - contact_phone character varying, - contact_address character varying, - footer_show_social_links boolean DEFAULT true, - seo_default_og_image_id integer, - updated_at timestamp(3) with time zone, - created_at timestamp(3) with time zone -); - - -ALTER TABLE public.site_settings OWNER TO payload; - --- --- Name: site_settings_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.site_settings_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.site_settings_id_seq OWNER TO payload; - --- --- Name: site_settings_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.site_settings_id_seq OWNED BY public.site_settings.id; - - --- --- Name: site_settings_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.site_settings_locales ( - site_name character varying DEFAULT 'porwoll.de'::character varying, - site_tagline character varying, - footer_copyright_text character varying, - seo_default_meta_title character varying, - seo_default_meta_description character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id integer NOT NULL -); - - -ALTER TABLE public.site_settings_locales OWNER TO payload; - --- --- Name: site_settings_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.site_settings_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.site_settings_locales_id_seq OWNER TO payload; - --- --- Name: site_settings_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.site_settings_locales_id_seq OWNED BY public.site_settings_locales.id; - - --- --- Name: social_links; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.social_links ( - id integer NOT NULL, - tenant_id integer, - platform public.enum_social_links_platform NOT NULL, - url character varying NOT NULL, - is_active boolean DEFAULT true, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.social_links OWNER TO payload; - --- --- Name: social_links_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.social_links_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.social_links_id_seq OWNER TO payload; - --- --- Name: social_links_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.social_links_id_seq OWNED BY public.social_links.id; - - --- --- Name: tenants; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.tenants ( - id integer NOT NULL, - name character varying NOT NULL, - slug character varying NOT NULL, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.tenants OWNER TO payload; - --- --- Name: tenants_domains; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.tenants_domains ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - id character varying NOT NULL, - domain character varying NOT NULL -); - - -ALTER TABLE public.tenants_domains OWNER TO payload; - --- --- Name: tenants_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.tenants_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.tenants_id_seq OWNER TO payload; - --- --- Name: tenants_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.tenants_id_seq OWNED BY public.tenants.id; - - --- --- Name: testimonials; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.testimonials ( - id integer NOT NULL, - tenant_id integer, - author character varying NOT NULL, - company character varying, - image_id integer, - rating numeric, - source character varying, - source_url character varying, - date timestamp(3) with time zone, - is_active boolean DEFAULT true, - "order" numeric DEFAULT 0, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL -); - - -ALTER TABLE public.testimonials OWNER TO payload; - --- --- Name: testimonials_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.testimonials_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.testimonials_id_seq OWNER TO payload; - --- --- Name: testimonials_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.testimonials_id_seq OWNED BY public.testimonials.id; - - --- --- Name: testimonials_locales; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.testimonials_locales ( - quote character varying NOT NULL, - role character varying, - id integer NOT NULL, - _locale public._locales NOT NULL, - _parent_id integer NOT NULL -); - - -ALTER TABLE public.testimonials_locales OWNER TO payload; - --- --- Name: testimonials_locales_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.testimonials_locales_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.testimonials_locales_id_seq OWNER TO payload; - --- --- Name: testimonials_locales_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.testimonials_locales_id_seq OWNED BY public.testimonials_locales.id; - - --- --- Name: users; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.users ( - id integer NOT NULL, - updated_at timestamp(3) with time zone DEFAULT now() NOT NULL, - created_at timestamp(3) with time zone DEFAULT now() NOT NULL, - email character varying NOT NULL, - reset_password_token character varying, - reset_password_expiration timestamp(3) with time zone, - salt character varying, - hash character varying, - login_attempts numeric DEFAULT 0, - lock_until timestamp(3) with time zone, - is_super_admin boolean DEFAULT false -); - - -ALTER TABLE public.users OWNER TO payload; - --- --- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: payload --- - -CREATE SEQUENCE public.users_id_seq - AS integer - START WITH 1 - INCREMENT BY 1 - NO MINVALUE - NO MAXVALUE - CACHE 1; - - -ALTER SEQUENCE public.users_id_seq OWNER TO payload; - --- --- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: payload --- - -ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id; - - --- --- Name: users_sessions; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.users_sessions ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - id character varying NOT NULL, - created_at timestamp(3) with time zone, - expires_at timestamp(3) with time zone NOT NULL -); - - -ALTER TABLE public.users_sessions OWNER TO payload; - --- --- Name: users_tenants; Type: TABLE; Schema: public; Owner: payload --- - -CREATE TABLE public.users_tenants ( - _order integer NOT NULL, - _parent_id integer NOT NULL, - id character varying NOT NULL, - tenant_id integer NOT NULL -); - - -ALTER TABLE public.users_tenants OWNER TO payload; - --- --- Name: categories id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.categories ALTER COLUMN id SET DEFAULT nextval('public.categories_id_seq'::regclass); - - --- --- Name: categories_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.categories_locales ALTER COLUMN id SET DEFAULT nextval('public.categories_locales_id_seq'::regclass); - - --- --- Name: consent_logs id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.consent_logs ALTER COLUMN id SET DEFAULT nextval('public.consent_logs_id_seq'::regclass); - - --- --- Name: cookie_configurations id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.cookie_configurations ALTER COLUMN id SET DEFAULT nextval('public.cookie_configurations_id_seq'::regclass); - - --- --- Name: cookie_configurations_enabled_categories id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.cookie_configurations_enabled_categories ALTER COLUMN id SET DEFAULT nextval('public.cookie_configurations_enabled_categories_id_seq'::regclass); - - --- --- Name: cookie_inventory id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.cookie_inventory ALTER COLUMN id SET DEFAULT nextval('public.cookie_inventory_id_seq'::regclass); - - --- --- Name: form_submissions id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.form_submissions ALTER COLUMN id SET DEFAULT nextval('public.form_submissions_id_seq'::regclass); - - --- --- Name: forms id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms ALTER COLUMN id SET DEFAULT nextval('public.forms_id_seq'::regclass); - - --- --- Name: forms_blocks_checkbox_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_checkbox_locales ALTER COLUMN id SET DEFAULT nextval('public.forms_blocks_checkbox_locales_id_seq'::regclass); - - --- --- Name: forms_blocks_email_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_email_locales ALTER COLUMN id SET DEFAULT nextval('public.forms_blocks_email_locales_id_seq'::regclass); - - --- --- Name: forms_blocks_message_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_message_locales ALTER COLUMN id SET DEFAULT nextval('public.forms_blocks_message_locales_id_seq'::regclass); - - --- --- Name: forms_blocks_number_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_number_locales ALTER COLUMN id SET DEFAULT nextval('public.forms_blocks_number_locales_id_seq'::regclass); - - --- --- Name: forms_blocks_select_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_select_locales ALTER COLUMN id SET DEFAULT nextval('public.forms_blocks_select_locales_id_seq'::regclass); - - --- --- Name: forms_blocks_select_options_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_select_options_locales ALTER COLUMN id SET DEFAULT nextval('public.forms_blocks_select_options_locales_id_seq'::regclass); - - --- --- Name: forms_blocks_text_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_text_locales ALTER COLUMN id SET DEFAULT nextval('public.forms_blocks_text_locales_id_seq'::regclass); - - --- --- Name: forms_blocks_textarea_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_textarea_locales ALTER COLUMN id SET DEFAULT nextval('public.forms_blocks_textarea_locales_id_seq'::regclass); - - --- --- Name: forms_emails_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_emails_locales ALTER COLUMN id SET DEFAULT nextval('public.forms_emails_locales_id_seq'::regclass); - - --- --- Name: forms_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_locales ALTER COLUMN id SET DEFAULT nextval('public.forms_locales_id_seq'::regclass); - - --- --- Name: forms_rels id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_rels ALTER COLUMN id SET DEFAULT nextval('public.forms_rels_id_seq'::regclass); - - --- --- Name: media id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.media ALTER COLUMN id SET DEFAULT nextval('public.media_id_seq'::regclass); - - --- --- Name: media_texts id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.media_texts ALTER COLUMN id SET DEFAULT nextval('public.media_texts_id_seq'::regclass); - - --- --- Name: navigation id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation ALTER COLUMN id SET DEFAULT nextval('public.navigation_id_seq'::regclass); - - --- --- Name: navigation_footer_menu_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_footer_menu_locales ALTER COLUMN id SET DEFAULT nextval('public.navigation_footer_menu_locales_id_seq'::regclass); - - --- --- Name: navigation_main_menu_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_main_menu_locales ALTER COLUMN id SET DEFAULT nextval('public.navigation_main_menu_locales_id_seq'::regclass); - - --- --- Name: navigation_main_menu_submenu_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_main_menu_submenu_locales ALTER COLUMN id SET DEFAULT nextval('public.navigation_main_menu_submenu_locales_id_seq'::regclass); - - --- --- Name: newsletter_subscribers id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.newsletter_subscribers ALTER COLUMN id SET DEFAULT nextval('public.newsletter_subscribers_id_seq'::regclass); - - --- --- Name: newsletter_subscribers_interests id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.newsletter_subscribers_interests ALTER COLUMN id SET DEFAULT nextval('public.newsletter_subscribers_interests_id_seq'::regclass); - - --- --- Name: pages id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages ALTER COLUMN id SET DEFAULT nextval('public.pages_id_seq'::regclass); - - --- --- Name: pages_blocks_card_grid_block_cards_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_card_grid_block_cards_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_card_grid_block_cards_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_card_grid_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_card_grid_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_card_grid_block_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_contact_form_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_contact_form_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_contact_form_block_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_cta_block_buttons_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_cta_block_buttons_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_cta_block_buttons_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_cta_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_cta_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_cta_block_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_hero_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_hero_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_hero_block_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_image_text_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_image_text_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_image_text_block_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_newsletter_block_available_interests id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_newsletter_block_available_interests ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_newsletter_block_available_interests_id_seq'::regclass); - - --- --- Name: pages_blocks_newsletter_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_newsletter_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_newsletter_block_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_posts_list_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_posts_list_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_posts_list_block_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_process_steps_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_process_steps_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_process_steps_block_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_process_steps_block_steps_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_process_steps_block_steps_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_process_steps_block_steps_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_quote_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_quote_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_quote_block_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_testimonials_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_testimonials_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_testimonials_block_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_text_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_text_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_text_block_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_timeline_block_items_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_timeline_block_items_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_timeline_block_items_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_timeline_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_timeline_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_timeline_block_locales_id_seq'::regclass); - - --- --- Name: pages_blocks_video_block_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_video_block_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_blocks_video_block_locales_id_seq'::regclass); - - --- --- Name: pages_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_locales ALTER COLUMN id SET DEFAULT nextval('public.pages_locales_id_seq'::regclass); - - --- --- Name: pages_rels id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_rels ALTER COLUMN id SET DEFAULT nextval('public.pages_rels_id_seq'::regclass); - - --- --- Name: payload_kv id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_kv ALTER COLUMN id SET DEFAULT nextval('public.payload_kv_id_seq'::regclass); - - --- --- Name: payload_locked_documents id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents ALTER COLUMN id SET DEFAULT nextval('public.payload_locked_documents_id_seq'::regclass); - - --- --- Name: payload_locked_documents_rels id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels ALTER COLUMN id SET DEFAULT nextval('public.payload_locked_documents_rels_id_seq'::regclass); - - --- --- Name: payload_migrations id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_migrations ALTER COLUMN id SET DEFAULT nextval('public.payload_migrations_id_seq'::regclass); - - --- --- Name: payload_preferences id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_preferences ALTER COLUMN id SET DEFAULT nextval('public.payload_preferences_id_seq'::regclass); - - --- --- Name: payload_preferences_rels id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_preferences_rels ALTER COLUMN id SET DEFAULT nextval('public.payload_preferences_rels_id_seq'::regclass); - - --- --- Name: posts id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.posts ALTER COLUMN id SET DEFAULT nextval('public.posts_id_seq'::regclass); - - --- --- Name: posts_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.posts_locales ALTER COLUMN id SET DEFAULT nextval('public.posts_locales_id_seq'::regclass); - - --- --- Name: posts_rels id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.posts_rels ALTER COLUMN id SET DEFAULT nextval('public.posts_rels_id_seq'::regclass); - - --- --- Name: privacy_policy_settings id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.privacy_policy_settings ALTER COLUMN id SET DEFAULT nextval('public.privacy_policy_settings_id_seq'::regclass); - - --- --- Name: redirects id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.redirects ALTER COLUMN id SET DEFAULT nextval('public.redirects_id_seq'::regclass); - - --- --- Name: redirects_rels id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.redirects_rels ALTER COLUMN id SET DEFAULT nextval('public.redirects_rels_id_seq'::regclass); - - --- --- Name: seo_settings id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings ALTER COLUMN id SET DEFAULT nextval('public.seo_settings_id_seq'::regclass); - - --- --- Name: seo_settings_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings_locales ALTER COLUMN id SET DEFAULT nextval('public.seo_settings_locales_id_seq'::regclass); - - --- --- Name: seo_settings_texts id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings_texts ALTER COLUMN id SET DEFAULT nextval('public.seo_settings_texts_id_seq'::regclass); - - --- --- Name: site_settings id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.site_settings ALTER COLUMN id SET DEFAULT nextval('public.site_settings_id_seq'::regclass); - - --- --- Name: site_settings_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.site_settings_locales ALTER COLUMN id SET DEFAULT nextval('public.site_settings_locales_id_seq'::regclass); - - --- --- Name: social_links id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.social_links ALTER COLUMN id SET DEFAULT nextval('public.social_links_id_seq'::regclass); - - --- --- Name: tenants id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.tenants ALTER COLUMN id SET DEFAULT nextval('public.tenants_id_seq'::regclass); - - --- --- Name: testimonials id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.testimonials ALTER COLUMN id SET DEFAULT nextval('public.testimonials_id_seq'::regclass); - - --- --- Name: testimonials_locales id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.testimonials_locales ALTER COLUMN id SET DEFAULT nextval('public.testimonials_locales_id_seq'::regclass); - - --- --- Name: users id; Type: DEFAULT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass); - - --- --- Data for Name: categories; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.categories (id, tenant_id, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: categories_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.categories_locales (name, slug, description, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: consent_logs; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.consent_logs (id, consent_id, client_ref, tenant_id, categories, revision, user_agent, anonymized_ip, expires_at, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: cookie_configurations; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.cookie_configurations (id, tenant_id, title, revision, translations_de_banner_title, translations_de_banner_description, translations_de_accept_all_button, translations_de_accept_necessary_button, translations_de_settings_button, translations_de_save_button, translations_de_privacy_policy_url, translations_de_category_labels_necessary_title, translations_de_category_labels_necessary_description, translations_de_category_labels_functional_title, translations_de_category_labels_functional_description, translations_de_category_labels_analytics_title, translations_de_category_labels_analytics_description, translations_de_category_labels_marketing_title, translations_de_category_labels_marketing_description, styling_position, styling_theme, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: cookie_configurations_enabled_categories; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.cookie_configurations_enabled_categories ("order", parent_id, value, id) FROM stdin; -\. - - --- --- Data for Name: cookie_inventory; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.cookie_inventory (id, tenant_id, name, provider, category, duration, description, is_active, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: form_submissions; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.form_submissions (id, form_id, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: form_submissions_submission_data; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.form_submissions_submission_data (_order, _parent_id, id, field, value) FROM stdin; -\. - - --- --- Data for Name: forms; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms (id, title, confirmation_type, redirect_url, updated_at, created_at, redirect_type) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_checkbox; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_checkbox (_order, _parent_id, _path, id, name, width, required, default_value, block_name) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_checkbox_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_checkbox_locales (label, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_email; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_email (_order, _parent_id, _path, id, name, width, required, block_name) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_email_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_email_locales (label, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_message; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_message (_order, _parent_id, _path, id, block_name) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_message_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_message_locales (message, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_number; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_number (_order, _parent_id, _path, id, name, width, default_value, required, block_name) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_number_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_number_locales (label, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_select; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_select (_order, _parent_id, _path, id, name, width, placeholder, required, block_name) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_select_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_select_locales (label, default_value, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_select_options; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_select_options (_order, _parent_id, id, value) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_select_options_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_select_options_locales (label, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_text; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_text (_order, _parent_id, _path, id, name, width, required, block_name) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_text_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_text_locales (label, default_value, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_textarea; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_textarea (_order, _parent_id, _path, id, name, width, required, block_name) FROM stdin; -\. - - --- --- Data for Name: forms_blocks_textarea_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_blocks_textarea_locales (label, default_value, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: forms_emails; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_emails (_order, _parent_id, id, email_to, cc, bcc, reply_to, email_from) FROM stdin; -\. - - --- --- Data for Name: forms_emails_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_emails_locales (subject, message, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: forms_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_locales (submit_button_label, confirmation_message, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: forms_rels; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.forms_rels (id, "order", parent_id, path, pages_id) FROM stdin; -\. - - --- --- Data for Name: media; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.media (id, tenant_id, alt, caption, credit, updated_at, created_at, url, thumbnail_u_r_l, filename, mime_type, filesize, width, height, focal_x, focal_y, sizes_thumbnail_url, sizes_thumbnail_width, sizes_thumbnail_height, sizes_thumbnail_mime_type, sizes_thumbnail_filesize, sizes_thumbnail_filename, sizes_small_url, sizes_small_width, sizes_small_height, sizes_small_mime_type, sizes_small_filesize, sizes_small_filename, sizes_medium_url, sizes_medium_width, sizes_medium_height, sizes_medium_mime_type, sizes_medium_filesize, sizes_medium_filename, sizes_large_url, sizes_large_width, sizes_large_height, sizes_large_mime_type, sizes_large_filesize, sizes_large_filename, sizes_xlarge_url, sizes_xlarge_width, sizes_xlarge_height, sizes_xlarge_mime_type, sizes_xlarge_filesize, sizes_xlarge_filename, sizes_2k_url, sizes_2k_width, sizes_2k_height, sizes_2k_mime_type, sizes_2k_filesize, sizes_2k_filename, sizes_og_url, sizes_og_width, sizes_og_height, sizes_og_mime_type, sizes_og_filesize, sizes_og_filename, sizes_medium_avif_url, sizes_medium_avif_width, sizes_medium_avif_height, sizes_medium_avif_mime_type, sizes_medium_avif_filesize, sizes_medium_avif_filename, sizes_large_avif_url, sizes_large_avif_width, sizes_large_avif_height, sizes_large_avif_mime_type, sizes_large_avif_filesize, sizes_large_avif_filename, sizes_xlarge_avif_url, sizes_xlarge_avif_width, sizes_xlarge_avif_height, sizes_xlarge_avif_mime_type, sizes_xlarge_avif_filesize, sizes_xlarge_avif_filename) FROM stdin; -\. - - --- --- Data for Name: media_texts; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.media_texts (id, "order", parent_id, path, text) FROM stdin; -\. - - --- --- Data for Name: navigation; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.navigation (id, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: navigation_footer_menu; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.navigation_footer_menu (_order, _parent_id, id, link_type, page_id, url) FROM stdin; -\. - - --- --- Data for Name: navigation_footer_menu_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.navigation_footer_menu_locales (label, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: navigation_main_menu; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.navigation_main_menu (_order, _parent_id, id, type, page_id, url, open_in_new_tab) FROM stdin; -\. - - --- --- Data for Name: navigation_main_menu_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.navigation_main_menu_locales (label, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: navigation_main_menu_submenu; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.navigation_main_menu_submenu (_order, _parent_id, id, link_type, page_id, url) FROM stdin; -\. - - --- --- Data for Name: navigation_main_menu_submenu_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.navigation_main_menu_submenu_locales (label, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: newsletter_subscribers; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.newsletter_subscribers (id, tenant_id, email, first_name, last_name, status, source, subscribed_at, confirmed_at, unsubscribed_at, confirmation_token, ip_address, user_agent, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: newsletter_subscribers_interests; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.newsletter_subscribers_interests ("order", parent_id, value, id) FROM stdin; -\. - - --- --- Data for Name: pages; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages (id, tenant_id, hero_image_id, seo_og_image_id, status, published_at, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_card_grid_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_card_grid_block (_order, _parent_id, _path, id, columns, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_card_grid_block_cards; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_card_grid_block_cards (_order, _parent_id, id, image_id, link) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_card_grid_block_cards_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_card_grid_block_cards_locales (title, description, link_text, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_card_grid_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_card_grid_block_locales (headline, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_contact_form_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_contact_form_block (_order, _parent_id, _path, id, recipient_email, show_phone, show_address, show_socials, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_contact_form_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_contact_form_block_locales (headline, description, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_cta_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_cta_block (_order, _parent_id, _path, id, background_color, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_cta_block_buttons; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_cta_block_buttons (_order, _parent_id, id, link, style) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_cta_block_buttons_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_cta_block_buttons_locales (text, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_cta_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_cta_block_locales (headline, description, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_divider_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_divider_block (_order, _parent_id, _path, id, style, spacing, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_hero_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_hero_block (_order, _parent_id, _path, id, background_image_id, alignment, "overlay", cta_link, cta_style, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_hero_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_hero_block_locales (headline, subline, cta_text, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_image_text_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_image_text_block (_order, _parent_id, _path, id, image_id, image_position, cta_link, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_image_text_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_image_text_block_locales (headline, content, cta_text, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_newsletter_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_newsletter_block (_order, _parent_id, _path, id, layout, image_id, image_position, collect_name, show_interests, privacy_link, source, background_color, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_newsletter_block_available_interests; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_newsletter_block_available_interests ("order", parent_id, value, id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_newsletter_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_newsletter_block_locales (title, subtitle, button_text, placeholder_email, success_message, error_message, privacy_text, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_posts_list_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_posts_list_block (_order, _parent_id, _path, id, post_type, layout, columns, "limit", show_featured_only, show_excerpt, show_date, show_author, show_category, show_pagination, show_read_more, read_more_link, background_color, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_posts_list_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_posts_list_block_locales (title, subtitle, read_more_label, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_process_steps_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_process_steps_block (_order, _parent_id, _path, id, layout, show_numbers, show_icons, cta_show, cta_href, cta_variant, background_color, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_process_steps_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_process_steps_block_locales (title, subtitle, cta_label, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_process_steps_block_steps; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_process_steps_block_steps (_order, _parent_id, id, icon, image_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_process_steps_block_steps_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_process_steps_block_steps_locales (title, description, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_quote_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_quote_block (_order, _parent_id, _path, id, author, image_id, style, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_quote_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_quote_block_locales (quote, role, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_testimonials_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_testimonials_block (_order, _parent_id, _path, id, layout, columns, display_mode, "limit", show_rating, show_image, show_company, show_source, autoplay, autoplay_speed, background_color, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_testimonials_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_testimonials_block_locales (title, subtitle, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_text_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_text_block (_order, _parent_id, _path, id, width, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_text_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_text_block_locales (content, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_timeline_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_timeline_block (_order, _parent_id, _path, id, layout, show_connector, marker_style, background_color, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_timeline_block_items; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_timeline_block_items (_order, _parent_id, id, year, icon, image_id, link_href) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_timeline_block_items_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_timeline_block_items_locales (title, description, link_label, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_timeline_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_timeline_block_locales (title, subtitle, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_video_block; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_video_block (_order, _parent_id, _path, id, video_url, aspect_ratio, block_name) FROM stdin; -\. - - --- --- Data for Name: pages_blocks_video_block_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_blocks_video_block_locales (caption, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_locales (title, slug, hero_headline, hero_subline, seo_meta_title, seo_meta_description, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: pages_rels; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.pages_rels (id, "order", parent_id, path, categories_id, testimonials_id) FROM stdin; -\. - - --- --- Data for Name: payload_kv; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.payload_kv (id, key, data) FROM stdin; -\. - - --- --- Data for Name: payload_locked_documents; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.payload_locked_documents (id, global_slug, updated_at, created_at) FROM stdin; -1 site-settings 2025-12-02 15:43:49.681+00 2025-12-02 15:43:49.681+00 -\. - - --- --- Data for Name: payload_locked_documents_rels; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.payload_locked_documents_rels (id, "order", parent_id, path, users_id, media_id, tenants_id, pages_id, posts_id, categories_id, social_links_id, testimonials_id, newsletter_subscribers_id, cookie_configurations_id, cookie_inventory_id, consent_logs_id, privacy_policy_settings_id, forms_id, form_submissions_id, redirects_id) FROM stdin; -1 \N 1 user 1 \N \N \N \N \N \N \N \N \N \N \N \N \N \N \N -\. - - --- --- Data for Name: payload_migrations; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.payload_migrations (id, name, batch, updated_at, created_at) FROM stdin; -1 20251130_213501_initial_with_localization 1 2025-11-30 21:35:15.338+00 2025-11-30 21:35:15.337+00 -2 20251202_081830_add_is_super_admin_to_users 2 2025-12-02 08:18:44.432+00 2025-12-02 08:18:44.43+00 -\. - - --- --- Data for Name: payload_preferences; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.payload_preferences (id, key, value, updated_at, created_at) FROM stdin; -2 collection-users {} 2025-12-02 10:51:41.31+00 2025-12-02 10:51:41.31+00 -1 collection-tenants {"limit": 10} 2025-12-02 15:33:36.323+00 2025-12-02 08:00:04.309+00 -3 nav {"open": true} 2025-12-02 15:43:27.745+00 2025-12-02 15:43:27.088+00 -4 collection-privacy-policy-settings {"limit": 10} 2025-12-03 07:06:23.293+00 2025-12-03 07:06:10.362+00 -\. - - --- --- Data for Name: payload_preferences_rels; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.payload_preferences_rels (id, "order", parent_id, path, users_id) FROM stdin; -2 \N 2 user 1 -3 \N 1 user 1 -5 \N 3 user 1 -7 \N 4 user 1 -\. - - --- --- Data for Name: posts; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.posts (id, tenant_id, type, is_featured, featured_image_id, author, status, published_at, seo_og_image_id, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: posts_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.posts_locales (title, slug, excerpt, content, seo_meta_title, seo_meta_description, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: posts_rels; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.posts_rels (id, "order", parent_id, path, categories_id) FROM stdin; -\. - - --- --- Data for Name: privacy_policy_settings; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.privacy_policy_settings (id, tenant_id, title, provider, alfright_tenant_id, alfright_api_key, alfright_language, alfright_iframe_height, styling_header_color, styling_header_font, styling_header_size, styling_subheader_size, styling_font_color, styling_text_font, styling_text_size, styling_link_color, styling_background_color, show_cookie_table, cookie_table_title, cookie_table_description, seo_meta_title, seo_meta_description, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: redirects; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.redirects (id, "from", to_type, to_url, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: redirects_rels; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.redirects_rels (id, "order", parent_id, path, pages_id) FROM stdin; -\. - - --- --- Data for Name: seo_settings; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.seo_settings (id, meta_defaults_default_og_image_id, organization_name, organization_legal_name, organization_logo_id, organization_founding_date, contact_email, contact_phone, contact_fax, address_street, address_postal_code, address_city, address_region, address_country, address_country_code, geo_latitude, geo_longitude, local_business_enabled, local_business_type, local_business_price_range, robots_allow_indexing, verification_google, verification_bing, verification_yandex, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: seo_settings_local_business_opening_hours; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.seo_settings_local_business_opening_hours (_order, _parent_id, id, specification) FROM stdin; -\. - - --- --- Data for Name: seo_settings_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.seo_settings_locales (meta_defaults_title_suffix, meta_defaults_default_description, organization_description, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: seo_settings_social_profiles; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.seo_settings_social_profiles (_order, _parent_id, id, platform, url) FROM stdin; -\. - - --- --- Data for Name: seo_settings_texts; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.seo_settings_texts (id, "order", parent_id, path, text) FROM stdin; -\. - - --- --- Data for Name: site_settings; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.site_settings (id, logo_id, favicon_id, contact_email, contact_phone, contact_address, footer_show_social_links, seo_default_og_image_id, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: site_settings_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.site_settings_locales (site_name, site_tagline, footer_copyright_text, seo_default_meta_title, seo_default_meta_description, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: social_links; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.social_links (id, tenant_id, platform, url, is_active, updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: tenants; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.tenants (id, name, slug, updated_at, created_at) FROM stdin; -4 porwoll.de porwoll 2025-12-02 10:52:08.337+00 2025-12-02 10:52:08.336+00 -5 zytoskandal.de zytoskandal 2025-12-02 15:00:01.804+00 2025-12-02 15:00:01.802+00 -7 caroline-porwoll.com caroline-porwoll-com 2025-12-02 15:35:02.448+00 2025-12-02 15:35:02.448+00 -8 caroline-porwoll.de caroline-porwoll 2025-12-02 15:35:41.834+00 2025-12-02 15:35:41.834+00 -9 blogwoman.de blogwoman 2025-12-02 15:41:10.139+00 2025-12-02 15:41:10.139+00 -10 complexcaresolutions.de complexcaresolutions 2025-12-02 15:42:03.669+00 2025-12-02 15:42:03.669+00 -11 gunshin.de gunshin 2025-12-02 15:42:30.182+00 2025-12-02 15:42:30.182+00 -12 zweitmeinu.ng zweitmeinung 2025-12-02 15:43:13.271+00 2025-12-02 15:43:13.27+00 -13 sensualmoment.de sensualmoment 2025-12-03 09:49:24.229+00 2025-12-03 09:49:24.228+00 -\. - - --- --- Data for Name: tenants_domains; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.tenants_domains (_order, _parent_id, id, domain) FROM stdin; -1 4 692ec4b4344f54fc922890c6 porwoll.de -2 4 692ec4b7344f54fc922890c7 www.porwoll.de -1 5 692efecc344f54fc922890c8 zytoskandal.de -2 5 692efece344f54fc922890c9 www.zytoskandal.de -1 7 692f070307e48b0e1d52dc78 caroline-porwoll.com -2 7 692f070507e48b0e1d52dc79 www.caroline-porwoll.com -1 8 692f072807e48b0e1d52dc7a caroline-porwoll.de -2 8 692f072b07e48b0e1d52dc7b www.caroline-porwoll.de -1 9 692f087107e48b0e1d52dc7c blogwoman.de -2 9 692f087407e48b0e1d52dc7d www.blogwoman.de -1 10 692f08a307e48b0e1d52dc7e complexcaresolutions.de -2 10 692f08a807e48b0e1d52dc7f www.complexcaresolutions.de -1 11 692f08bb07e48b0e1d52dc80 gunshin.de -2 11 692f08c207e48b0e1d52dc81 www.gunshin.de -1 12 692f08ed07e48b0e1d52dc82 zweitmeinu.ng -2 12 692f08f007e48b0e1d52dc83 www.zweitmeinu.ng -1 13 69300779795b97064bb76416 sensualmoment.de -2 13 6930077c795b97064bb76417 www.sensualmoment.de -\. - - --- --- Data for Name: testimonials; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.testimonials (id, tenant_id, author, company, image_id, rating, source, source_url, date, is_active, "order", updated_at, created_at) FROM stdin; -\. - - --- --- Data for Name: testimonials_locales; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.testimonials_locales (quote, role, id, _locale, _parent_id) FROM stdin; -\. - - --- --- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.users (id, updated_at, created_at, email, reset_password_token, reset_password_expiration, salt, hash, login_attempts, lock_until, is_super_admin) FROM stdin; -1 2025-12-02 07:59:47.556+00 2025-12-02 07:59:47.555+00 martin.porwoll@complexcaresolutions.de \N \N 5eba0b229d015ae7bd7d2b6515588e294587bc1565bd1dbad077d45902e100c4 8bdb763ef70ce02affdd0ffa639b36b2ff2203a80b41d045fda3de7417d3ff7adc270e9058e16b4aedcd5318d2232c9da89edbba680a09fc4d78702dc2af0e322f583d6502950d1bb0565d4c35e461effcea90abff11022cfd2b3b44800dcb6dcb161cb67fb1fa4e179ee8ed9e694303709075a5ae4a13eb3d90a424a12171e06b6b0f16e854cb6fa22c04de08564daa153c2650d3fd31e6b3c64afe5bb0a82d3a1ab7ee85aa5d36dc948a91a09b5ebf26ce391c16c0fd3293b61027d20d4b7b581bbbd6321920c51e61f09fe8f18cfe1436d7a107daeb1910086f69b76ecaccf3143317e0a26f422baaeee9f93685eae9df75ae9f450e821014ca13ebb31aceb8818e8eb397cd40ee60e4cb6832cbfd24270f617492cb729766ee80544d604a9b8db20c9d53617243851d1821a451db79c5f1edf19e745965060442b33e0b2709aca6dfe4c03cb44b53627698b0fa1c173f4ad5004ae5e0c0f5ae186d425c7234906b34121d64d1c73b212bcea96ab034bfda95b4bc396e62c21f0063e09c296cd7aec54be403d303b8a4f4ec7702832734bec08a31f975990c3ce0d62fa008355887fef7cb2ce9a92f3a285ac2065d888c2e196e99a3c8cc9e848b6f29028c18fb5cdd77d598858fc1be4843405ad92deb89f0f2c9d0ae2a10f2e23ea95ec9c2cf152e57f1e0433ee226ae1c1221bdf5eb6663809ce4c59b367b362efe6522 0 \N t -\. - - --- --- Data for Name: users_sessions; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.users_sessions (_order, _parent_id, id, created_at, expires_at) FROM stdin; -1 1 3bae53de-076a-4ec8-a151-823f06b2ef35 2025-12-03 23:41:34.504+00 2025-12-04 01:41:34.504+00 -\. - - --- --- Data for Name: users_tenants; Type: TABLE DATA; Schema: public; Owner: payload --- - -COPY public.users_tenants (_order, _parent_id, id, tenant_id) FROM stdin; -\. - - --- --- Name: categories_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.categories_id_seq', 1, false); - - --- --- Name: categories_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.categories_locales_id_seq', 1, false); - - --- --- Name: consent_logs_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.consent_logs_id_seq', 1, false); - - --- --- Name: cookie_configurations_enabled_categories_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.cookie_configurations_enabled_categories_id_seq', 1, false); - - --- --- Name: cookie_configurations_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.cookie_configurations_id_seq', 1, false); - - --- --- Name: cookie_inventory_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.cookie_inventory_id_seq', 1, false); - - --- --- Name: form_submissions_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.form_submissions_id_seq', 1, false); - - --- --- Name: forms_blocks_checkbox_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.forms_blocks_checkbox_locales_id_seq', 1, false); - - --- --- Name: forms_blocks_email_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.forms_blocks_email_locales_id_seq', 1, false); - - --- --- Name: forms_blocks_message_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.forms_blocks_message_locales_id_seq', 1, false); - - --- --- Name: forms_blocks_number_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.forms_blocks_number_locales_id_seq', 1, false); - - --- --- Name: forms_blocks_select_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.forms_blocks_select_locales_id_seq', 1, false); - - --- --- Name: forms_blocks_select_options_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.forms_blocks_select_options_locales_id_seq', 1, false); - - --- --- Name: forms_blocks_text_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.forms_blocks_text_locales_id_seq', 1, false); - - --- --- Name: forms_blocks_textarea_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.forms_blocks_textarea_locales_id_seq', 1, false); - - --- --- Name: forms_emails_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.forms_emails_locales_id_seq', 1, false); - - --- --- Name: forms_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.forms_id_seq', 1, false); - - --- --- Name: forms_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.forms_locales_id_seq', 1, false); - - --- --- Name: forms_rels_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.forms_rels_id_seq', 1, false); - - --- --- Name: media_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.media_id_seq', 1, false); - - --- --- Name: media_texts_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.media_texts_id_seq', 1, false); - - --- --- Name: navigation_footer_menu_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.navigation_footer_menu_locales_id_seq', 1, false); - - --- --- Name: navigation_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.navigation_id_seq', 1, false); - - --- --- Name: navigation_main_menu_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.navigation_main_menu_locales_id_seq', 1, false); - - --- --- Name: navigation_main_menu_submenu_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.navigation_main_menu_submenu_locales_id_seq', 1, false); - - --- --- Name: newsletter_subscribers_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.newsletter_subscribers_id_seq', 1, false); - - --- --- Name: newsletter_subscribers_interests_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.newsletter_subscribers_interests_id_seq', 1, false); - - --- --- Name: pages_blocks_card_grid_block_cards_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_card_grid_block_cards_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_card_grid_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_card_grid_block_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_contact_form_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_contact_form_block_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_cta_block_buttons_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_cta_block_buttons_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_cta_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_cta_block_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_hero_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_hero_block_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_image_text_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_image_text_block_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_newsletter_block_available_interests_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_newsletter_block_available_interests_id_seq', 1, false); - - --- --- Name: pages_blocks_newsletter_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_newsletter_block_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_posts_list_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_posts_list_block_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_process_steps_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_process_steps_block_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_process_steps_block_steps_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_process_steps_block_steps_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_quote_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_quote_block_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_testimonials_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_testimonials_block_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_text_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_text_block_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_timeline_block_items_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_timeline_block_items_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_timeline_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_timeline_block_locales_id_seq', 1, false); - - --- --- Name: pages_blocks_video_block_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_blocks_video_block_locales_id_seq', 1, false); - - --- --- Name: pages_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_id_seq', 1, false); - - --- --- Name: pages_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_locales_id_seq', 1, false); - - --- --- Name: pages_rels_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.pages_rels_id_seq', 1, false); - - --- --- Name: payload_kv_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.payload_kv_id_seq', 1, false); - - --- --- Name: payload_locked_documents_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.payload_locked_documents_id_seq', 1, true); - - --- --- Name: payload_locked_documents_rels_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.payload_locked_documents_rels_id_seq', 1, true); - - --- --- Name: payload_migrations_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.payload_migrations_id_seq', 2, true); - - --- --- Name: payload_preferences_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.payload_preferences_id_seq', 4, true); - - --- --- Name: payload_preferences_rels_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.payload_preferences_rels_id_seq', 7, true); - - --- --- Name: posts_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.posts_id_seq', 1, false); - - --- --- Name: posts_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.posts_locales_id_seq', 1, false); - - --- --- Name: posts_rels_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.posts_rels_id_seq', 1, false); - - --- --- Name: privacy_policy_settings_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.privacy_policy_settings_id_seq', 1, false); - - --- --- Name: redirects_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.redirects_id_seq', 1, false); - - --- --- Name: redirects_rels_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.redirects_rels_id_seq', 1, false); - - --- --- Name: seo_settings_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.seo_settings_id_seq', 1, false); - - --- --- Name: seo_settings_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.seo_settings_locales_id_seq', 1, false); - - --- --- Name: seo_settings_texts_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.seo_settings_texts_id_seq', 1, false); - - --- --- Name: site_settings_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.site_settings_id_seq', 1, false); - - --- --- Name: site_settings_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.site_settings_locales_id_seq', 1, false); - - --- --- Name: social_links_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.social_links_id_seq', 1, false); - - --- --- Name: tenants_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.tenants_id_seq', 13, true); - - --- --- Name: testimonials_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.testimonials_id_seq', 1, false); - - --- --- Name: testimonials_locales_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.testimonials_locales_id_seq', 1, false); - - --- --- Name: users_id_seq; Type: SEQUENCE SET; Schema: public; Owner: payload --- - -SELECT pg_catalog.setval('public.users_id_seq', 1, true); - - --- --- Name: categories_locales categories_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.categories_locales - ADD CONSTRAINT categories_locales_pkey PRIMARY KEY (id); - - --- --- Name: categories categories_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.categories - ADD CONSTRAINT categories_pkey PRIMARY KEY (id); - - --- --- Name: consent_logs consent_logs_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.consent_logs - ADD CONSTRAINT consent_logs_pkey PRIMARY KEY (id); - - --- --- Name: cookie_configurations_enabled_categories cookie_configurations_enabled_categories_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.cookie_configurations_enabled_categories - ADD CONSTRAINT cookie_configurations_enabled_categories_pkey PRIMARY KEY (id); - - --- --- Name: cookie_configurations cookie_configurations_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.cookie_configurations - ADD CONSTRAINT cookie_configurations_pkey PRIMARY KEY (id); - - --- --- Name: cookie_inventory cookie_inventory_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.cookie_inventory - ADD CONSTRAINT cookie_inventory_pkey PRIMARY KEY (id); - - --- --- Name: form_submissions form_submissions_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.form_submissions - ADD CONSTRAINT form_submissions_pkey PRIMARY KEY (id); - - --- --- Name: form_submissions_submission_data form_submissions_submission_data_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.form_submissions_submission_data - ADD CONSTRAINT form_submissions_submission_data_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_checkbox_locales forms_blocks_checkbox_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_checkbox_locales - ADD CONSTRAINT forms_blocks_checkbox_locales_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_checkbox forms_blocks_checkbox_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_checkbox - ADD CONSTRAINT forms_blocks_checkbox_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_email_locales forms_blocks_email_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_email_locales - ADD CONSTRAINT forms_blocks_email_locales_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_email forms_blocks_email_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_email - ADD CONSTRAINT forms_blocks_email_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_message_locales forms_blocks_message_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_message_locales - ADD CONSTRAINT forms_blocks_message_locales_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_message forms_blocks_message_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_message - ADD CONSTRAINT forms_blocks_message_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_number_locales forms_blocks_number_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_number_locales - ADD CONSTRAINT forms_blocks_number_locales_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_number forms_blocks_number_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_number - ADD CONSTRAINT forms_blocks_number_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_select_locales forms_blocks_select_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_select_locales - ADD CONSTRAINT forms_blocks_select_locales_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_select_options_locales forms_blocks_select_options_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_select_options_locales - ADD CONSTRAINT forms_blocks_select_options_locales_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_select_options forms_blocks_select_options_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_select_options - ADD CONSTRAINT forms_blocks_select_options_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_select forms_blocks_select_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_select - ADD CONSTRAINT forms_blocks_select_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_text_locales forms_blocks_text_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_text_locales - ADD CONSTRAINT forms_blocks_text_locales_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_text forms_blocks_text_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_text - ADD CONSTRAINT forms_blocks_text_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_textarea_locales forms_blocks_textarea_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_textarea_locales - ADD CONSTRAINT forms_blocks_textarea_locales_pkey PRIMARY KEY (id); - - --- --- Name: forms_blocks_textarea forms_blocks_textarea_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_textarea - ADD CONSTRAINT forms_blocks_textarea_pkey PRIMARY KEY (id); - - --- --- Name: forms_emails_locales forms_emails_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_emails_locales - ADD CONSTRAINT forms_emails_locales_pkey PRIMARY KEY (id); - - --- --- Name: forms_emails forms_emails_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_emails - ADD CONSTRAINT forms_emails_pkey PRIMARY KEY (id); - - --- --- Name: forms_locales forms_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_locales - ADD CONSTRAINT forms_locales_pkey PRIMARY KEY (id); - - --- --- Name: forms forms_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms - ADD CONSTRAINT forms_pkey PRIMARY KEY (id); - - --- --- Name: forms_rels forms_rels_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_rels - ADD CONSTRAINT forms_rels_pkey PRIMARY KEY (id); - - --- --- Name: media media_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.media - ADD CONSTRAINT media_pkey PRIMARY KEY (id); - - --- --- Name: media_texts media_texts_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.media_texts - ADD CONSTRAINT media_texts_pkey PRIMARY KEY (id); - - --- --- Name: navigation_footer_menu_locales navigation_footer_menu_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_footer_menu_locales - ADD CONSTRAINT navigation_footer_menu_locales_pkey PRIMARY KEY (id); - - --- --- Name: navigation_footer_menu navigation_footer_menu_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_footer_menu - ADD CONSTRAINT navigation_footer_menu_pkey PRIMARY KEY (id); - - --- --- Name: navigation_main_menu_locales navigation_main_menu_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_main_menu_locales - ADD CONSTRAINT navigation_main_menu_locales_pkey PRIMARY KEY (id); - - --- --- Name: navigation_main_menu navigation_main_menu_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_main_menu - ADD CONSTRAINT navigation_main_menu_pkey PRIMARY KEY (id); - - --- --- Name: navigation_main_menu_submenu_locales navigation_main_menu_submenu_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_main_menu_submenu_locales - ADD CONSTRAINT navigation_main_menu_submenu_locales_pkey PRIMARY KEY (id); - - --- --- Name: navigation_main_menu_submenu navigation_main_menu_submenu_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_main_menu_submenu - ADD CONSTRAINT navigation_main_menu_submenu_pkey PRIMARY KEY (id); - - --- --- Name: navigation navigation_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation - ADD CONSTRAINT navigation_pkey PRIMARY KEY (id); - - --- --- Name: newsletter_subscribers_interests newsletter_subscribers_interests_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.newsletter_subscribers_interests - ADD CONSTRAINT newsletter_subscribers_interests_pkey PRIMARY KEY (id); - - --- --- Name: newsletter_subscribers newsletter_subscribers_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.newsletter_subscribers - ADD CONSTRAINT newsletter_subscribers_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_card_grid_block_cards_locales pages_blocks_card_grid_block_cards_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_card_grid_block_cards_locales - ADD CONSTRAINT pages_blocks_card_grid_block_cards_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_card_grid_block_cards pages_blocks_card_grid_block_cards_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_card_grid_block_cards - ADD CONSTRAINT pages_blocks_card_grid_block_cards_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_card_grid_block_locales pages_blocks_card_grid_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_card_grid_block_locales - ADD CONSTRAINT pages_blocks_card_grid_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_card_grid_block pages_blocks_card_grid_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_card_grid_block - ADD CONSTRAINT pages_blocks_card_grid_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_contact_form_block_locales pages_blocks_contact_form_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_contact_form_block_locales - ADD CONSTRAINT pages_blocks_contact_form_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_contact_form_block pages_blocks_contact_form_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_contact_form_block - ADD CONSTRAINT pages_blocks_contact_form_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_cta_block_buttons_locales pages_blocks_cta_block_buttons_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_cta_block_buttons_locales - ADD CONSTRAINT pages_blocks_cta_block_buttons_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_cta_block_buttons pages_blocks_cta_block_buttons_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_cta_block_buttons - ADD CONSTRAINT pages_blocks_cta_block_buttons_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_cta_block_locales pages_blocks_cta_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_cta_block_locales - ADD CONSTRAINT pages_blocks_cta_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_cta_block pages_blocks_cta_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_cta_block - ADD CONSTRAINT pages_blocks_cta_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_divider_block pages_blocks_divider_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_divider_block - ADD CONSTRAINT pages_blocks_divider_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_hero_block_locales pages_blocks_hero_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_hero_block_locales - ADD CONSTRAINT pages_blocks_hero_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_hero_block pages_blocks_hero_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_hero_block - ADD CONSTRAINT pages_blocks_hero_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_image_text_block_locales pages_blocks_image_text_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_image_text_block_locales - ADD CONSTRAINT pages_blocks_image_text_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_image_text_block pages_blocks_image_text_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_image_text_block - ADD CONSTRAINT pages_blocks_image_text_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_newsletter_block_available_interests pages_blocks_newsletter_block_available_interests_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_newsletter_block_available_interests - ADD CONSTRAINT pages_blocks_newsletter_block_available_interests_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_newsletter_block_locales pages_blocks_newsletter_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_newsletter_block_locales - ADD CONSTRAINT pages_blocks_newsletter_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_newsletter_block pages_blocks_newsletter_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_newsletter_block - ADD CONSTRAINT pages_blocks_newsletter_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_posts_list_block_locales pages_blocks_posts_list_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_posts_list_block_locales - ADD CONSTRAINT pages_blocks_posts_list_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_posts_list_block pages_blocks_posts_list_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_posts_list_block - ADD CONSTRAINT pages_blocks_posts_list_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_process_steps_block_locales pages_blocks_process_steps_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_process_steps_block_locales - ADD CONSTRAINT pages_blocks_process_steps_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_process_steps_block pages_blocks_process_steps_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_process_steps_block - ADD CONSTRAINT pages_blocks_process_steps_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_process_steps_block_steps_locales pages_blocks_process_steps_block_steps_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_process_steps_block_steps_locales - ADD CONSTRAINT pages_blocks_process_steps_block_steps_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_process_steps_block_steps pages_blocks_process_steps_block_steps_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_process_steps_block_steps - ADD CONSTRAINT pages_blocks_process_steps_block_steps_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_quote_block_locales pages_blocks_quote_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_quote_block_locales - ADD CONSTRAINT pages_blocks_quote_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_quote_block pages_blocks_quote_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_quote_block - ADD CONSTRAINT pages_blocks_quote_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_testimonials_block_locales pages_blocks_testimonials_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_testimonials_block_locales - ADD CONSTRAINT pages_blocks_testimonials_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_testimonials_block pages_blocks_testimonials_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_testimonials_block - ADD CONSTRAINT pages_blocks_testimonials_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_text_block_locales pages_blocks_text_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_text_block_locales - ADD CONSTRAINT pages_blocks_text_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_text_block pages_blocks_text_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_text_block - ADD CONSTRAINT pages_blocks_text_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_timeline_block_items_locales pages_blocks_timeline_block_items_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_timeline_block_items_locales - ADD CONSTRAINT pages_blocks_timeline_block_items_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_timeline_block_items pages_blocks_timeline_block_items_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_timeline_block_items - ADD CONSTRAINT pages_blocks_timeline_block_items_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_timeline_block_locales pages_blocks_timeline_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_timeline_block_locales - ADD CONSTRAINT pages_blocks_timeline_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_timeline_block pages_blocks_timeline_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_timeline_block - ADD CONSTRAINT pages_blocks_timeline_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_video_block_locales pages_blocks_video_block_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_video_block_locales - ADD CONSTRAINT pages_blocks_video_block_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages_blocks_video_block pages_blocks_video_block_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_video_block - ADD CONSTRAINT pages_blocks_video_block_pkey PRIMARY KEY (id); - - --- --- Name: pages_locales pages_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_locales - ADD CONSTRAINT pages_locales_pkey PRIMARY KEY (id); - - --- --- Name: pages pages_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages - ADD CONSTRAINT pages_pkey PRIMARY KEY (id); - - --- --- Name: pages_rels pages_rels_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_rels - ADD CONSTRAINT pages_rels_pkey PRIMARY KEY (id); - - --- --- Name: payload_kv payload_kv_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_kv - ADD CONSTRAINT payload_kv_pkey PRIMARY KEY (id); - - --- --- Name: payload_locked_documents payload_locked_documents_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents - ADD CONSTRAINT payload_locked_documents_pkey PRIMARY KEY (id); - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_pkey PRIMARY KEY (id); - - --- --- Name: payload_migrations payload_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_migrations - ADD CONSTRAINT payload_migrations_pkey PRIMARY KEY (id); - - --- --- Name: payload_preferences payload_preferences_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_preferences - ADD CONSTRAINT payload_preferences_pkey PRIMARY KEY (id); - - --- --- Name: payload_preferences_rels payload_preferences_rels_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_preferences_rels - ADD CONSTRAINT payload_preferences_rels_pkey PRIMARY KEY (id); - - --- --- Name: posts_locales posts_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.posts_locales - ADD CONSTRAINT posts_locales_pkey PRIMARY KEY (id); - - --- --- Name: posts posts_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.posts - ADD CONSTRAINT posts_pkey PRIMARY KEY (id); - - --- --- Name: posts_rels posts_rels_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.posts_rels - ADD CONSTRAINT posts_rels_pkey PRIMARY KEY (id); - - --- --- Name: privacy_policy_settings privacy_policy_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.privacy_policy_settings - ADD CONSTRAINT privacy_policy_settings_pkey PRIMARY KEY (id); - - --- --- Name: redirects redirects_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.redirects - ADD CONSTRAINT redirects_pkey PRIMARY KEY (id); - - --- --- Name: redirects_rels redirects_rels_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.redirects_rels - ADD CONSTRAINT redirects_rels_pkey PRIMARY KEY (id); - - --- --- Name: seo_settings_local_business_opening_hours seo_settings_local_business_opening_hours_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings_local_business_opening_hours - ADD CONSTRAINT seo_settings_local_business_opening_hours_pkey PRIMARY KEY (id); - - --- --- Name: seo_settings_locales seo_settings_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings_locales - ADD CONSTRAINT seo_settings_locales_pkey PRIMARY KEY (id); - - --- --- Name: seo_settings seo_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings - ADD CONSTRAINT seo_settings_pkey PRIMARY KEY (id); - - --- --- Name: seo_settings_social_profiles seo_settings_social_profiles_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings_social_profiles - ADD CONSTRAINT seo_settings_social_profiles_pkey PRIMARY KEY (id); - - --- --- Name: seo_settings_texts seo_settings_texts_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings_texts - ADD CONSTRAINT seo_settings_texts_pkey PRIMARY KEY (id); - - --- --- Name: site_settings_locales site_settings_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.site_settings_locales - ADD CONSTRAINT site_settings_locales_pkey PRIMARY KEY (id); - - --- --- Name: site_settings site_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.site_settings - ADD CONSTRAINT site_settings_pkey PRIMARY KEY (id); - - --- --- Name: social_links social_links_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.social_links - ADD CONSTRAINT social_links_pkey PRIMARY KEY (id); - - --- --- Name: tenants_domains tenants_domains_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.tenants_domains - ADD CONSTRAINT tenants_domains_pkey PRIMARY KEY (id); - - --- --- Name: tenants tenants_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.tenants - ADD CONSTRAINT tenants_pkey PRIMARY KEY (id); - - --- --- Name: testimonials_locales testimonials_locales_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.testimonials_locales - ADD CONSTRAINT testimonials_locales_pkey PRIMARY KEY (id); - - --- --- Name: testimonials testimonials_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.testimonials - ADD CONSTRAINT testimonials_pkey PRIMARY KEY (id); - - --- --- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.users - ADD CONSTRAINT users_pkey PRIMARY KEY (id); - - --- --- Name: users_sessions users_sessions_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.users_sessions - ADD CONSTRAINT users_sessions_pkey PRIMARY KEY (id); - - --- --- Name: users_tenants users_tenants_pkey; Type: CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.users_tenants - ADD CONSTRAINT users_tenants_pkey PRIMARY KEY (id); - - --- --- Name: categories_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX categories_created_at_idx ON public.categories USING btree (created_at); - - --- --- Name: categories_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX categories_locales_locale_parent_id_unique ON public.categories_locales USING btree (_locale, _parent_id); - - --- --- Name: categories_tenant_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX categories_tenant_idx ON public.categories USING btree (tenant_id); - - --- --- Name: categories_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX categories_updated_at_idx ON public.categories USING btree (updated_at); - - --- --- Name: consent_logs_consent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX consent_logs_consent_id_idx ON public.consent_logs USING btree (consent_id); - - --- --- Name: consent_logs_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX consent_logs_created_at_idx ON public.consent_logs USING btree (created_at); - - --- --- Name: consent_logs_tenant_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX consent_logs_tenant_idx ON public.consent_logs USING btree (tenant_id); - - --- --- Name: consent_logs_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX consent_logs_updated_at_idx ON public.consent_logs USING btree (updated_at); - - --- --- Name: cookie_configurations_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX cookie_configurations_created_at_idx ON public.cookie_configurations USING btree (created_at); - - --- --- Name: cookie_configurations_enabled_categories_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX cookie_configurations_enabled_categories_order_idx ON public.cookie_configurations_enabled_categories USING btree ("order"); - - --- --- Name: cookie_configurations_enabled_categories_parent_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX cookie_configurations_enabled_categories_parent_idx ON public.cookie_configurations_enabled_categories USING btree (parent_id); - - --- --- Name: cookie_configurations_tenant_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX cookie_configurations_tenant_idx ON public.cookie_configurations USING btree (tenant_id); - - --- --- Name: cookie_configurations_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX cookie_configurations_updated_at_idx ON public.cookie_configurations USING btree (updated_at); - - --- --- Name: cookie_inventory_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX cookie_inventory_created_at_idx ON public.cookie_inventory USING btree (created_at); - - --- --- Name: cookie_inventory_tenant_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX cookie_inventory_tenant_idx ON public.cookie_inventory USING btree (tenant_id); - - --- --- Name: cookie_inventory_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX cookie_inventory_updated_at_idx ON public.cookie_inventory USING btree (updated_at); - - --- --- Name: form_submissions_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX form_submissions_created_at_idx ON public.form_submissions USING btree (created_at); - - --- --- Name: form_submissions_form_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX form_submissions_form_idx ON public.form_submissions USING btree (form_id); - - --- --- Name: form_submissions_submission_data_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX form_submissions_submission_data_order_idx ON public.form_submissions_submission_data USING btree (_order); - - --- --- Name: form_submissions_submission_data_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX form_submissions_submission_data_parent_id_idx ON public.form_submissions_submission_data USING btree (_parent_id); - - --- --- Name: form_submissions_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX form_submissions_updated_at_idx ON public.form_submissions USING btree (updated_at); - - --- --- Name: forms_blocks_checkbox_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX forms_blocks_checkbox_locales_locale_parent_id_unique ON public.forms_blocks_checkbox_locales USING btree (_locale, _parent_id); - - --- --- Name: forms_blocks_checkbox_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_checkbox_order_idx ON public.forms_blocks_checkbox USING btree (_order); - - --- --- Name: forms_blocks_checkbox_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_checkbox_parent_id_idx ON public.forms_blocks_checkbox USING btree (_parent_id); - - --- --- Name: forms_blocks_checkbox_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_checkbox_path_idx ON public.forms_blocks_checkbox USING btree (_path); - - --- --- Name: forms_blocks_email_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX forms_blocks_email_locales_locale_parent_id_unique ON public.forms_blocks_email_locales USING btree (_locale, _parent_id); - - --- --- Name: forms_blocks_email_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_email_order_idx ON public.forms_blocks_email USING btree (_order); - - --- --- Name: forms_blocks_email_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_email_parent_id_idx ON public.forms_blocks_email USING btree (_parent_id); - - --- --- Name: forms_blocks_email_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_email_path_idx ON public.forms_blocks_email USING btree (_path); - - --- --- Name: forms_blocks_message_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX forms_blocks_message_locales_locale_parent_id_unique ON public.forms_blocks_message_locales USING btree (_locale, _parent_id); - - --- --- Name: forms_blocks_message_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_message_order_idx ON public.forms_blocks_message USING btree (_order); - - --- --- Name: forms_blocks_message_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_message_parent_id_idx ON public.forms_blocks_message USING btree (_parent_id); - - --- --- Name: forms_blocks_message_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_message_path_idx ON public.forms_blocks_message USING btree (_path); - - --- --- Name: forms_blocks_number_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX forms_blocks_number_locales_locale_parent_id_unique ON public.forms_blocks_number_locales USING btree (_locale, _parent_id); - - --- --- Name: forms_blocks_number_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_number_order_idx ON public.forms_blocks_number USING btree (_order); - - --- --- Name: forms_blocks_number_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_number_parent_id_idx ON public.forms_blocks_number USING btree (_parent_id); - - --- --- Name: forms_blocks_number_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_number_path_idx ON public.forms_blocks_number USING btree (_path); - - --- --- Name: forms_blocks_select_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX forms_blocks_select_locales_locale_parent_id_unique ON public.forms_blocks_select_locales USING btree (_locale, _parent_id); - - --- --- Name: forms_blocks_select_options_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX forms_blocks_select_options_locales_locale_parent_id_unique ON public.forms_blocks_select_options_locales USING btree (_locale, _parent_id); - - --- --- Name: forms_blocks_select_options_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_select_options_order_idx ON public.forms_blocks_select_options USING btree (_order); - - --- --- Name: forms_blocks_select_options_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_select_options_parent_id_idx ON public.forms_blocks_select_options USING btree (_parent_id); - - --- --- Name: forms_blocks_select_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_select_order_idx ON public.forms_blocks_select USING btree (_order); - - --- --- Name: forms_blocks_select_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_select_parent_id_idx ON public.forms_blocks_select USING btree (_parent_id); - - --- --- Name: forms_blocks_select_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_select_path_idx ON public.forms_blocks_select USING btree (_path); - - --- --- Name: forms_blocks_text_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX forms_blocks_text_locales_locale_parent_id_unique ON public.forms_blocks_text_locales USING btree (_locale, _parent_id); - - --- --- Name: forms_blocks_text_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_text_order_idx ON public.forms_blocks_text USING btree (_order); - - --- --- Name: forms_blocks_text_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_text_parent_id_idx ON public.forms_blocks_text USING btree (_parent_id); - - --- --- Name: forms_blocks_text_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_text_path_idx ON public.forms_blocks_text USING btree (_path); - - --- --- Name: forms_blocks_textarea_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX forms_blocks_textarea_locales_locale_parent_id_unique ON public.forms_blocks_textarea_locales USING btree (_locale, _parent_id); - - --- --- Name: forms_blocks_textarea_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_textarea_order_idx ON public.forms_blocks_textarea USING btree (_order); - - --- --- Name: forms_blocks_textarea_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_textarea_parent_id_idx ON public.forms_blocks_textarea USING btree (_parent_id); - - --- --- Name: forms_blocks_textarea_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_blocks_textarea_path_idx ON public.forms_blocks_textarea USING btree (_path); - - --- --- Name: forms_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_created_at_idx ON public.forms USING btree (created_at); - - --- --- Name: forms_emails_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX forms_emails_locales_locale_parent_id_unique ON public.forms_emails_locales USING btree (_locale, _parent_id); - - --- --- Name: forms_emails_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_emails_order_idx ON public.forms_emails USING btree (_order); - - --- --- Name: forms_emails_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_emails_parent_id_idx ON public.forms_emails USING btree (_parent_id); - - --- --- Name: forms_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX forms_locales_locale_parent_id_unique ON public.forms_locales USING btree (_locale, _parent_id); - - --- --- Name: forms_rels_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_rels_order_idx ON public.forms_rels USING btree ("order"); - - --- --- Name: forms_rels_pages_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_rels_pages_id_idx ON public.forms_rels USING btree (pages_id); - - --- --- Name: forms_rels_parent_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_rels_parent_idx ON public.forms_rels USING btree (parent_id); - - --- --- Name: forms_rels_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_rels_path_idx ON public.forms_rels USING btree (path); - - --- --- Name: forms_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX forms_updated_at_idx ON public.forms USING btree (updated_at); - - --- --- Name: media_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_created_at_idx ON public.media USING btree (created_at); - - --- --- Name: media_filename_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX media_filename_idx ON public.media USING btree (filename); - - --- --- Name: media_sizes_2k_sizes_2k_filename_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_sizes_2k_sizes_2k_filename_idx ON public.media USING btree (sizes_2k_filename); - - --- --- Name: media_sizes_large_avif_sizes_large_avif_filename_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_sizes_large_avif_sizes_large_avif_filename_idx ON public.media USING btree (sizes_large_avif_filename); - - --- --- Name: media_sizes_large_sizes_large_filename_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_sizes_large_sizes_large_filename_idx ON public.media USING btree (sizes_large_filename); - - --- --- Name: media_sizes_medium_avif_sizes_medium_avif_filename_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_sizes_medium_avif_sizes_medium_avif_filename_idx ON public.media USING btree (sizes_medium_avif_filename); - - --- --- Name: media_sizes_medium_sizes_medium_filename_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_sizes_medium_sizes_medium_filename_idx ON public.media USING btree (sizes_medium_filename); - - --- --- Name: media_sizes_og_sizes_og_filename_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_sizes_og_sizes_og_filename_idx ON public.media USING btree (sizes_og_filename); - - --- --- Name: media_sizes_small_sizes_small_filename_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_sizes_small_sizes_small_filename_idx ON public.media USING btree (sizes_small_filename); - - --- --- Name: media_sizes_thumbnail_sizes_thumbnail_filename_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_sizes_thumbnail_sizes_thumbnail_filename_idx ON public.media USING btree (sizes_thumbnail_filename); - - --- --- Name: media_sizes_xlarge_avif_sizes_xlarge_avif_filename_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_sizes_xlarge_avif_sizes_xlarge_avif_filename_idx ON public.media USING btree (sizes_xlarge_avif_filename); - - --- --- Name: media_sizes_xlarge_sizes_xlarge_filename_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_sizes_xlarge_sizes_xlarge_filename_idx ON public.media USING btree (sizes_xlarge_filename); - - --- --- Name: media_tenant_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_tenant_idx ON public.media USING btree (tenant_id); - - --- --- Name: media_texts_order_parent; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_texts_order_parent ON public.media_texts USING btree ("order", parent_id); - - --- --- Name: media_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX media_updated_at_idx ON public.media USING btree (updated_at); - - --- --- Name: navigation_footer_menu_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX navigation_footer_menu_locales_locale_parent_id_unique ON public.navigation_footer_menu_locales USING btree (_locale, _parent_id); - - --- --- Name: navigation_footer_menu_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX navigation_footer_menu_order_idx ON public.navigation_footer_menu USING btree (_order); - - --- --- Name: navigation_footer_menu_page_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX navigation_footer_menu_page_idx ON public.navigation_footer_menu USING btree (page_id); - - --- --- Name: navigation_footer_menu_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX navigation_footer_menu_parent_id_idx ON public.navigation_footer_menu USING btree (_parent_id); - - --- --- Name: navigation_main_menu_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX navigation_main_menu_locales_locale_parent_id_unique ON public.navigation_main_menu_locales USING btree (_locale, _parent_id); - - --- --- Name: navigation_main_menu_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX navigation_main_menu_order_idx ON public.navigation_main_menu USING btree (_order); - - --- --- Name: navigation_main_menu_page_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX navigation_main_menu_page_idx ON public.navigation_main_menu USING btree (page_id); - - --- --- Name: navigation_main_menu_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX navigation_main_menu_parent_id_idx ON public.navigation_main_menu USING btree (_parent_id); - - --- --- Name: navigation_main_menu_submenu_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX navigation_main_menu_submenu_locales_locale_parent_id_unique ON public.navigation_main_menu_submenu_locales USING btree (_locale, _parent_id); - - --- --- Name: navigation_main_menu_submenu_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX navigation_main_menu_submenu_order_idx ON public.navigation_main_menu_submenu USING btree (_order); - - --- --- Name: navigation_main_menu_submenu_page_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX navigation_main_menu_submenu_page_idx ON public.navigation_main_menu_submenu USING btree (page_id); - - --- --- Name: navigation_main_menu_submenu_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX navigation_main_menu_submenu_parent_id_idx ON public.navigation_main_menu_submenu USING btree (_parent_id); - - --- --- Name: newsletter_subscribers_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX newsletter_subscribers_created_at_idx ON public.newsletter_subscribers USING btree (created_at); - - --- --- Name: newsletter_subscribers_interests_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX newsletter_subscribers_interests_order_idx ON public.newsletter_subscribers_interests USING btree ("order"); - - --- --- Name: newsletter_subscribers_interests_parent_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX newsletter_subscribers_interests_parent_idx ON public.newsletter_subscribers_interests USING btree (parent_id); - - --- --- Name: newsletter_subscribers_tenant_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX newsletter_subscribers_tenant_idx ON public.newsletter_subscribers USING btree (tenant_id); - - --- --- Name: newsletter_subscribers_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX newsletter_subscribers_updated_at_idx ON public.newsletter_subscribers USING btree (updated_at); - - --- --- Name: pages_blocks_card_grid_block_cards_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_card_grid_block_cards_image_idx ON public.pages_blocks_card_grid_block_cards USING btree (image_id); - - --- --- Name: pages_blocks_card_grid_block_cards_locales_locale_parent_id_; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_card_grid_block_cards_locales_locale_parent_id_ ON public.pages_blocks_card_grid_block_cards_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_card_grid_block_cards_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_card_grid_block_cards_order_idx ON public.pages_blocks_card_grid_block_cards USING btree (_order); - - --- --- Name: pages_blocks_card_grid_block_cards_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_card_grid_block_cards_parent_id_idx ON public.pages_blocks_card_grid_block_cards USING btree (_parent_id); - - --- --- Name: pages_blocks_card_grid_block_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_card_grid_block_locales_locale_parent_id_unique ON public.pages_blocks_card_grid_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_card_grid_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_card_grid_block_order_idx ON public.pages_blocks_card_grid_block USING btree (_order); - - --- --- Name: pages_blocks_card_grid_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_card_grid_block_parent_id_idx ON public.pages_blocks_card_grid_block USING btree (_parent_id); - - --- --- Name: pages_blocks_card_grid_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_card_grid_block_path_idx ON public.pages_blocks_card_grid_block USING btree (_path); - - --- --- Name: pages_blocks_contact_form_block_locales_locale_parent_id_uni; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_contact_form_block_locales_locale_parent_id_uni ON public.pages_blocks_contact_form_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_contact_form_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_contact_form_block_order_idx ON public.pages_blocks_contact_form_block USING btree (_order); - - --- --- Name: pages_blocks_contact_form_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_contact_form_block_parent_id_idx ON public.pages_blocks_contact_form_block USING btree (_parent_id); - - --- --- Name: pages_blocks_contact_form_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_contact_form_block_path_idx ON public.pages_blocks_contact_form_block USING btree (_path); - - --- --- Name: pages_blocks_cta_block_buttons_locales_locale_parent_id_uniq; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_cta_block_buttons_locales_locale_parent_id_uniq ON public.pages_blocks_cta_block_buttons_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_cta_block_buttons_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_cta_block_buttons_order_idx ON public.pages_blocks_cta_block_buttons USING btree (_order); - - --- --- Name: pages_blocks_cta_block_buttons_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_cta_block_buttons_parent_id_idx ON public.pages_blocks_cta_block_buttons USING btree (_parent_id); - - --- --- Name: pages_blocks_cta_block_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_cta_block_locales_locale_parent_id_unique ON public.pages_blocks_cta_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_cta_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_cta_block_order_idx ON public.pages_blocks_cta_block USING btree (_order); - - --- --- Name: pages_blocks_cta_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_cta_block_parent_id_idx ON public.pages_blocks_cta_block USING btree (_parent_id); - - --- --- Name: pages_blocks_cta_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_cta_block_path_idx ON public.pages_blocks_cta_block USING btree (_path); - - --- --- Name: pages_blocks_divider_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_divider_block_order_idx ON public.pages_blocks_divider_block USING btree (_order); - - --- --- Name: pages_blocks_divider_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_divider_block_parent_id_idx ON public.pages_blocks_divider_block USING btree (_parent_id); - - --- --- Name: pages_blocks_divider_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_divider_block_path_idx ON public.pages_blocks_divider_block USING btree (_path); - - --- --- Name: pages_blocks_hero_block_background_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_hero_block_background_image_idx ON public.pages_blocks_hero_block USING btree (background_image_id); - - --- --- Name: pages_blocks_hero_block_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_hero_block_locales_locale_parent_id_unique ON public.pages_blocks_hero_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_hero_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_hero_block_order_idx ON public.pages_blocks_hero_block USING btree (_order); - - --- --- Name: pages_blocks_hero_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_hero_block_parent_id_idx ON public.pages_blocks_hero_block USING btree (_parent_id); - - --- --- Name: pages_blocks_hero_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_hero_block_path_idx ON public.pages_blocks_hero_block USING btree (_path); - - --- --- Name: pages_blocks_image_text_block_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_image_text_block_image_idx ON public.pages_blocks_image_text_block USING btree (image_id); - - --- --- Name: pages_blocks_image_text_block_locales_locale_parent_id_uniqu; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_image_text_block_locales_locale_parent_id_uniqu ON public.pages_blocks_image_text_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_image_text_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_image_text_block_order_idx ON public.pages_blocks_image_text_block USING btree (_order); - - --- --- Name: pages_blocks_image_text_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_image_text_block_parent_id_idx ON public.pages_blocks_image_text_block USING btree (_parent_id); - - --- --- Name: pages_blocks_image_text_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_image_text_block_path_idx ON public.pages_blocks_image_text_block USING btree (_path); - - --- --- Name: pages_blocks_newsletter_block_available_interests_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_newsletter_block_available_interests_order_idx ON public.pages_blocks_newsletter_block_available_interests USING btree ("order"); - - --- --- Name: pages_blocks_newsletter_block_available_interests_parent_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_newsletter_block_available_interests_parent_idx ON public.pages_blocks_newsletter_block_available_interests USING btree (parent_id); - - --- --- Name: pages_blocks_newsletter_block_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_newsletter_block_image_idx ON public.pages_blocks_newsletter_block USING btree (image_id); - - --- --- Name: pages_blocks_newsletter_block_locales_locale_parent_id_uniqu; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_newsletter_block_locales_locale_parent_id_uniqu ON public.pages_blocks_newsletter_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_newsletter_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_newsletter_block_order_idx ON public.pages_blocks_newsletter_block USING btree (_order); - - --- --- Name: pages_blocks_newsletter_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_newsletter_block_parent_id_idx ON public.pages_blocks_newsletter_block USING btree (_parent_id); - - --- --- Name: pages_blocks_newsletter_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_newsletter_block_path_idx ON public.pages_blocks_newsletter_block USING btree (_path); - - --- --- Name: pages_blocks_posts_list_block_locales_locale_parent_id_uniqu; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_posts_list_block_locales_locale_parent_id_uniqu ON public.pages_blocks_posts_list_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_posts_list_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_posts_list_block_order_idx ON public.pages_blocks_posts_list_block USING btree (_order); - - --- --- Name: pages_blocks_posts_list_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_posts_list_block_parent_id_idx ON public.pages_blocks_posts_list_block USING btree (_parent_id); - - --- --- Name: pages_blocks_posts_list_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_posts_list_block_path_idx ON public.pages_blocks_posts_list_block USING btree (_path); - - --- --- Name: pages_blocks_process_steps_block_locales_locale_parent_id_un; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_process_steps_block_locales_locale_parent_id_un ON public.pages_blocks_process_steps_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_process_steps_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_process_steps_block_order_idx ON public.pages_blocks_process_steps_block USING btree (_order); - - --- --- Name: pages_blocks_process_steps_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_process_steps_block_parent_id_idx ON public.pages_blocks_process_steps_block USING btree (_parent_id); - - --- --- Name: pages_blocks_process_steps_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_process_steps_block_path_idx ON public.pages_blocks_process_steps_block USING btree (_path); - - --- --- Name: pages_blocks_process_steps_block_steps_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_process_steps_block_steps_image_idx ON public.pages_blocks_process_steps_block_steps USING btree (image_id); - - --- --- Name: pages_blocks_process_steps_block_steps_locales_locale_parent; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_process_steps_block_steps_locales_locale_parent ON public.pages_blocks_process_steps_block_steps_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_process_steps_block_steps_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_process_steps_block_steps_order_idx ON public.pages_blocks_process_steps_block_steps USING btree (_order); - - --- --- Name: pages_blocks_process_steps_block_steps_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_process_steps_block_steps_parent_id_idx ON public.pages_blocks_process_steps_block_steps USING btree (_parent_id); - - --- --- Name: pages_blocks_quote_block_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_quote_block_image_idx ON public.pages_blocks_quote_block USING btree (image_id); - - --- --- Name: pages_blocks_quote_block_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_quote_block_locales_locale_parent_id_unique ON public.pages_blocks_quote_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_quote_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_quote_block_order_idx ON public.pages_blocks_quote_block USING btree (_order); - - --- --- Name: pages_blocks_quote_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_quote_block_parent_id_idx ON public.pages_blocks_quote_block USING btree (_parent_id); - - --- --- Name: pages_blocks_quote_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_quote_block_path_idx ON public.pages_blocks_quote_block USING btree (_path); - - --- --- Name: pages_blocks_testimonials_block_locales_locale_parent_id_uni; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_testimonials_block_locales_locale_parent_id_uni ON public.pages_blocks_testimonials_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_testimonials_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_testimonials_block_order_idx ON public.pages_blocks_testimonials_block USING btree (_order); - - --- --- Name: pages_blocks_testimonials_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_testimonials_block_parent_id_idx ON public.pages_blocks_testimonials_block USING btree (_parent_id); - - --- --- Name: pages_blocks_testimonials_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_testimonials_block_path_idx ON public.pages_blocks_testimonials_block USING btree (_path); - - --- --- Name: pages_blocks_text_block_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_text_block_locales_locale_parent_id_unique ON public.pages_blocks_text_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_text_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_text_block_order_idx ON public.pages_blocks_text_block USING btree (_order); - - --- --- Name: pages_blocks_text_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_text_block_parent_id_idx ON public.pages_blocks_text_block USING btree (_parent_id); - - --- --- Name: pages_blocks_text_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_text_block_path_idx ON public.pages_blocks_text_block USING btree (_path); - - --- --- Name: pages_blocks_timeline_block_items_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_timeline_block_items_image_idx ON public.pages_blocks_timeline_block_items USING btree (image_id); - - --- --- Name: pages_blocks_timeline_block_items_locales_locale_parent_id_u; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_timeline_block_items_locales_locale_parent_id_u ON public.pages_blocks_timeline_block_items_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_timeline_block_items_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_timeline_block_items_order_idx ON public.pages_blocks_timeline_block_items USING btree (_order); - - --- --- Name: pages_blocks_timeline_block_items_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_timeline_block_items_parent_id_idx ON public.pages_blocks_timeline_block_items USING btree (_parent_id); - - --- --- Name: pages_blocks_timeline_block_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_timeline_block_locales_locale_parent_id_unique ON public.pages_blocks_timeline_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_timeline_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_timeline_block_order_idx ON public.pages_blocks_timeline_block USING btree (_order); - - --- --- Name: pages_blocks_timeline_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_timeline_block_parent_id_idx ON public.pages_blocks_timeline_block USING btree (_parent_id); - - --- --- Name: pages_blocks_timeline_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_timeline_block_path_idx ON public.pages_blocks_timeline_block USING btree (_path); - - --- --- Name: pages_blocks_video_block_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_blocks_video_block_locales_locale_parent_id_unique ON public.pages_blocks_video_block_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_blocks_video_block_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_video_block_order_idx ON public.pages_blocks_video_block USING btree (_order); - - --- --- Name: pages_blocks_video_block_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_video_block_parent_id_idx ON public.pages_blocks_video_block USING btree (_parent_id); - - --- --- Name: pages_blocks_video_block_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_blocks_video_block_path_idx ON public.pages_blocks_video_block USING btree (_path); - - --- --- Name: pages_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_created_at_idx ON public.pages USING btree (created_at); - - --- --- Name: pages_hero_hero_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_hero_hero_image_idx ON public.pages USING btree (hero_image_id); - - --- --- Name: pages_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX pages_locales_locale_parent_id_unique ON public.pages_locales USING btree (_locale, _parent_id); - - --- --- Name: pages_rels_categories_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_rels_categories_id_idx ON public.pages_rels USING btree (categories_id); - - --- --- Name: pages_rels_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_rels_order_idx ON public.pages_rels USING btree ("order"); - - --- --- Name: pages_rels_parent_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_rels_parent_idx ON public.pages_rels USING btree (parent_id); - - --- --- Name: pages_rels_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_rels_path_idx ON public.pages_rels USING btree (path); - - --- --- Name: pages_rels_testimonials_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_rels_testimonials_id_idx ON public.pages_rels USING btree (testimonials_id); - - --- --- Name: pages_seo_seo_og_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_seo_seo_og_image_idx ON public.pages USING btree (seo_og_image_id); - - --- --- Name: pages_tenant_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_tenant_idx ON public.pages USING btree (tenant_id); - - --- --- Name: pages_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX pages_updated_at_idx ON public.pages USING btree (updated_at); - - --- --- Name: payload_kv_key_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX payload_kv_key_idx ON public.payload_kv USING btree (key); - - --- --- Name: payload_locked_documents_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_created_at_idx ON public.payload_locked_documents USING btree (created_at); - - --- --- Name: payload_locked_documents_global_slug_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_global_slug_idx ON public.payload_locked_documents USING btree (global_slug); - - --- --- Name: payload_locked_documents_rels_categories_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_categories_id_idx ON public.payload_locked_documents_rels USING btree (categories_id); - - --- --- Name: payload_locked_documents_rels_consent_logs_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_consent_logs_id_idx ON public.payload_locked_documents_rels USING btree (consent_logs_id); - - --- --- Name: payload_locked_documents_rels_cookie_configurations_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_cookie_configurations_id_idx ON public.payload_locked_documents_rels USING btree (cookie_configurations_id); - - --- --- Name: payload_locked_documents_rels_cookie_inventory_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_cookie_inventory_id_idx ON public.payload_locked_documents_rels USING btree (cookie_inventory_id); - - --- --- Name: payload_locked_documents_rels_form_submissions_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_form_submissions_id_idx ON public.payload_locked_documents_rels USING btree (form_submissions_id); - - --- --- Name: payload_locked_documents_rels_forms_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_forms_id_idx ON public.payload_locked_documents_rels USING btree (forms_id); - - --- --- Name: payload_locked_documents_rels_media_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_media_id_idx ON public.payload_locked_documents_rels USING btree (media_id); - - --- --- Name: payload_locked_documents_rels_newsletter_subscribers_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_newsletter_subscribers_id_idx ON public.payload_locked_documents_rels USING btree (newsletter_subscribers_id); - - --- --- Name: payload_locked_documents_rels_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_order_idx ON public.payload_locked_documents_rels USING btree ("order"); - - --- --- Name: payload_locked_documents_rels_pages_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_pages_id_idx ON public.payload_locked_documents_rels USING btree (pages_id); - - --- --- Name: payload_locked_documents_rels_parent_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_parent_idx ON public.payload_locked_documents_rels USING btree (parent_id); - - --- --- Name: payload_locked_documents_rels_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_path_idx ON public.payload_locked_documents_rels USING btree (path); - - --- --- Name: payload_locked_documents_rels_posts_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_posts_id_idx ON public.payload_locked_documents_rels USING btree (posts_id); - - --- --- Name: payload_locked_documents_rels_privacy_policy_settings_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_privacy_policy_settings_id_idx ON public.payload_locked_documents_rels USING btree (privacy_policy_settings_id); - - --- --- Name: payload_locked_documents_rels_redirects_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_redirects_id_idx ON public.payload_locked_documents_rels USING btree (redirects_id); - - --- --- Name: payload_locked_documents_rels_social_links_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_social_links_id_idx ON public.payload_locked_documents_rels USING btree (social_links_id); - - --- --- Name: payload_locked_documents_rels_tenants_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_tenants_id_idx ON public.payload_locked_documents_rels USING btree (tenants_id); - - --- --- Name: payload_locked_documents_rels_testimonials_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_testimonials_id_idx ON public.payload_locked_documents_rels USING btree (testimonials_id); - - --- --- Name: payload_locked_documents_rels_users_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_rels_users_id_idx ON public.payload_locked_documents_rels USING btree (users_id); - - --- --- Name: payload_locked_documents_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_locked_documents_updated_at_idx ON public.payload_locked_documents USING btree (updated_at); - - --- --- Name: payload_migrations_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_migrations_created_at_idx ON public.payload_migrations USING btree (created_at); - - --- --- Name: payload_migrations_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_migrations_updated_at_idx ON public.payload_migrations USING btree (updated_at); - - --- --- Name: payload_preferences_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_preferences_created_at_idx ON public.payload_preferences USING btree (created_at); - - --- --- Name: payload_preferences_key_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_preferences_key_idx ON public.payload_preferences USING btree (key); - - --- --- Name: payload_preferences_rels_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_preferences_rels_order_idx ON public.payload_preferences_rels USING btree ("order"); - - --- --- Name: payload_preferences_rels_parent_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_preferences_rels_parent_idx ON public.payload_preferences_rels USING btree (parent_id); - - --- --- Name: payload_preferences_rels_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_preferences_rels_path_idx ON public.payload_preferences_rels USING btree (path); - - --- --- Name: payload_preferences_rels_users_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_preferences_rels_users_id_idx ON public.payload_preferences_rels USING btree (users_id); - - --- --- Name: payload_preferences_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX payload_preferences_updated_at_idx ON public.payload_preferences USING btree (updated_at); - - --- --- Name: posts_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX posts_created_at_idx ON public.posts USING btree (created_at); - - --- --- Name: posts_featured_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX posts_featured_image_idx ON public.posts USING btree (featured_image_id); - - --- --- Name: posts_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX posts_locales_locale_parent_id_unique ON public.posts_locales USING btree (_locale, _parent_id); - - --- --- Name: posts_rels_categories_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX posts_rels_categories_id_idx ON public.posts_rels USING btree (categories_id); - - --- --- Name: posts_rels_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX posts_rels_order_idx ON public.posts_rels USING btree ("order"); - - --- --- Name: posts_rels_parent_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX posts_rels_parent_idx ON public.posts_rels USING btree (parent_id); - - --- --- Name: posts_rels_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX posts_rels_path_idx ON public.posts_rels USING btree (path); - - --- --- Name: posts_seo_seo_og_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX posts_seo_seo_og_image_idx ON public.posts USING btree (seo_og_image_id); - - --- --- Name: posts_tenant_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX posts_tenant_idx ON public.posts USING btree (tenant_id); - - --- --- Name: posts_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX posts_updated_at_idx ON public.posts USING btree (updated_at); - - --- --- Name: privacy_policy_settings_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX privacy_policy_settings_created_at_idx ON public.privacy_policy_settings USING btree (created_at); - - --- --- Name: privacy_policy_settings_tenant_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX privacy_policy_settings_tenant_idx ON public.privacy_policy_settings USING btree (tenant_id); - - --- --- Name: privacy_policy_settings_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX privacy_policy_settings_updated_at_idx ON public.privacy_policy_settings USING btree (updated_at); - - --- --- Name: redirects_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX redirects_created_at_idx ON public.redirects USING btree (created_at); - - --- --- Name: redirects_from_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX redirects_from_idx ON public.redirects USING btree ("from"); - - --- --- Name: redirects_rels_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX redirects_rels_order_idx ON public.redirects_rels USING btree ("order"); - - --- --- Name: redirects_rels_pages_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX redirects_rels_pages_id_idx ON public.redirects_rels USING btree (pages_id); - - --- --- Name: redirects_rels_parent_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX redirects_rels_parent_idx ON public.redirects_rels USING btree (parent_id); - - --- --- Name: redirects_rels_path_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX redirects_rels_path_idx ON public.redirects_rels USING btree (path); - - --- --- Name: redirects_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX redirects_updated_at_idx ON public.redirects USING btree (updated_at); - - --- --- Name: seo_settings_local_business_opening_hours_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX seo_settings_local_business_opening_hours_order_idx ON public.seo_settings_local_business_opening_hours USING btree (_order); - - --- --- Name: seo_settings_local_business_opening_hours_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX seo_settings_local_business_opening_hours_parent_id_idx ON public.seo_settings_local_business_opening_hours USING btree (_parent_id); - - --- --- Name: seo_settings_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX seo_settings_locales_locale_parent_id_unique ON public.seo_settings_locales USING btree (_locale, _parent_id); - - --- --- Name: seo_settings_meta_defaults_meta_defaults_default_og_imag_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX seo_settings_meta_defaults_meta_defaults_default_og_imag_idx ON public.seo_settings USING btree (meta_defaults_default_og_image_id); - - --- --- Name: seo_settings_organization_organization_logo_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX seo_settings_organization_organization_logo_idx ON public.seo_settings USING btree (organization_logo_id); - - --- --- Name: seo_settings_social_profiles_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX seo_settings_social_profiles_order_idx ON public.seo_settings_social_profiles USING btree (_order); - - --- --- Name: seo_settings_social_profiles_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX seo_settings_social_profiles_parent_id_idx ON public.seo_settings_social_profiles USING btree (_parent_id); - - --- --- Name: seo_settings_texts_order_parent; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX seo_settings_texts_order_parent ON public.seo_settings_texts USING btree ("order", parent_id); - - --- --- Name: site_settings_favicon_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX site_settings_favicon_idx ON public.site_settings USING btree (favicon_id); - - --- --- Name: site_settings_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX site_settings_locales_locale_parent_id_unique ON public.site_settings_locales USING btree (_locale, _parent_id); - - --- --- Name: site_settings_logo_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX site_settings_logo_idx ON public.site_settings USING btree (logo_id); - - --- --- Name: site_settings_seo_seo_default_og_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX site_settings_seo_seo_default_og_image_idx ON public.site_settings USING btree (seo_default_og_image_id); - - --- --- Name: social_links_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX social_links_created_at_idx ON public.social_links USING btree (created_at); - - --- --- Name: social_links_tenant_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX social_links_tenant_idx ON public.social_links USING btree (tenant_id); - - --- --- Name: social_links_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX social_links_updated_at_idx ON public.social_links USING btree (updated_at); - - --- --- Name: tenants_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX tenants_created_at_idx ON public.tenants USING btree (created_at); - - --- --- Name: tenants_domains_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX tenants_domains_order_idx ON public.tenants_domains USING btree (_order); - - --- --- Name: tenants_domains_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX tenants_domains_parent_id_idx ON public.tenants_domains USING btree (_parent_id); - - --- --- Name: tenants_slug_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX tenants_slug_idx ON public.tenants USING btree (slug); - - --- --- Name: tenants_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX tenants_updated_at_idx ON public.tenants USING btree (updated_at); - - --- --- Name: testimonials_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX testimonials_created_at_idx ON public.testimonials USING btree (created_at); - - --- --- Name: testimonials_image_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX testimonials_image_idx ON public.testimonials USING btree (image_id); - - --- --- Name: testimonials_locales_locale_parent_id_unique; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX testimonials_locales_locale_parent_id_unique ON public.testimonials_locales USING btree (_locale, _parent_id); - - --- --- Name: testimonials_tenant_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX testimonials_tenant_idx ON public.testimonials USING btree (tenant_id); - - --- --- Name: testimonials_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX testimonials_updated_at_idx ON public.testimonials USING btree (updated_at); - - --- --- Name: users_created_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX users_created_at_idx ON public.users USING btree (created_at); - - --- --- Name: users_email_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE UNIQUE INDEX users_email_idx ON public.users USING btree (email); - - --- --- Name: users_sessions_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX users_sessions_order_idx ON public.users_sessions USING btree (_order); - - --- --- Name: users_sessions_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX users_sessions_parent_id_idx ON public.users_sessions USING btree (_parent_id); - - --- --- Name: users_tenants_order_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX users_tenants_order_idx ON public.users_tenants USING btree (_order); - - --- --- Name: users_tenants_parent_id_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX users_tenants_parent_id_idx ON public.users_tenants USING btree (_parent_id); - - --- --- Name: users_tenants_tenant_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX users_tenants_tenant_idx ON public.users_tenants USING btree (tenant_id); - - --- --- Name: users_updated_at_idx; Type: INDEX; Schema: public; Owner: payload --- - -CREATE INDEX users_updated_at_idx ON public.users USING btree (updated_at); - - --- --- Name: categories_locales categories_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.categories_locales - ADD CONSTRAINT categories_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.categories(id) ON DELETE CASCADE; - - --- --- Name: categories categories_tenant_id_tenants_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.categories - ADD CONSTRAINT categories_tenant_id_tenants_id_fk FOREIGN KEY (tenant_id) REFERENCES public.tenants(id) ON DELETE SET NULL; - - --- --- Name: consent_logs consent_logs_tenant_id_tenants_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.consent_logs - ADD CONSTRAINT consent_logs_tenant_id_tenants_id_fk FOREIGN KEY (tenant_id) REFERENCES public.tenants(id) ON DELETE SET NULL; - - --- --- Name: cookie_configurations_enabled_categories cookie_configurations_enabled_categories_parent_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.cookie_configurations_enabled_categories - ADD CONSTRAINT cookie_configurations_enabled_categories_parent_fk FOREIGN KEY (parent_id) REFERENCES public.cookie_configurations(id) ON DELETE CASCADE; - - --- --- Name: cookie_configurations cookie_configurations_tenant_id_tenants_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.cookie_configurations - ADD CONSTRAINT cookie_configurations_tenant_id_tenants_id_fk FOREIGN KEY (tenant_id) REFERENCES public.tenants(id) ON DELETE SET NULL; - - --- --- Name: cookie_inventory cookie_inventory_tenant_id_tenants_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.cookie_inventory - ADD CONSTRAINT cookie_inventory_tenant_id_tenants_id_fk FOREIGN KEY (tenant_id) REFERENCES public.tenants(id) ON DELETE SET NULL; - - --- --- Name: form_submissions form_submissions_form_id_forms_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.form_submissions - ADD CONSTRAINT form_submissions_form_id_forms_id_fk FOREIGN KEY (form_id) REFERENCES public.forms(id) ON DELETE SET NULL; - - --- --- Name: form_submissions_submission_data form_submissions_submission_data_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.form_submissions_submission_data - ADD CONSTRAINT form_submissions_submission_data_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.form_submissions(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_checkbox_locales forms_blocks_checkbox_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_checkbox_locales - ADD CONSTRAINT forms_blocks_checkbox_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms_blocks_checkbox(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_checkbox forms_blocks_checkbox_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_checkbox - ADD CONSTRAINT forms_blocks_checkbox_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_email_locales forms_blocks_email_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_email_locales - ADD CONSTRAINT forms_blocks_email_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms_blocks_email(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_email forms_blocks_email_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_email - ADD CONSTRAINT forms_blocks_email_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_message_locales forms_blocks_message_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_message_locales - ADD CONSTRAINT forms_blocks_message_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms_blocks_message(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_message forms_blocks_message_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_message - ADD CONSTRAINT forms_blocks_message_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_number_locales forms_blocks_number_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_number_locales - ADD CONSTRAINT forms_blocks_number_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms_blocks_number(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_number forms_blocks_number_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_number - ADD CONSTRAINT forms_blocks_number_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_select_locales forms_blocks_select_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_select_locales - ADD CONSTRAINT forms_blocks_select_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms_blocks_select(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_select_options_locales forms_blocks_select_options_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_select_options_locales - ADD CONSTRAINT forms_blocks_select_options_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms_blocks_select_options(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_select_options forms_blocks_select_options_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_select_options - ADD CONSTRAINT forms_blocks_select_options_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms_blocks_select(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_select forms_blocks_select_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_select - ADD CONSTRAINT forms_blocks_select_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_text_locales forms_blocks_text_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_text_locales - ADD CONSTRAINT forms_blocks_text_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms_blocks_text(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_text forms_blocks_text_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_text - ADD CONSTRAINT forms_blocks_text_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_textarea_locales forms_blocks_textarea_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_textarea_locales - ADD CONSTRAINT forms_blocks_textarea_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms_blocks_textarea(id) ON DELETE CASCADE; - - --- --- Name: forms_blocks_textarea forms_blocks_textarea_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_blocks_textarea - ADD CONSTRAINT forms_blocks_textarea_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms(id) ON DELETE CASCADE; - - --- --- Name: forms_emails_locales forms_emails_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_emails_locales - ADD CONSTRAINT forms_emails_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms_emails(id) ON DELETE CASCADE; - - --- --- Name: forms_emails forms_emails_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_emails - ADD CONSTRAINT forms_emails_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms(id) ON DELETE CASCADE; - - --- --- Name: forms_locales forms_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_locales - ADD CONSTRAINT forms_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.forms(id) ON DELETE CASCADE; - - --- --- Name: forms_rels forms_rels_pages_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_rels - ADD CONSTRAINT forms_rels_pages_fk FOREIGN KEY (pages_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: forms_rels forms_rels_parent_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.forms_rels - ADD CONSTRAINT forms_rels_parent_fk FOREIGN KEY (parent_id) REFERENCES public.forms(id) ON DELETE CASCADE; - - --- --- Name: media media_tenant_id_tenants_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.media - ADD CONSTRAINT media_tenant_id_tenants_id_fk FOREIGN KEY (tenant_id) REFERENCES public.tenants(id) ON DELETE SET NULL; - - --- --- Name: media_texts media_texts_parent_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.media_texts - ADD CONSTRAINT media_texts_parent_fk FOREIGN KEY (parent_id) REFERENCES public.media(id) ON DELETE CASCADE; - - --- --- Name: navigation_footer_menu_locales navigation_footer_menu_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_footer_menu_locales - ADD CONSTRAINT navigation_footer_menu_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.navigation_footer_menu(id) ON DELETE CASCADE; - - --- --- Name: navigation_footer_menu navigation_footer_menu_page_id_pages_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_footer_menu - ADD CONSTRAINT navigation_footer_menu_page_id_pages_id_fk FOREIGN KEY (page_id) REFERENCES public.pages(id) ON DELETE SET NULL; - - --- --- Name: navigation_footer_menu navigation_footer_menu_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_footer_menu - ADD CONSTRAINT navigation_footer_menu_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.navigation(id) ON DELETE CASCADE; - - --- --- Name: navigation_main_menu_locales navigation_main_menu_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_main_menu_locales - ADD CONSTRAINT navigation_main_menu_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.navigation_main_menu(id) ON DELETE CASCADE; - - --- --- Name: navigation_main_menu navigation_main_menu_page_id_pages_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_main_menu - ADD CONSTRAINT navigation_main_menu_page_id_pages_id_fk FOREIGN KEY (page_id) REFERENCES public.pages(id) ON DELETE SET NULL; - - --- --- Name: navigation_main_menu navigation_main_menu_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_main_menu - ADD CONSTRAINT navigation_main_menu_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.navigation(id) ON DELETE CASCADE; - - --- --- Name: navigation_main_menu_submenu_locales navigation_main_menu_submenu_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_main_menu_submenu_locales - ADD CONSTRAINT navigation_main_menu_submenu_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.navigation_main_menu_submenu(id) ON DELETE CASCADE; - - --- --- Name: navigation_main_menu_submenu navigation_main_menu_submenu_page_id_pages_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_main_menu_submenu - ADD CONSTRAINT navigation_main_menu_submenu_page_id_pages_id_fk FOREIGN KEY (page_id) REFERENCES public.pages(id) ON DELETE SET NULL; - - --- --- Name: navigation_main_menu_submenu navigation_main_menu_submenu_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.navigation_main_menu_submenu - ADD CONSTRAINT navigation_main_menu_submenu_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.navigation_main_menu(id) ON DELETE CASCADE; - - --- --- Name: newsletter_subscribers_interests newsletter_subscribers_interests_parent_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.newsletter_subscribers_interests - ADD CONSTRAINT newsletter_subscribers_interests_parent_fk FOREIGN KEY (parent_id) REFERENCES public.newsletter_subscribers(id) ON DELETE CASCADE; - - --- --- Name: newsletter_subscribers newsletter_subscribers_tenant_id_tenants_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.newsletter_subscribers - ADD CONSTRAINT newsletter_subscribers_tenant_id_tenants_id_fk FOREIGN KEY (tenant_id) REFERENCES public.tenants(id) ON DELETE SET NULL; - - --- --- Name: pages_blocks_card_grid_block_cards pages_blocks_card_grid_block_cards_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_card_grid_block_cards - ADD CONSTRAINT pages_blocks_card_grid_block_cards_image_id_media_id_fk FOREIGN KEY (image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: pages_blocks_card_grid_block_cards_locales pages_blocks_card_grid_block_cards_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_card_grid_block_cards_locales - ADD CONSTRAINT pages_blocks_card_grid_block_cards_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_card_grid_block_cards(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_card_grid_block_cards pages_blocks_card_grid_block_cards_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_card_grid_block_cards - ADD CONSTRAINT pages_blocks_card_grid_block_cards_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_card_grid_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_card_grid_block_locales pages_blocks_card_grid_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_card_grid_block_locales - ADD CONSTRAINT pages_blocks_card_grid_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_card_grid_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_card_grid_block pages_blocks_card_grid_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_card_grid_block - ADD CONSTRAINT pages_blocks_card_grid_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_contact_form_block_locales pages_blocks_contact_form_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_contact_form_block_locales - ADD CONSTRAINT pages_blocks_contact_form_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_contact_form_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_contact_form_block pages_blocks_contact_form_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_contact_form_block - ADD CONSTRAINT pages_blocks_contact_form_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_cta_block_buttons_locales pages_blocks_cta_block_buttons_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_cta_block_buttons_locales - ADD CONSTRAINT pages_blocks_cta_block_buttons_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_cta_block_buttons(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_cta_block_buttons pages_blocks_cta_block_buttons_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_cta_block_buttons - ADD CONSTRAINT pages_blocks_cta_block_buttons_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_cta_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_cta_block_locales pages_blocks_cta_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_cta_block_locales - ADD CONSTRAINT pages_blocks_cta_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_cta_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_cta_block pages_blocks_cta_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_cta_block - ADD CONSTRAINT pages_blocks_cta_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_divider_block pages_blocks_divider_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_divider_block - ADD CONSTRAINT pages_blocks_divider_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_hero_block pages_blocks_hero_block_background_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_hero_block - ADD CONSTRAINT pages_blocks_hero_block_background_image_id_media_id_fk FOREIGN KEY (background_image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: pages_blocks_hero_block_locales pages_blocks_hero_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_hero_block_locales - ADD CONSTRAINT pages_blocks_hero_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_hero_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_hero_block pages_blocks_hero_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_hero_block - ADD CONSTRAINT pages_blocks_hero_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_image_text_block pages_blocks_image_text_block_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_image_text_block - ADD CONSTRAINT pages_blocks_image_text_block_image_id_media_id_fk FOREIGN KEY (image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: pages_blocks_image_text_block_locales pages_blocks_image_text_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_image_text_block_locales - ADD CONSTRAINT pages_blocks_image_text_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_image_text_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_image_text_block pages_blocks_image_text_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_image_text_block - ADD CONSTRAINT pages_blocks_image_text_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_newsletter_block_available_interests pages_blocks_newsletter_block_available_interests_parent_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_newsletter_block_available_interests - ADD CONSTRAINT pages_blocks_newsletter_block_available_interests_parent_fk FOREIGN KEY (parent_id) REFERENCES public.pages_blocks_newsletter_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_newsletter_block pages_blocks_newsletter_block_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_newsletter_block - ADD CONSTRAINT pages_blocks_newsletter_block_image_id_media_id_fk FOREIGN KEY (image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: pages_blocks_newsletter_block_locales pages_blocks_newsletter_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_newsletter_block_locales - ADD CONSTRAINT pages_blocks_newsletter_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_newsletter_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_newsletter_block pages_blocks_newsletter_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_newsletter_block - ADD CONSTRAINT pages_blocks_newsletter_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_posts_list_block_locales pages_blocks_posts_list_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_posts_list_block_locales - ADD CONSTRAINT pages_blocks_posts_list_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_posts_list_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_posts_list_block pages_blocks_posts_list_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_posts_list_block - ADD CONSTRAINT pages_blocks_posts_list_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_process_steps_block_locales pages_blocks_process_steps_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_process_steps_block_locales - ADD CONSTRAINT pages_blocks_process_steps_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_process_steps_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_process_steps_block pages_blocks_process_steps_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_process_steps_block - ADD CONSTRAINT pages_blocks_process_steps_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_process_steps_block_steps pages_blocks_process_steps_block_steps_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_process_steps_block_steps - ADD CONSTRAINT pages_blocks_process_steps_block_steps_image_id_media_id_fk FOREIGN KEY (image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: pages_blocks_process_steps_block_steps_locales pages_blocks_process_steps_block_steps_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_process_steps_block_steps_locales - ADD CONSTRAINT pages_blocks_process_steps_block_steps_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_process_steps_block_steps(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_process_steps_block_steps pages_blocks_process_steps_block_steps_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_process_steps_block_steps - ADD CONSTRAINT pages_blocks_process_steps_block_steps_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_process_steps_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_quote_block pages_blocks_quote_block_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_quote_block - ADD CONSTRAINT pages_blocks_quote_block_image_id_media_id_fk FOREIGN KEY (image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: pages_blocks_quote_block_locales pages_blocks_quote_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_quote_block_locales - ADD CONSTRAINT pages_blocks_quote_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_quote_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_quote_block pages_blocks_quote_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_quote_block - ADD CONSTRAINT pages_blocks_quote_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_testimonials_block_locales pages_blocks_testimonials_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_testimonials_block_locales - ADD CONSTRAINT pages_blocks_testimonials_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_testimonials_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_testimonials_block pages_blocks_testimonials_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_testimonials_block - ADD CONSTRAINT pages_blocks_testimonials_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_text_block_locales pages_blocks_text_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_text_block_locales - ADD CONSTRAINT pages_blocks_text_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_text_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_text_block pages_blocks_text_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_text_block - ADD CONSTRAINT pages_blocks_text_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_timeline_block_items pages_blocks_timeline_block_items_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_timeline_block_items - ADD CONSTRAINT pages_blocks_timeline_block_items_image_id_media_id_fk FOREIGN KEY (image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: pages_blocks_timeline_block_items_locales pages_blocks_timeline_block_items_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_timeline_block_items_locales - ADD CONSTRAINT pages_blocks_timeline_block_items_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_timeline_block_items(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_timeline_block_items pages_blocks_timeline_block_items_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_timeline_block_items - ADD CONSTRAINT pages_blocks_timeline_block_items_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_timeline_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_timeline_block_locales pages_blocks_timeline_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_timeline_block_locales - ADD CONSTRAINT pages_blocks_timeline_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_timeline_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_timeline_block pages_blocks_timeline_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_timeline_block - ADD CONSTRAINT pages_blocks_timeline_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_video_block_locales pages_blocks_video_block_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_video_block_locales - ADD CONSTRAINT pages_blocks_video_block_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages_blocks_video_block(id) ON DELETE CASCADE; - - --- --- Name: pages_blocks_video_block pages_blocks_video_block_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_blocks_video_block - ADD CONSTRAINT pages_blocks_video_block_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages pages_hero_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages - ADD CONSTRAINT pages_hero_image_id_media_id_fk FOREIGN KEY (hero_image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: pages_locales pages_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_locales - ADD CONSTRAINT pages_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_rels pages_rels_categories_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_rels - ADD CONSTRAINT pages_rels_categories_fk FOREIGN KEY (categories_id) REFERENCES public.categories(id) ON DELETE CASCADE; - - --- --- Name: pages_rels pages_rels_parent_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_rels - ADD CONSTRAINT pages_rels_parent_fk FOREIGN KEY (parent_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: pages_rels pages_rels_testimonials_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages_rels - ADD CONSTRAINT pages_rels_testimonials_fk FOREIGN KEY (testimonials_id) REFERENCES public.testimonials(id) ON DELETE CASCADE; - - --- --- Name: pages pages_seo_og_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages - ADD CONSTRAINT pages_seo_og_image_id_media_id_fk FOREIGN KEY (seo_og_image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: pages pages_tenant_id_tenants_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.pages - ADD CONSTRAINT pages_tenant_id_tenants_id_fk FOREIGN KEY (tenant_id) REFERENCES public.tenants(id) ON DELETE SET NULL; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_categories_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_categories_fk FOREIGN KEY (categories_id) REFERENCES public.categories(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_consent_logs_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_consent_logs_fk FOREIGN KEY (consent_logs_id) REFERENCES public.consent_logs(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_cookie_configurations_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_cookie_configurations_fk FOREIGN KEY (cookie_configurations_id) REFERENCES public.cookie_configurations(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_cookie_inventory_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_cookie_inventory_fk FOREIGN KEY (cookie_inventory_id) REFERENCES public.cookie_inventory(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_form_submissions_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_form_submissions_fk FOREIGN KEY (form_submissions_id) REFERENCES public.form_submissions(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_forms_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_forms_fk FOREIGN KEY (forms_id) REFERENCES public.forms(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_media_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_media_fk FOREIGN KEY (media_id) REFERENCES public.media(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_newsletter_subscribers_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_newsletter_subscribers_fk FOREIGN KEY (newsletter_subscribers_id) REFERENCES public.newsletter_subscribers(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_pages_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_pages_fk FOREIGN KEY (pages_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_parent_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_parent_fk FOREIGN KEY (parent_id) REFERENCES public.payload_locked_documents(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_posts_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_posts_fk FOREIGN KEY (posts_id) REFERENCES public.posts(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_privacy_policy_settings_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_privacy_policy_settings_fk FOREIGN KEY (privacy_policy_settings_id) REFERENCES public.privacy_policy_settings(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_redirects_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_redirects_fk FOREIGN KEY (redirects_id) REFERENCES public.redirects(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_social_links_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_social_links_fk FOREIGN KEY (social_links_id) REFERENCES public.social_links(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_tenants_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_tenants_fk FOREIGN KEY (tenants_id) REFERENCES public.tenants(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_testimonials_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_testimonials_fk FOREIGN KEY (testimonials_id) REFERENCES public.testimonials(id) ON DELETE CASCADE; - - --- --- Name: payload_locked_documents_rels payload_locked_documents_rels_users_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_locked_documents_rels - ADD CONSTRAINT payload_locked_documents_rels_users_fk FOREIGN KEY (users_id) REFERENCES public.users(id) ON DELETE CASCADE; - - --- --- Name: payload_preferences_rels payload_preferences_rels_parent_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_preferences_rels - ADD CONSTRAINT payload_preferences_rels_parent_fk FOREIGN KEY (parent_id) REFERENCES public.payload_preferences(id) ON DELETE CASCADE; - - --- --- Name: payload_preferences_rels payload_preferences_rels_users_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.payload_preferences_rels - ADD CONSTRAINT payload_preferences_rels_users_fk FOREIGN KEY (users_id) REFERENCES public.users(id) ON DELETE CASCADE; - - --- --- Name: posts posts_featured_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.posts - ADD CONSTRAINT posts_featured_image_id_media_id_fk FOREIGN KEY (featured_image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: posts_locales posts_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.posts_locales - ADD CONSTRAINT posts_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.posts(id) ON DELETE CASCADE; - - --- --- Name: posts_rels posts_rels_categories_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.posts_rels - ADD CONSTRAINT posts_rels_categories_fk FOREIGN KEY (categories_id) REFERENCES public.categories(id) ON DELETE CASCADE; - - --- --- Name: posts_rels posts_rels_parent_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.posts_rels - ADD CONSTRAINT posts_rels_parent_fk FOREIGN KEY (parent_id) REFERENCES public.posts(id) ON DELETE CASCADE; - - --- --- Name: posts posts_seo_og_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.posts - ADD CONSTRAINT posts_seo_og_image_id_media_id_fk FOREIGN KEY (seo_og_image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: posts posts_tenant_id_tenants_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.posts - ADD CONSTRAINT posts_tenant_id_tenants_id_fk FOREIGN KEY (tenant_id) REFERENCES public.tenants(id) ON DELETE SET NULL; - - --- --- Name: privacy_policy_settings privacy_policy_settings_tenant_id_tenants_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.privacy_policy_settings - ADD CONSTRAINT privacy_policy_settings_tenant_id_tenants_id_fk FOREIGN KEY (tenant_id) REFERENCES public.tenants(id) ON DELETE SET NULL; - - --- --- Name: redirects_rels redirects_rels_pages_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.redirects_rels - ADD CONSTRAINT redirects_rels_pages_fk FOREIGN KEY (pages_id) REFERENCES public.pages(id) ON DELETE CASCADE; - - --- --- Name: redirects_rels redirects_rels_parent_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.redirects_rels - ADD CONSTRAINT redirects_rels_parent_fk FOREIGN KEY (parent_id) REFERENCES public.redirects(id) ON DELETE CASCADE; - - --- --- Name: seo_settings_local_business_opening_hours seo_settings_local_business_opening_hours_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings_local_business_opening_hours - ADD CONSTRAINT seo_settings_local_business_opening_hours_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.seo_settings(id) ON DELETE CASCADE; - - --- --- Name: seo_settings_locales seo_settings_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings_locales - ADD CONSTRAINT seo_settings_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.seo_settings(id) ON DELETE CASCADE; - - --- --- Name: seo_settings seo_settings_meta_defaults_default_og_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings - ADD CONSTRAINT seo_settings_meta_defaults_default_og_image_id_media_id_fk FOREIGN KEY (meta_defaults_default_og_image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: seo_settings seo_settings_organization_logo_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings - ADD CONSTRAINT seo_settings_organization_logo_id_media_id_fk FOREIGN KEY (organization_logo_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: seo_settings_social_profiles seo_settings_social_profiles_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings_social_profiles - ADD CONSTRAINT seo_settings_social_profiles_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.seo_settings(id) ON DELETE CASCADE; - - --- --- Name: seo_settings_texts seo_settings_texts_parent_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.seo_settings_texts - ADD CONSTRAINT seo_settings_texts_parent_fk FOREIGN KEY (parent_id) REFERENCES public.seo_settings(id) ON DELETE CASCADE; - - --- --- Name: site_settings site_settings_favicon_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.site_settings - ADD CONSTRAINT site_settings_favicon_id_media_id_fk FOREIGN KEY (favicon_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: site_settings_locales site_settings_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.site_settings_locales - ADD CONSTRAINT site_settings_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.site_settings(id) ON DELETE CASCADE; - - --- --- Name: site_settings site_settings_logo_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.site_settings - ADD CONSTRAINT site_settings_logo_id_media_id_fk FOREIGN KEY (logo_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: site_settings site_settings_seo_default_og_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.site_settings - ADD CONSTRAINT site_settings_seo_default_og_image_id_media_id_fk FOREIGN KEY (seo_default_og_image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: social_links social_links_tenant_id_tenants_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.social_links - ADD CONSTRAINT social_links_tenant_id_tenants_id_fk FOREIGN KEY (tenant_id) REFERENCES public.tenants(id) ON DELETE SET NULL; - - --- --- Name: tenants_domains tenants_domains_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.tenants_domains - ADD CONSTRAINT tenants_domains_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.tenants(id) ON DELETE CASCADE; - - --- --- Name: testimonials testimonials_image_id_media_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.testimonials - ADD CONSTRAINT testimonials_image_id_media_id_fk FOREIGN KEY (image_id) REFERENCES public.media(id) ON DELETE SET NULL; - - --- --- Name: testimonials_locales testimonials_locales_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.testimonials_locales - ADD CONSTRAINT testimonials_locales_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.testimonials(id) ON DELETE CASCADE; - - --- --- Name: testimonials testimonials_tenant_id_tenants_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.testimonials - ADD CONSTRAINT testimonials_tenant_id_tenants_id_fk FOREIGN KEY (tenant_id) REFERENCES public.tenants(id) ON DELETE SET NULL; - - --- --- Name: users_sessions users_sessions_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.users_sessions - ADD CONSTRAINT users_sessions_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.users(id) ON DELETE CASCADE; - - --- --- Name: users_tenants users_tenants_parent_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.users_tenants - ADD CONSTRAINT users_tenants_parent_id_fk FOREIGN KEY (_parent_id) REFERENCES public.users(id) ON DELETE CASCADE; - - --- --- Name: users_tenants users_tenants_tenant_id_tenants_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: payload --- - -ALTER TABLE ONLY public.users_tenants - ADD CONSTRAINT users_tenants_tenant_id_tenants_id_fk FOREIGN KEY (tenant_id) REFERENCES public.tenants(id) ON DELETE SET NULL; - - --- --- Name: SCHEMA public; Type: ACL; Schema: -; Owner: payload --- - -REVOKE USAGE ON SCHEMA public FROM PUBLIC; - - --- --- PostgreSQL database dump complete --- - -\unrestrict sqUvasorUpmIhntcC7ZKrLbpKfevosTybInjrOemGqmqYbFTO2pfO02bfYrztdl - diff --git a/docs/anleitungen/SECURITY.md b/docs/anleitungen/SECURITY.md index c1ceff5..80f7606 100644 --- a/docs/anleitungen/SECURITY.md +++ b/docs/anleitungen/SECURITY.md @@ -1,6 +1,6 @@ # Security-Richtlinien - Payload CMS Multi-Tenant -> Letzte Aktualisierung: 29.12.2025 +> Letzte Aktualisierung: 17.02.2026 ## Übersicht @@ -25,6 +25,7 @@ Alle Security-Funktionen befinden sich in `src/lib/security/`: | IP Allowlist | `ip-allowlist.ts` | IP-basierte Zugriffskontrolle | | CSRF Protection | `csrf.ts` | Cross-Site Request Forgery Schutz | | Data Masking | `data-masking.ts` | Sensitive Daten in Logs maskieren | +| Cron Auth | `cron-auth.ts` | Verbindliche Authentifizierung für Cron-Endpunkte | ### Rate Limiter @@ -86,6 +87,7 @@ export async function GET(req: NextRequest) { | `TRUST_PROXY` | Proxy-Header vertrauen | `true` oder leer | | `BLOCKED_IPS` | Globale Blocklist | IP, CIDR, Wildcard | | `SEND_EMAIL_ALLOWED_IPS` | E-Mail-Endpoint Allowlist | IP, CIDR, Wildcard | +| `GENERATE_PDF_ALLOWED_IPS` | PDF-Endpoint Allowlist | IP, CIDR, Wildcard | | `ADMIN_ALLOWED_IPS` | Admin-Panel Allowlist | IP, CIDR, Wildcard | | `WEBHOOK_ALLOWED_IPS` | Webhook-Endpoint Allowlist | IP, CIDR, Wildcard | @@ -173,6 +175,32 @@ if (!csrf.valid) { - Requests ohne `Origin`/`Referer` Header werden als Server-to-Server behandelt - API-Key-basierte Authentifizierung umgeht CSRF-Check +### Cron Endpoint Auth + +Alle `/api/cron/*` Endpunkte sind fail-closed abgesichert: + +- Ohne gültigen `Authorization: Bearer ` Header: `401` +- Ohne gesetztes `CRON_SECRET`: `503` +- Gilt für `GET`, `POST` und `HEAD` + +In Production wird `CRON_SECRET` beim Startup validiert. + +### PDF URL Hardening (SSRF-Schutz) + +PDF-Generierung per URL (`/api/generate-pdf`) validiert jetzt strikt: + +- Nur `https://` URLs (Ausnahme: `PDF_ALLOW_HTTP_URLS=true` nur non-production) +- Keine URL-Credentials (`user:pass@host`) +- Keine localhost/private/loopback Ziele +- DNS-Auflösung wird geprüft (Rebinding-Schutz gegen private Zieladressen) +- Optionaler Host-Allowlist-Modus via `PDF_ALLOWED_HOSTS` + +Beispiel: +```bash +PDF_ALLOWED_HOSTS=example.com,.example.com +PDF_ALLOW_HTTP_URLS=false +``` + ### Data Masking **Automatisch maskierte Felder:** @@ -275,9 +303,13 @@ pnpm test:unit - [ ] **`TRUST_PROXY=true`** setzen (Pflicht hinter Reverse-Proxy wie Caddy) - [ ] **`CSRF_SECRET`** oder **`PAYLOAD_SECRET`** setzen (Server startet nicht ohne) +- [ ] **`CRON_SECRET`** setzen (Pflicht für Cron-Endpunkte in Production) - [ ] Alle `BLOCKED_IPS` für bekannte Angreifer setzen - [ ] `SEND_EMAIL_ALLOWED_IPS` auf vertrauenswürdige IPs beschränken +- [ ] `GENERATE_PDF_ALLOWED_IPS` auf vertrauenswürdige IPs beschränken - [ ] `ADMIN_ALLOWED_IPS` auf Office/VPN-IPs setzen +- [ ] `PDF_ALLOWED_HOSTS` für erlaubte externe Render-Ziele konfigurieren +- [ ] `ENABLE_IN_PROCESS_SCHEDULER` in Multi-Instance-Deployments nur gezielt aktivieren - [ ] Redis für verteiltes Rate Limiting konfigurieren - [ ] Pre-Commit Hook aktivieren @@ -329,6 +361,7 @@ email=admin@example.com&password=secret | Datum | Änderung | |-------|----------| +| 17.02.2026 | **Security-Hardening:** Users-Update fail-closed, `isSuperAdmin` field-protected, Cron-Auth fail-closed, PDF-SSRF-Schutz, Newsletter-Unsubscribe ohne ID-Enumeration | | 29.12.2025 | **Dokumentation aktualisiert:** Custom Login Page Abschnitt entfernt (wurde am 27.12.2025 entfernt) | | 17.12.2025 | **Security-Audit Fixes:** TRUST_PROXY für IP-Header-Spoofing, CSRF_SECRET Pflicht in Production, IP-Allowlist Startup-Warnungen, Tests auf 177 erweitert | | 09.12.2025 | Custom Login Route Dokumentation, multipart/form-data _payload Support | diff --git a/next.config.mjs b/next.config.mjs index 74eb6ec..87421d1 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -2,14 +2,6 @@ import { withPayload } from '@payloadcms/next/withPayload' /** @type {import('next').NextConfig} */ const nextConfig = { - // Skip type checking during build (done separately in CI) - typescript: { - ignoreBuildErrors: true, - }, - // Skip ESLint during build to save memory - eslint: { - ignoreDuringBuilds: true, - }, // Reduce memory usage during build experimental: { // Use fewer workers for builds on low-memory systems diff --git a/src/app/(payload)/api/community/analytics/channel-comparison/route.ts b/src/app/(payload)/api/community/analytics/channel-comparison/route.ts index e38d94e..9fef70f 100644 --- a/src/app/(payload)/api/community/analytics/channel-comparison/route.ts +++ b/src/app/(payload)/api/community/analytics/channel-comparison/route.ts @@ -12,22 +12,10 @@ import { getPayload } from 'payload' import config from '@payload-config' import { subDays, differenceInHours } from 'date-fns' import { createSafeLogger } from '@/lib/security' +import { hasCommunityApiAccess } from '@/lib/communityAccess' const logger = createSafeLogger('API:ChannelComparison') -interface UserWithCommunityAccess { - id: number - isSuperAdmin?: boolean - is_super_admin?: boolean - roles?: string[] -} - -function hasCommunityAccess(user: UserWithCommunityAccess): boolean { - if (user.isSuperAdmin || user.is_super_admin) return true - const communityRoles = ['community_manager', 'community_agent', 'admin'] - return user.roles?.some((role) => communityRoles.includes(role)) ?? false -} - export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url) @@ -41,7 +29,7 @@ export async function GET(request: NextRequest) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } - if (!hasCommunityAccess(user as UserWithCommunityAccess)) { + if (!hasCommunityApiAccess(user as any, 'viewer')) { return NextResponse.json({ error: 'Access denied' }, { status: 403 }) } diff --git a/src/app/(payload)/api/community/analytics/overview/route.ts b/src/app/(payload)/api/community/analytics/overview/route.ts index 3a7ed1e..504dded 100644 --- a/src/app/(payload)/api/community/analytics/overview/route.ts +++ b/src/app/(payload)/api/community/analytics/overview/route.ts @@ -12,22 +12,10 @@ import { getPayload } from 'payload' import config from '@payload-config' import { subDays, differenceInHours } from 'date-fns' import { createSafeLogger } from '@/lib/security' +import { hasCommunityApiAccess } from '@/lib/communityAccess' const logger = createSafeLogger('API:AnalyticsOverview') -interface UserWithCommunityAccess { - id: number - isSuperAdmin?: boolean - is_super_admin?: boolean - roles?: string[] -} - -function hasCommunityAccess(user: UserWithCommunityAccess): boolean { - if (user.isSuperAdmin || user.is_super_admin) return true - const communityRoles = ['community_manager', 'community_agent', 'admin'] - return user.roles?.some((role) => communityRoles.includes(role)) ?? false -} - export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url) @@ -42,7 +30,7 @@ export async function GET(request: NextRequest) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } - if (!hasCommunityAccess(user as UserWithCommunityAccess)) { + if (!hasCommunityApiAccess(user as any, 'viewer')) { return NextResponse.json({ error: 'Access denied' }, { status: 403 }) } diff --git a/src/app/(payload)/api/community/analytics/response-metrics/route.ts b/src/app/(payload)/api/community/analytics/response-metrics/route.ts index 821bbfa..a3ac73a 100644 --- a/src/app/(payload)/api/community/analytics/response-metrics/route.ts +++ b/src/app/(payload)/api/community/analytics/response-metrics/route.ts @@ -12,22 +12,10 @@ import { getPayload } from 'payload' import config from '@payload-config' import { subDays, differenceInHours } from 'date-fns' import { createSafeLogger } from '@/lib/security' +import { hasCommunityApiAccess } from '@/lib/communityAccess' const logger = createSafeLogger('API:ResponseMetrics') -interface UserWithCommunityAccess { - id: number - isSuperAdmin?: boolean - is_super_admin?: boolean - roles?: string[] -} - -function hasCommunityAccess(user: UserWithCommunityAccess): boolean { - if (user.isSuperAdmin || user.is_super_admin) return true - const communityRoles = ['community_manager', 'community_agent', 'admin'] - return user.roles?.some((role) => communityRoles.includes(role)) ?? false -} - function median(arr: number[]): number { if (arr.length === 0) return 0 const sorted = [...arr].sort((a, b) => a - b) @@ -56,7 +44,7 @@ export async function GET(request: NextRequest) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } - if (!hasCommunityAccess(user as UserWithCommunityAccess)) { + if (!hasCommunityApiAccess(user as any, 'viewer')) { return NextResponse.json({ error: 'Access denied' }, { status: 403 }) } diff --git a/src/app/(payload)/api/community/analytics/sentiment-trend/route.ts b/src/app/(payload)/api/community/analytics/sentiment-trend/route.ts index faa138e..70e43f3 100644 --- a/src/app/(payload)/api/community/analytics/sentiment-trend/route.ts +++ b/src/app/(payload)/api/community/analytics/sentiment-trend/route.ts @@ -12,22 +12,10 @@ import { getPayload } from 'payload' import config from '@payload-config' import { subDays, format, eachDayOfInterval, eachWeekOfInterval } from 'date-fns' import { createSafeLogger } from '@/lib/security' +import { hasCommunityApiAccess } from '@/lib/communityAccess' const logger = createSafeLogger('API:SentimentTrend') -interface UserWithCommunityAccess { - id: number - isSuperAdmin?: boolean - is_super_admin?: boolean - roles?: string[] -} - -function hasCommunityAccess(user: UserWithCommunityAccess): boolean { - if (user.isSuperAdmin || user.is_super_admin) return true - const communityRoles = ['community_manager', 'community_agent', 'admin'] - return user.roles?.some((role) => communityRoles.includes(role)) ?? false -} - export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url) @@ -48,7 +36,7 @@ export async function GET(request: NextRequest) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } - if (!hasCommunityAccess(user as UserWithCommunityAccess)) { + if (!hasCommunityApiAccess(user as any, 'viewer')) { return NextResponse.json({ error: 'Access denied' }, { status: 403 }) } diff --git a/src/app/(payload)/api/community/analytics/top-content/route.ts b/src/app/(payload)/api/community/analytics/top-content/route.ts index cb4ee61..0f6bc31 100644 --- a/src/app/(payload)/api/community/analytics/top-content/route.ts +++ b/src/app/(payload)/api/community/analytics/top-content/route.ts @@ -12,22 +12,10 @@ import { getPayload } from 'payload' import config from '@payload-config' import { subDays } from 'date-fns' import { createSafeLogger } from '@/lib/security' +import { hasCommunityApiAccess } from '@/lib/communityAccess' const logger = createSafeLogger('API:TopContent') -interface UserWithCommunityAccess { - id: number - isSuperAdmin?: boolean - is_super_admin?: boolean - roles?: string[] -} - -function hasCommunityAccess(user: UserWithCommunityAccess): boolean { - if (user.isSuperAdmin || user.is_super_admin) return true - const communityRoles = ['community_manager', 'community_agent', 'admin'] - return user.roles?.some((role) => communityRoles.includes(role)) ?? false -} - export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url) @@ -44,7 +32,7 @@ export async function GET(request: NextRequest) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } - if (!hasCommunityAccess(user as UserWithCommunityAccess)) { + if (!hasCommunityApiAccess(user as any, 'viewer')) { return NextResponse.json({ error: 'Access denied' }, { status: 403 }) } diff --git a/src/app/(payload)/api/community/analytics/topic-cloud/route.ts b/src/app/(payload)/api/community/analytics/topic-cloud/route.ts index 6894ce2..9628c4b 100644 --- a/src/app/(payload)/api/community/analytics/topic-cloud/route.ts +++ b/src/app/(payload)/api/community/analytics/topic-cloud/route.ts @@ -12,22 +12,10 @@ import { getPayload } from 'payload' import config from '@payload-config' import { subDays } from 'date-fns' import { createSafeLogger } from '@/lib/security' +import { hasCommunityApiAccess } from '@/lib/communityAccess' const logger = createSafeLogger('API:TopicCloud') -interface UserWithCommunityAccess { - id: number - isSuperAdmin?: boolean - is_super_admin?: boolean - roles?: string[] -} - -function hasCommunityAccess(user: UserWithCommunityAccess): boolean { - if (user.isSuperAdmin || user.is_super_admin) return true - const communityRoles = ['community_manager', 'community_agent', 'admin'] - return user.roles?.some((role) => communityRoles.includes(role)) ?? false -} - export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url) @@ -43,7 +31,7 @@ export async function GET(request: NextRequest) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } - if (!hasCommunityAccess(user as UserWithCommunityAccess)) { + if (!hasCommunityApiAccess(user as any, 'viewer')) { return NextResponse.json({ error: 'Access denied' }, { status: 403 }) } diff --git a/src/app/(payload)/api/community/export/route.ts b/src/app/(payload)/api/community/export/route.ts index 06cba53..c461eb2 100644 --- a/src/app/(payload)/api/community/export/route.ts +++ b/src/app/(payload)/api/community/export/route.ts @@ -12,33 +12,11 @@ import { getPayload } from 'payload' import config from '@payload-config' import ExcelJS from 'exceljs' import PDFDocument from 'pdfkit' -import { createSafeLogger, validateCsrf } from '@/lib/security' +import { createSafeLogger } from '@/lib/security' +import { hasCommunityApiAccess } from '@/lib/communityAccess' const logger = createSafeLogger('API:CommunityExport') -interface UserWithCommunityAccess { - id: number - isSuperAdmin?: boolean - is_super_admin?: boolean - roles?: string[] -} - -/** - * Prüft ob User Community-Zugriff hat - */ -function hasCommunityAccess(user: UserWithCommunityAccess): boolean { - if (user.isSuperAdmin || user.is_super_admin) { - return true - } - - const communityRoles = ['community_manager', 'community_agent', 'admin'] - if (user.roles?.some((role) => communityRoles.includes(role))) { - return true - } - - return false -} - export async function GET(req: NextRequest) { try { const searchParams = req.nextUrl.searchParams @@ -60,10 +38,10 @@ export async function GET(req: NextRequest) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } - const typedUser = user as UserWithCommunityAccess + const typedUser = user as { id: number } // Community-Zugriff prüfen - if (!hasCommunityAccess(typedUser)) { + if (!hasCommunityApiAccess(user as any, 'viewer')) { logger.warn('Access denied for export', { userId: typedUser.id }) return NextResponse.json({ error: 'Access denied' }, { status: 403 }) } diff --git a/src/app/(payload)/api/community/stats/route.ts b/src/app/(payload)/api/community/stats/route.ts index cb6c1d3..d21b869 100644 --- a/src/app/(payload)/api/community/stats/route.ts +++ b/src/app/(payload)/api/community/stats/route.ts @@ -10,32 +10,10 @@ import { NextRequest, NextResponse } from 'next/server' import { getPayload } from 'payload' import config from '@payload-config' import { createSafeLogger } from '@/lib/security' +import { hasCommunityApiAccess } from '@/lib/communityAccess' const logger = createSafeLogger('API:CommunityStats') -interface UserWithCommunityAccess { - id: number - isSuperAdmin?: boolean - is_super_admin?: boolean - roles?: string[] -} - -/** - * Prüft ob User Community-Zugriff hat - */ -function hasCommunityAccess(user: UserWithCommunityAccess): boolean { - if (user.isSuperAdmin || user.is_super_admin) { - return true - } - - const communityRoles = ['community_manager', 'community_agent', 'admin'] - if (user.roles?.some((role) => communityRoles.includes(role))) { - return true - } - - return false -} - export async function GET(req: NextRequest) { try { const payload = await getPayload({ config }) @@ -47,10 +25,10 @@ export async function GET(req: NextRequest) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } - const typedUser = user as UserWithCommunityAccess + const typedUser = user as { id: number } // Community-Zugriff prüfen - if (!hasCommunityAccess(typedUser)) { + if (!hasCommunityApiAccess(user as any, 'viewer')) { logger.warn('Access denied for stats', { userId: typedUser.id }) return NextResponse.json({ error: 'Access denied' }, { status: 403 }) } diff --git a/src/app/(payload)/api/cron/community-sync/route.ts b/src/app/(payload)/api/cron/community-sync/route.ts index 8031148..362df17 100644 --- a/src/app/(payload)/api/cron/community-sync/route.ts +++ b/src/app/(payload)/api/cron/community-sync/route.ts @@ -8,9 +8,7 @@ import { type SupportedPlatform, type UnifiedSyncOptions, } from '@/lib/jobs/UnifiedSyncService' - -// Geheimer Token für Cron-Authentifizierung -const CRON_SECRET = process.env.CRON_SECRET +import { requireCronAuth } from '@/lib/security' /** * GET /api/cron/community-sync @@ -23,14 +21,10 @@ const CRON_SECRET = process.env.CRON_SECRET * - maxItems: Maximale Items pro Account (default: 100) */ export async function GET(request: NextRequest) { - // Auth prüfen wenn CRON_SECRET gesetzt - if (CRON_SECRET) { - const authHeader = request.headers.get('authorization') - - if (authHeader !== `Bearer ${CRON_SECRET}`) { - console.warn('[Cron] Unauthorized request to community-sync') - return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) - } + const authError = requireCronAuth(request) + if (authError) { + console.warn('[Cron] Unauthorized request to community-sync') + return authError } // Query-Parameter parsen @@ -118,14 +112,10 @@ export async function GET(request: NextRequest) { * Manueller Sync-Trigger mit erweiterten Optionen */ export async function POST(request: NextRequest) { - // Auth prüfen - if (CRON_SECRET) { - const authHeader = request.headers.get('authorization') - - if (authHeader !== `Bearer ${CRON_SECRET}`) { - console.warn('[Cron] Unauthorized POST to community-sync') - return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) - } + const authError = requireCronAuth(request) + if (authError) { + console.warn('[Cron] Unauthorized POST to community-sync') + return authError } try { @@ -184,7 +174,12 @@ export async function POST(request: NextRequest) { * HEAD /api/cron/community-sync * Status-Check für Monitoring */ -export async function HEAD() { +export async function HEAD(request: NextRequest) { + const authError = requireCronAuth(request) + if (authError) { + return new NextResponse(null, { status: authError.status }) + } + const status = getUnifiedSyncStatus() return new NextResponse(null, { diff --git a/src/app/(payload)/api/cron/send-reports/route.ts b/src/app/(payload)/api/cron/send-reports/route.ts index cefdf55..6061075 100644 --- a/src/app/(payload)/api/cron/send-reports/route.ts +++ b/src/app/(payload)/api/cron/send-reports/route.ts @@ -5,9 +5,7 @@ import { NextRequest, NextResponse } from 'next/server' import { getPayload } from 'payload' import config from '@payload-config' import { ReportGeneratorService, ReportSchedule } from '@/lib/services/ReportGeneratorService' - -// Geheimer Token für Cron-Authentifizierung -const CRON_SECRET = process.env.CRON_SECRET +import { requireCronAuth } from '@/lib/security' // Status für Monitoring let isRunning = false @@ -21,14 +19,10 @@ let lastResult: { success: boolean; sent: number; failed: number } | null = null * Läuft stündlich und prüft welche Reports gesendet werden müssen */ export async function GET(request: NextRequest) { - // Auth prüfen wenn CRON_SECRET gesetzt - if (CRON_SECRET) { - const authHeader = request.headers.get('authorization') - - if (authHeader !== `Bearer ${CRON_SECRET}`) { - console.warn('[Cron] Unauthorized request to send-reports') - return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) - } + const authError = requireCronAuth(request) + if (authError) { + console.warn('[Cron] Unauthorized request to send-reports') + return authError } if (isRunning) { @@ -119,14 +113,10 @@ export async function GET(request: NextRequest) { * Manuelles Senden eines bestimmten Reports */ export async function POST(request: NextRequest) { - // Auth prüfen - if (CRON_SECRET) { - const authHeader = request.headers.get('authorization') - - if (authHeader !== `Bearer ${CRON_SECRET}`) { - console.warn('[Cron] Unauthorized POST to send-reports') - return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) - } + const authError = requireCronAuth(request) + if (authError) { + console.warn('[Cron] Unauthorized POST to send-reports') + return authError } try { @@ -182,7 +172,12 @@ export async function POST(request: NextRequest) { * HEAD /api/cron/send-reports * Status-Check für Monitoring */ -export async function HEAD() { +export async function HEAD(request: NextRequest) { + const authError = requireCronAuth(request) + if (authError) { + return new NextResponse(null, { status: authError.status }) + } + return new NextResponse(null, { status: isRunning ? 423 : 200, headers: { diff --git a/src/app/(payload)/api/cron/token-refresh/route.ts b/src/app/(payload)/api/cron/token-refresh/route.ts index 00c8ca2..847f244 100644 --- a/src/app/(payload)/api/cron/token-refresh/route.ts +++ b/src/app/(payload)/api/cron/token-refresh/route.ts @@ -8,9 +8,7 @@ import { type TokenRefreshOptions, type TokenPlatform, } from '@/lib/jobs/TokenRefreshService' - -// Geheimer Token für Cron-Authentifizierung -const CRON_SECRET = process.env.CRON_SECRET +import { requireCronAuth } from '@/lib/security' /** * GET /api/cron/token-refresh @@ -23,14 +21,10 @@ const CRON_SECRET = process.env.CRON_SECRET * - dryRun: true/false - nur prüfen, nicht erneuern */ export async function GET(request: NextRequest) { - // Auth prüfen wenn CRON_SECRET gesetzt - if (CRON_SECRET) { - const authHeader = request.headers.get('authorization') - - if (authHeader !== `Bearer ${CRON_SECRET}`) { - console.warn('[Cron] Unauthorized request to token-refresh') - return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) - } + const authError = requireCronAuth(request) + if (authError) { + console.warn('[Cron] Unauthorized request to token-refresh') + return authError } // Query-Parameter parsen @@ -103,14 +97,10 @@ export async function GET(request: NextRequest) { * Manueller Token-Refresh mit erweiterten Optionen */ export async function POST(request: NextRequest) { - // Auth prüfen - if (CRON_SECRET) { - const authHeader = request.headers.get('authorization') - - if (authHeader !== `Bearer ${CRON_SECRET}`) { - console.warn('[Cron] Unauthorized POST to token-refresh') - return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) - } + const authError = requireCronAuth(request) + if (authError) { + console.warn('[Cron] Unauthorized POST to token-refresh') + return authError } try { @@ -166,7 +156,12 @@ export async function POST(request: NextRequest) { * HEAD /api/cron/token-refresh * Status-Check für Monitoring */ -export async function HEAD() { +export async function HEAD(request: NextRequest) { + const authError = requireCronAuth(request) + if (authError) { + return new NextResponse(null, { status: authError.status }) + } + const status = getTokenRefreshStatus() return new NextResponse(null, { diff --git a/src/app/(payload)/api/cron/youtube-channel-sync/route.ts b/src/app/(payload)/api/cron/youtube-channel-sync/route.ts index 1c08d49..b4b9977 100644 --- a/src/app/(payload)/api/cron/youtube-channel-sync/route.ts +++ b/src/app/(payload)/api/cron/youtube-channel-sync/route.ts @@ -6,8 +6,7 @@ import { getPayload } from 'payload' import config from '@payload-config' import { ChannelMetricsSyncService } from '@/lib/integrations/youtube/ChannelMetricsSyncService' - -const CRON_SECRET = process.env.CRON_SECRET +import { requireCronAuth } from '@/lib/security' // Monitoring state let isRunning = false @@ -19,13 +18,10 @@ let lastRunAt: Date | null = null * Scheduled daily at 04:00 UTC via Vercel Cron. */ export async function GET(request: NextRequest): Promise { - if (CRON_SECRET) { - const authHeader = request.headers.get('authorization') - - if (authHeader !== `Bearer ${CRON_SECRET}`) { - console.warn('[Cron] Unauthorized request to youtube-channel-sync') - return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) - } + const authError = requireCronAuth(request) + if (authError) { + console.warn('[Cron] Unauthorized request to youtube-channel-sync') + return authError } if (isRunning) { @@ -73,7 +69,12 @@ export async function GET(request: NextRequest): Promise { * HEAD /api/cron/youtube-channel-sync * Status check for monitoring. */ -export async function HEAD(): Promise { +export async function HEAD(request: NextRequest): Promise { + const authError = requireCronAuth(request) + if (authError) { + return new NextResponse(null, { status: authError.status }) + } + return new NextResponse(null, { status: isRunning ? 423 : 200, headers: { diff --git a/src/app/(payload)/api/cron/youtube-metrics-sync/route.ts b/src/app/(payload)/api/cron/youtube-metrics-sync/route.ts index 68cf944..dd9b5d0 100644 --- a/src/app/(payload)/api/cron/youtube-metrics-sync/route.ts +++ b/src/app/(payload)/api/cron/youtube-metrics-sync/route.ts @@ -6,8 +6,7 @@ import { getPayload } from 'payload' import config from '@payload-config' import { VideoMetricsSyncService } from '@/lib/integrations/youtube/VideoMetricsSyncService' - -const CRON_SECRET = process.env.CRON_SECRET +import { requireCronAuth } from '@/lib/security' // Monitoring state let isRunning = false @@ -19,13 +18,10 @@ let lastRunAt: Date | null = null * Scheduled every 6 hours via Vercel Cron. */ export async function GET(request: NextRequest): Promise { - if (CRON_SECRET) { - const authHeader = request.headers.get('authorization') - - if (authHeader !== `Bearer ${CRON_SECRET}`) { - console.warn('[Cron] Unauthorized request to youtube-metrics-sync') - return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) - } + const authError = requireCronAuth(request) + if (authError) { + console.warn('[Cron] Unauthorized request to youtube-metrics-sync') + return authError } if (isRunning) { @@ -102,7 +98,12 @@ export async function GET(request: NextRequest): Promise { * HEAD /api/cron/youtube-metrics-sync * Status check for monitoring. */ -export async function HEAD(): Promise { +export async function HEAD(request: NextRequest): Promise { + const authError = requireCronAuth(request) + if (authError) { + return new NextResponse(null, { status: authError.status }) + } + return new NextResponse(null, { status: isRunning ? 423 : 200, headers: { diff --git a/src/app/(payload)/api/cron/youtube-sync/route.ts b/src/app/(payload)/api/cron/youtube-sync/route.ts index 6647b60..a5757e6 100644 --- a/src/app/(payload)/api/cron/youtube-sync/route.ts +++ b/src/app/(payload)/api/cron/youtube-sync/route.ts @@ -2,23 +2,17 @@ import { NextRequest, NextResponse } from 'next/server' import { runSync, getSyncStatus } from '@/lib/jobs/syncAllComments' - -// Geheimer Token für Cron-Authentifizierung -const CRON_SECRET = process.env.CRON_SECRET +import { requireCronAuth } from '@/lib/security' /** * GET /api/cron/youtube-sync * Wird von externem Cron-Job aufgerufen (z.B. Vercel Cron, cron-job.org) */ export async function GET(request: NextRequest) { - // Auth prüfen wenn CRON_SECRET gesetzt - if (CRON_SECRET) { - const authHeader = request.headers.get('authorization') - - if (authHeader !== `Bearer ${CRON_SECRET}`) { - console.warn('[Cron] Unauthorized request to youtube-sync') - return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) - } + const authError = requireCronAuth(request) + if (authError) { + console.warn('[Cron] Unauthorized request to youtube-sync') + return authError } console.log('[Cron] Starting scheduled YouTube sync') @@ -49,7 +43,12 @@ export async function GET(request: NextRequest) { * HEAD /api/cron/youtube-sync * Status-Check für Monitoring */ -export async function HEAD() { +export async function HEAD(request: NextRequest) { + const authError = requireCronAuth(request) + if (authError) { + return new NextResponse(null, { status: authError.status }) + } + const status = getSyncStatus() return new NextResponse(null, { diff --git a/src/app/(payload)/api/newsletter/unsubscribe/route.ts b/src/app/(payload)/api/newsletter/unsubscribe/route.ts index c4db59a..6416999 100644 --- a/src/app/(payload)/api/newsletter/unsubscribe/route.ts +++ b/src/app/(payload)/api/newsletter/unsubscribe/route.ts @@ -38,7 +38,7 @@ export async function GET(request: Request): Promise { * Newsletter abbestellen (API-Version für AJAX) * * Body: - * - token (required): Token oder Subscriber-ID + * - token (required): Unsubscribe-Token * - email (alternative): E-Mail-Adresse + tenantId * - tenantId (optional): Tenant-ID */ @@ -80,7 +80,25 @@ export async function POST(request: Request): Promise { ) } - const result = await newsletterService.unsubscribe(String(subscriber.docs[0].id)) + const foundSubscriber = subscriber.docs[0] as { + id: number + confirmationToken?: string | null + } + + let actionToken = foundSubscriber.confirmationToken || null + if (!actionToken) { + actionToken = crypto.randomUUID() + await payload.update({ + collection: 'newsletter-subscribers', + id: foundSubscriber.id, + data: { + confirmationToken: actionToken, + }, + overrideAccess: true, + }) + } + + const result = await newsletterService.unsubscribe(actionToken) return NextResponse.json(result, { status: result.success ? 200 : 400, }) diff --git a/src/app/(payload)/api/users/login/route.ts b/src/app/(payload)/api/users/login/route.ts index 0cf40f5..378c9e9 100644 --- a/src/app/(payload)/api/users/login/route.ts +++ b/src/app/(payload)/api/users/login/route.ts @@ -9,8 +9,9 @@ * - IP-Blocklist-Prüfung * - CSRF-Schutz für Browser-Requests * - * Wichtig: Jedes Security-Feature ist in try-catch gewrappt, - * damit ein Fehler in einem Feature nicht den gesamten Login blockiert. + * Wichtig: Security-Checks laufen fail-closed. + * Wenn ein Sicherheitsmodul nicht verfügbar ist oder ein Check fehlschlägt, + * wird der Request abgelehnt. */ import { getPayload } from 'payload' @@ -92,88 +93,96 @@ async function getAuditService(): Promise { /** * Extrahiert Client-IP aus Request */ -function getClientIp(req: NextRequest): string { - const forwarded = req.headers.get('x-forwarded-for') - const realIp = req.headers.get('x-real-ip') - return (forwarded ? forwarded.split(',')[0]?.trim() : undefined) || realIp || 'unknown' -} - -/** - * Extrahiert Client-Informationen für Audit-Logging - */ -function getClientInfo(req: NextRequest): { ipAddress: string; userAgent: string } { +function getClientInfo(req: NextRequest, ipAddress: string): { ipAddress: string; userAgent: string } { return { - ipAddress: getClientIp(req), + ipAddress, userAgent: req.headers.get('user-agent') || 'unknown', } } export async function POST(req: NextRequest): Promise { - const clientIp = getClientIp(req) + const security = await getSecurityModules() + if ( + !security.getClientIpFromRequest || + !security.isIpBlocked || + !security.validateCsrf || + !security.authLimiter || + !security.rateLimitHeaders + ) { + console.error('[Login] Required security modules are unavailable') + return NextResponse.json( + { errors: [{ message: 'Security checks unavailable' }] }, + { status: 503 }, + ) + } - // 1. IP-Blocklist prüfen (optional, fail-safe) + const clientIp = security.getClientIpFromRequest(req) + + // 1. IP-Blocklist prüfen try { - const security = await getSecurityModules() - if (security.isIpBlocked?.(clientIp)) { + if (security.isIpBlocked(clientIp)) { return NextResponse.json( { errors: [{ message: 'Access denied' }] }, { status: 403 }, ) } } catch (err) { - console.warn('[Login] IP blocklist check failed:', err) - // Continue - don't block login if check fails + console.error('[Login] IP blocklist check failed:', err) + return NextResponse.json( + { errors: [{ message: 'Security check failed' }] }, + { status: 503 }, + ) } - // 2. CSRF-Schutz (nur für Browser-Requests, fail-safe) + // 2. CSRF-Schutz (nur für Browser-Requests) // API-Requests ohne Origin-Header (CLI, Server-to-Server) brauchen kein CSRF const origin = req.headers.get('origin') const isApiRequest = !origin && req.headers.get('content-type')?.includes('application/json') if (!isApiRequest) { try { - const security = await getSecurityModules() - if (security.validateCsrf) { - const csrfResult = security.validateCsrf(req) - if (!csrfResult.valid) { - console.log('[Login] CSRF validation failed:', csrfResult.reason) - return NextResponse.json( - { errors: [{ message: 'CSRF validation failed' }] }, - { status: 403 }, - ) - } + const csrfResult = security.validateCsrf(req) + if (!csrfResult.valid) { + console.log('[Login] CSRF validation failed:', csrfResult.reason) + return NextResponse.json( + { errors: [{ message: 'CSRF validation failed' }] }, + { status: 403 }, + ) } } catch (err) { - console.warn('[Login] CSRF check failed:', err) - // Continue - don't block login if check fails + console.error('[Login] CSRF check failed:', err) + return NextResponse.json( + { errors: [{ message: 'Security check failed' }] }, + { status: 503 }, + ) } } - // 3. Rate-Limiting prüfen (optional, fail-safe) + // 3. Rate-Limiting prüfen try { - const security = await getSecurityModules() - if (security.authLimiter) { - const rateLimit = await security.authLimiter.check(clientIp) - if (!rateLimit.allowed) { - // Optionally log rate limit hit - try { - const payload = await getPayload({ config }) - const audit = await getAuditService() - await audit.logRateLimit?.(payload, '/api/users/login', undefined, undefined) - } catch { - // Ignore audit logging errors - } - - const headers = security.rateLimitHeaders?.(rateLimit, 5) || {} - return NextResponse.json( - { errors: [{ message: 'Too many login attempts. Please try again later.' }] }, - { status: 429, headers }, - ) + const rateLimit = await security.authLimiter.check(clientIp) + if (!rateLimit.allowed) { + // Optionally log rate limit hit + try { + const payload = await getPayload({ config }) + const audit = await getAuditService() + await audit.logRateLimit?.(payload, '/api/users/login', undefined, undefined) + } catch { + // Ignore audit logging errors } + + const headers = security.rateLimitHeaders(rateLimit, 5) + return NextResponse.json( + { errors: [{ message: 'Too many login attempts. Please try again later.' }] }, + { status: 429, headers }, + ) } } catch (err) { - console.warn('[Login] Rate limiting check failed:', err) - // Continue - don't block login if check fails + console.error('[Login] Rate limiting check failed:', err) + return NextResponse.json( + { errors: [{ message: 'Security check failed' }] }, + { status: 503 }, + ) } // 4. Parse Request Body @@ -274,14 +283,14 @@ export async function POST(req: NextRequest): Promise { reason = errorMessage } - // Audit-Log für fehlgeschlagenen Login (optional, fail-safe) - try { - const payload = await getPayload({ config }) - const audit = await getAuditService() - const clientInfo = getClientInfo(req) - await audit.logLoginFailed?.(payload, email, reason, clientInfo) - console.log(`[Audit:Auth] Login failed for ${email}: ${reason} (IP: ${clientInfo.ipAddress})`) - } catch (auditErr) { + // Audit-Log für fehlgeschlagenen Login (optional, fail-safe) + try { + const payload = await getPayload({ config }) + const audit = await getAuditService() + const clientInfo = getClientInfo(req, clientIp) + await audit.logLoginFailed?.(payload, email, reason, clientInfo) + console.log(`[Audit:Auth] Login failed for ${email}: ${reason} (IP: ${clientInfo.ipAddress})`) + } catch (auditErr) { console.warn('[Login] Audit logging failed:', auditErr) // Continue - don't let audit failure affect response } diff --git a/src/collections/Users.ts b/src/collections/Users.ts index da87c15..ee403cc 100644 --- a/src/collections/Users.ts +++ b/src/collections/Users.ts @@ -1,4 +1,4 @@ -import type { CollectionConfig, Access } from 'payload' +import type { CollectionConfig, Access, FieldAccess } from 'payload' import { auditUserAfterChange, auditUserAfterDelete } from '../hooks/auditUserChanges' import { auditAfterLogin, @@ -16,8 +16,12 @@ const canUpdateOwnAccount: Access = ({ req: { user }, id }) => { if (user?.id && id && String(user.id) === String(id)) { return true } - // Ansonsten Multi-Tenant Access Control - return true + // Ansonsten kein Zugriff + return false +} + +const superAdminFieldAccess: FieldAccess = ({ req: { user } }) => { + return Boolean(user?.isSuperAdmin) } export const Users: CollectionConfig = { @@ -54,6 +58,11 @@ export const Users: CollectionConfig = { type: 'checkbox', label: 'Super Admin', defaultValue: false, + access: { + read: superAdminFieldAccess, + create: superAdminFieldAccess, + update: superAdminFieldAccess, + }, admin: { description: 'Super Admins haben Zugriff auf alle Tenants und können neue Tenants erstellen.', position: 'sidebar', diff --git a/src/instrumentation.ts b/src/instrumentation.ts index 399c6cd..8b54873 100644 --- a/src/instrumentation.ts +++ b/src/instrumentation.ts @@ -9,15 +9,23 @@ export async function register() { if (process.env.NEXT_RUNTIME === 'nodejs') { const { getPayload } = await import('payload') const config = await import('./payload.config') - const { initScheduledJobs } = await import('./jobs/scheduler') // Payload initialisieren const payload = await getPayload({ config: config.default, }) - // Scheduled Jobs starten - initScheduledJobs(payload) + const enableInProcessScheduler = + process.env.ENABLE_IN_PROCESS_SCHEDULER === 'true' || process.env.NODE_ENV !== 'production' + + if (enableInProcessScheduler) { + const { initScheduledJobs } = await import('./jobs/scheduler') + initScheduledJobs(payload) + } else { + console.log( + '[Instrumentation] In-process scheduler disabled (set ENABLE_IN_PROCESS_SCHEDULER=true to enable).', + ) + } console.log('[Instrumentation] Payload und Scheduled Jobs initialisiert.') } diff --git a/src/lib/communityAccess.ts b/src/lib/communityAccess.ts index 9a2d8c9..48248eb 100644 --- a/src/lib/communityAccess.ts +++ b/src/lib/communityAccess.ts @@ -10,6 +10,7 @@ interface UserWithRoles { youtube_role?: 'none' | 'viewer' | 'editor' | 'producer' | 'creator' | 'manager' communityRole?: 'none' | 'viewer' | 'moderator' | 'manager' community_role?: 'none' | 'viewer' | 'moderator' | 'manager' + roles?: string[] } const checkIsSuperAdmin = (user: UserWithRoles | null): boolean => { @@ -27,16 +28,52 @@ const getYouTubeRole = (user: UserWithRoles | null): string | undefined => { return user.youtubeRole || user.youtube_role } +function getLegacyCommunityRole(user: UserWithRoles | null): 'none' | 'viewer' | 'moderator' | 'manager' { + if (!user?.roles?.length) return 'none' + if (user.roles.includes('admin') || user.roles.includes('community_manager')) return 'manager' + if (user.roles.includes('community_agent')) return 'moderator' + return 'none' +} + +/** + * Einheitlicher Rollen-Check für Community APIs. + * Unterstützt camelCase/snake_case Felder und Legacy-Rollenlisten. + */ +export function hasCommunityApiAccess( + user: UserWithRoles | null, + minimumRole: 'viewer' | 'moderator' | 'manager' = 'viewer', +): boolean { + if (!user) return false + if (checkIsSuperAdmin(user)) return true + + const roleOrder: Record = { + none: 0, + viewer: 1, + moderator: 2, + manager: 3, + } + + const communityRole = getCommunityRole(user) || getLegacyCommunityRole(user) + const ytRole = getYouTubeRole(user) + const ytCommunityLevel = + ytRole === 'manager' + ? 'manager' + : ytRole === 'creator' || ytRole === 'producer' || ytRole === 'editor' + ? 'moderator' + : ytRole === 'viewer' + ? 'viewer' + : 'none' + + const effectiveRole = roleOrder[communityRole] >= roleOrder[ytCommunityLevel] ? communityRole : ytCommunityLevel + return roleOrder[effectiveRole] >= roleOrder[minimumRole] +} + /** * Prüft ob User Community-Manager oder Super-Admin ist */ export const isCommunityManager: Access = ({ req }) => { const user = req.user as UserWithRoles | null - if (!user) return false - if (checkIsSuperAdmin(user)) return true - // YouTube-Manager haben auch Community-Zugriff - if (getYouTubeRole(user) === 'manager') return true - return getCommunityRole(user) === 'manager' + return hasCommunityApiAccess(user, 'manager') } /** @@ -44,10 +81,7 @@ export const isCommunityManager: Access = ({ req }) => { */ export const isCommunityModeratorOrAbove: Access = ({ req }) => { const user = req.user as UserWithRoles | null - if (!user) return false - if (checkIsSuperAdmin(user)) return true - if (['manager', 'creator'].includes(getYouTubeRole(user) || '')) return true - return ['moderator', 'manager'].includes(getCommunityRole(user) || '') + return hasCommunityApiAccess(user, 'moderator') } /** @@ -55,12 +89,7 @@ export const isCommunityModeratorOrAbove: Access = ({ req }) => { */ export const hasCommunityAccess: Access = ({ req }) => { const user = req.user as UserWithRoles | null - if (!user) return false - if (checkIsSuperAdmin(user)) return true - const ytRole = getYouTubeRole(user) - if (ytRole && ytRole !== 'none') return true - const commRole = getCommunityRole(user) - return commRole !== 'none' && commRole !== undefined + return hasCommunityApiAccess(user, 'viewer') } /** diff --git a/src/lib/email/newsletter-service.ts b/src/lib/email/newsletter-service.ts index caad40a..58e9436 100644 --- a/src/lib/email/newsletter-service.ts +++ b/src/lib/email/newsletter-service.ts @@ -15,6 +15,7 @@ import { // Token-Gültigkeitsdauer: 48 Stunden const TOKEN_EXPIRY_HOURS = 48 +const UNSUBSCRIBE_TOKEN_EXPIRY_DAYS = 365 export interface SubscribeResult { success: boolean @@ -232,14 +233,15 @@ export class NewsletterService { } } - // Status auf bestätigt setzen + // Status auf bestätigt setzen und Token rotieren + const unsubscribeToken = crypto.randomUUID() await this.payload.update({ collection: 'newsletter-subscribers', id: subscriber.id, data: { status: 'confirmed', confirmedAt: new Date().toISOString(), - confirmationToken: null, // Token löschen nach Verwendung + confirmationToken: unsubscribeToken, }, overrideAccess: true, }) @@ -251,7 +253,10 @@ export class NewsletterService { // Willkommens-E-Mail senden if (tenantId) { - await this.sendWelcomeEmail(tenantId as number, subscriber) + await this.sendWelcomeEmail( + tenantId as number, + { ...subscriber, confirmationToken: unsubscribeToken } as NewsletterSubscriber, + ) } return { @@ -273,18 +278,13 @@ export class NewsletterService { */ async unsubscribe(token: string): Promise { try { - // Subscriber mit Token oder ID finden - // Token kann entweder confirmationToken sein oder als ID interpretiert werden + // Subscriber ausschließlich per zufälligem Token finden let subscriber: NewsletterSubscriber | null = null - // Versuche zuerst nach Token zu suchen const byToken = await this.payload.find({ collection: 'newsletter-subscribers', where: { - or: [ - { confirmationToken: { equals: token } }, - { id: { equals: parseInt(token) || 0 } }, - ], + confirmationToken: { equals: token }, }, limit: 1, depth: 1, @@ -309,6 +309,20 @@ export class NewsletterService { } } + if (subscriber.status === 'confirmed' && subscriber.confirmedAt) { + const confirmedAt = new Date(subscriber.confirmedAt) + const expiresAt = new Date( + confirmedAt.getTime() + UNSUBSCRIBE_TOKEN_EXPIRY_DAYS * 24 * 60 * 60 * 1000, + ) + + if (new Date() > expiresAt) { + return { + success: false, + message: 'Der Abmelde-Link ist abgelaufen. Bitte fordern Sie einen neuen Link an.', + } + } + } + // Tenant-ID ermitteln const tenantId = typeof subscriber.tenant === 'object' && subscriber.tenant ? subscriber.tenant.id @@ -321,6 +335,7 @@ export class NewsletterService { data: { status: 'unsubscribed', unsubscribedAt: new Date().toISOString(), + confirmationToken: crypto.randomUUID(), }, overrideAccess: true, }) @@ -365,17 +380,14 @@ export class NewsletterService { } /** - * Willkommens-E-Mail nach erfolgreicher Bestätigung senden - * Verwendet immer die Subscriber-ID für Unsubscribe-Links, - * da der Token nach Bestätigung gelöscht wird. + * Willkommens-E-Mail nach erfolgreicher Bestätigung senden. */ private async sendWelcomeEmail( tenantId: number, subscriber: NewsletterSubscriber, ): Promise { const tenant = await this.getTenant(tenantId) - // Immer ID für Unsubscribe verwenden, da Token nach Bestätigung null ist - const templateData = this.buildTemplateData(tenant, subscriber, { useIdForUnsubscribe: true }) + const templateData = this.buildTemplateData(tenant, subscriber) await sendTenantEmail(this.payload, tenantId, { to: subscriber.email, @@ -391,16 +403,14 @@ export class NewsletterService { } /** - * Abmelde-Bestätigung senden - * Verwendet die Subscriber-ID für Links, da kein Token mehr benötigt wird. + * Abmelde-Bestätigung senden. */ private async sendUnsubscribeEmail( tenantId: number, subscriber: NewsletterSubscriber, ): Promise { const tenant = await this.getTenant(tenantId) - // ID für Links verwenden - const templateData = this.buildTemplateData(tenant, subscriber, { useIdForUnsubscribe: true }) + const templateData = this.buildTemplateData(tenant, subscriber) await sendTenantEmail(this.payload, tenantId, { to: subscriber.email, @@ -430,14 +440,11 @@ export class NewsletterService { /** * Template-Daten zusammenstellen * - * Für Confirmation-E-Mails wird der Token verwendet. - * Für Willkommens- und andere E-Mails wird immer die ID verwendet, - * da der Token nach Bestätigung gelöscht wird. + * Für Confirmation- und Unsubscribe-Links wird ein zufälliger Token verwendet. */ private buildTemplateData( tenant: Tenant, subscriber: NewsletterSubscriber, - options?: { useIdForUnsubscribe?: boolean }, ): NewsletterTemplateData { // Tenant-Website URL ermitteln const tenantWebsite = tenant.domains?.[0]?.domain @@ -449,11 +456,7 @@ export class NewsletterService { ? `${tenantWebsite}/datenschutz` : undefined - // Für Unsubscribe immer ID verwenden wenn kein Token vorhanden - // oder wenn explizit angefordert (z.B. für Willkommens-E-Mail nach Bestätigung) - const unsubscribeToken = options?.useIdForUnsubscribe || !subscriber.confirmationToken - ? String(subscriber.id) - : subscriber.confirmationToken + const unsubscribeToken = subscriber.confirmationToken || '' return { firstName: subscriber.firstName || undefined, diff --git a/src/lib/envValidation.ts b/src/lib/envValidation.ts index 669ed65..4c49745 100644 --- a/src/lib/envValidation.ts +++ b/src/lib/envValidation.ts @@ -66,6 +66,11 @@ function validateEnvVar(name: string, value: string | undefined): string { * Wirft einen Fehler und beendet den Server-Start, wenn Variablen fehlen. */ export function validateRequiredEnvVars(): RequiredEnvVars { + // Production-only security requirements + if (process.env.NODE_ENV === 'production') { + validateEnvVar('CRON_SECRET', process.env.CRON_SECRET) + } + return { PAYLOAD_SECRET: validateEnvVar('PAYLOAD_SECRET', process.env.PAYLOAD_SECRET), DATABASE_URI: validateEnvVar('DATABASE_URI', process.env.DATABASE_URI), diff --git a/src/lib/pdf/pdf-service.ts b/src/lib/pdf/pdf-service.ts index 5648171..e1efc86 100644 --- a/src/lib/pdf/pdf-service.ts +++ b/src/lib/pdf/pdf-service.ts @@ -8,14 +8,121 @@ import { chromium, Browser, Page } from 'playwright' import * as fs from 'fs/promises' import * as path from 'path' +import { lookup } from 'dns/promises' +import { isIP } from 'net' // Umgebungsvariablen const PDF_OUTPUT_DIR = process.env.PDF_OUTPUT_DIR || '/tmp/payload-pdfs' const PDF_GENERATION_DISABLED = process.env.PDF_GENERATION_DISABLED === 'true' +const PDF_ALLOWED_HOSTS = (process.env.PDF_ALLOWED_HOSTS || '') + .split(',') + .map((host) => host.trim().toLowerCase()) + .filter(Boolean) +const PDF_ALLOW_HTTP_URLS = + process.env.NODE_ENV !== 'production' && process.env.PDF_ALLOW_HTTP_URLS === 'true' // Browser-Instanz (wird wiederverwendet) let browserInstance: Browser | null = null +function isPrivateIPv4(ip: string): boolean { + const octets = ip.split('.').map((part) => Number(part)) + if (octets.length !== 4 || octets.some((octet) => Number.isNaN(octet) || octet < 0 || octet > 255)) { + return true + } + + const [a, b] = octets + if (a === 10) return true + if (a === 127) return true + if (a === 0) return true + if (a === 169 && b === 254) return true + if (a === 172 && b >= 16 && b <= 31) return true + if (a === 192 && b === 168) return true + + return false +} + +function isPrivateIPv6(ip: string): boolean { + const normalized = ip.toLowerCase() + if (normalized === '::1') return true + if (normalized.startsWith('fc') || normalized.startsWith('fd')) return true + if (normalized.startsWith('fe80')) return true + return false +} + +function isPrivateOrLoopbackIp(ip: string): boolean { + const version = isIP(ip) + if (version === 4) return isPrivateIPv4(ip) + if (version === 6) return isPrivateIPv6(ip) + return true +} + +function hostnameMatchesAllowedHost(hostname: string): boolean { + if (PDF_ALLOWED_HOSTS.length === 0) { + return true + } + + return PDF_ALLOWED_HOSTS.some((allowedHost) => { + if (allowedHost.startsWith('.')) { + return hostname.endsWith(allowedHost) + } + return hostname === allowedHost + }) +} + +async function validatePdfSourceUrl(rawUrl: string): Promise<{ valid: boolean; reason?: string }> { + let parsedUrl: URL + try { + parsedUrl = new URL(rawUrl) + } catch { + return { valid: false, reason: 'Invalid URL format' } + } + + const isHttps = parsedUrl.protocol === 'https:' + const isAllowedHttp = parsedUrl.protocol === 'http:' && PDF_ALLOW_HTTP_URLS + if (!isHttps && !isAllowedHttp) { + return { valid: false, reason: 'Only HTTPS URLs are allowed (or HTTP with PDF_ALLOW_HTTP_URLS=true in non-production)' } + } + + if (parsedUrl.username || parsedUrl.password) { + return { valid: false, reason: 'URL credentials are not allowed' } + } + + const hostname = parsedUrl.hostname.trim().toLowerCase() + if (!hostname) { + return { valid: false, reason: 'URL host is required' } + } + + if (hostname === 'localhost' || hostname === '0.0.0.0') { + return { valid: false, reason: 'Localhost is not allowed' } + } + + if (!hostnameMatchesAllowedHost(hostname)) { + return { valid: false, reason: 'Host is not in PDF_ALLOWED_HOSTS allowlist' } + } + + if (isIP(hostname)) { + if (isPrivateOrLoopbackIp(hostname)) { + return { valid: false, reason: 'Private or loopback IP addresses are not allowed' } + } + return { valid: true } + } + + try { + const records = await lookup(hostname, { all: true, verbatim: true }) + if (!records.length) { + return { valid: false, reason: 'Host could not be resolved' } + } + + if (records.some((record) => isPrivateOrLoopbackIp(record.address))) { + return { valid: false, reason: 'Host resolves to private or loopback addresses' } + } + } catch { + return { valid: false, reason: 'Host lookup failed' } + } + + return { valid: true } +} + export interface PdfOptions { format?: 'A4' | 'A3' | 'Letter' | 'Legal' landscape?: boolean @@ -206,6 +313,15 @@ export async function generatePdfFromUrl( let page: Page | null = null try { + const urlValidation = await validatePdfSourceUrl(url) + if (!urlValidation.valid) { + return { + success: false, + error: `URL validation failed: ${urlValidation.reason || 'Invalid URL'}`, + duration: Date.now() - startTime, + } + } + const browser = await getBrowser() page = await browser.newPage() diff --git a/src/lib/search.ts b/src/lib/search.ts index ecf2983..4d64a9e 100644 --- a/src/lib/search.ts +++ b/src/lib/search.ts @@ -445,7 +445,7 @@ export async function searchPosts( { id: { in: ftsResult.postIds } }, ] if (categoryId) { - whereConditions.push({ category: { equals: categoryId } }) + whereConditions.push({ categories: { contains: categoryId } }) } result = await payload.find({ @@ -486,7 +486,7 @@ export async function searchPosts( } if (categoryId) { - whereConditions.push({ category: { equals: categoryId } }) + whereConditions.push({ categories: { contains: categoryId } }) } const where: Where = whereConditions.length > 1 ? { and: whereConditions } : whereConditions[0] @@ -584,7 +584,7 @@ export async function getSearchSuggestions( limit: 1, }) if (categoryResult.docs.length > 0) { - whereConditions.push({ category: { equals: categoryResult.docs[0].id } }) + whereConditions.push({ categories: { contains: categoryResult.docs[0].id } }) } } @@ -647,7 +647,7 @@ export async function getPostsByCategory( limit: 1, }) if (categoryResult.docs.length > 0) { - whereConditions.push({ category: { equals: categoryResult.docs[0].id } }) + whereConditions.push({ categories: { contains: categoryResult.docs[0].id } }) } } diff --git a/src/lib/security/cron-auth.ts b/src/lib/security/cron-auth.ts new file mode 100644 index 0000000..a6759ff --- /dev/null +++ b/src/lib/security/cron-auth.ts @@ -0,0 +1,38 @@ +import { timingSafeEqual } from 'crypto' +import { NextRequest, NextResponse } from 'next/server' + +function safeTokenEquals(left: string, right: string): boolean { + const leftBuffer = Buffer.from(left) + const rightBuffer = Buffer.from(right) + + if (leftBuffer.length !== rightBuffer.length) { + return false + } + + return timingSafeEqual(leftBuffer, rightBuffer) +} + +/** + * Enforces authorization for cron endpoints. + * Returns a response when auth fails, otherwise null. + */ +export function requireCronAuth(request: NextRequest): NextResponse | null { + const secret = process.env.CRON_SECRET?.trim() + + // Fail closed when secret is missing. + if (!secret) { + return NextResponse.json({ error: 'Service unavailable' }, { status: 503 }) + } + + const authorization = request.headers.get('authorization') + if (!authorization?.startsWith('Bearer ')) { + return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) + } + + const token = authorization.slice('Bearer '.length).trim() + if (!token || !safeTokenEquals(token, secret)) { + return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) + } + + return null +} diff --git a/src/lib/security/index.ts b/src/lib/security/index.ts index 4dc5d46..5ef0341 100644 --- a/src/lib/security/index.ts +++ b/src/lib/security/index.ts @@ -52,3 +52,6 @@ export { createSafeLogger, isSensitiveField, } from './data-masking' + +// Cron Endpoint Authentication +export { requireCronAuth } from './cron-auth' diff --git a/src/lib/security/ip-allowlist.ts b/src/lib/security/ip-allowlist.ts index f2d0e37..07a14de 100644 --- a/src/lib/security/ip-allowlist.ts +++ b/src/lib/security/ip-allowlist.ts @@ -129,6 +129,11 @@ const allowlistConfigs: Record = { description: 'Admin Panel', allowAllIfEmpty: true, }, + generatePdf: { + envVar: 'GENERATE_PDF_ALLOWED_IPS', + description: '/api/generate-pdf', + allowAllIfEmpty: true, + }, webhooks: { envVar: 'WEBHOOK_ALLOWED_IPS', description: 'Webhook Endpoints', @@ -199,7 +204,7 @@ export function isIpAllowed( const config = allowlistConfigs[endpoint] if (!config) { - return { allowed: true } // Unbekannter Endpoint = erlaubt + return { allowed: false, reason: `Unknown allowlist endpoint: ${String(endpoint)}` } } const allowedIps = parseIpList(process.env[config.envVar]) diff --git a/tests/int/search.int.spec.ts b/tests/int/search.int.spec.ts index a617033..0f4c9d3 100644 --- a/tests/int/search.int.spec.ts +++ b/tests/int/search.int.spec.ts @@ -270,7 +270,7 @@ describe('Search API Integration', () => { version: 1, }, }, - ...(testCategoryId ? { category: testCategoryId } : {}), + ...(testCategoryId ? { categories: [testCategoryId] } : {}), }, }) testPostId = post.id