diff --git a/README.md b/README.md index 27369c5..ffc2f93 100644 --- a/README.md +++ b/README.md @@ -84,3 +84,13 @@ Open http://localhost:6006 ## Site Metadata Site-wide metadata (title, description, keywords, OpenGraph) is configured in `src/config/site.ts`. Update that file to change SEO defaults used in the root layout. + +## A note on updating dependencies + +Payload CMS and Next.js are pinned to specific versions. From the Payload docs we currently have the following requirements (March 2026): + +> Next.js (one of the following version ranges): +15.2.9 - 15.2.x +15.3.9 - 15.3.x +15.4.11 - 15.4.x +16.2.0-canary.10+ diff --git a/_template.scss b/_template.scss index 1f6235f..73d2639 100644 --- a/_template.scss +++ b/_template.scss @@ -1,9 +1,27 @@ -$base-color: #426156; -$shade1: #728F8D; -$shade2: #CBD6D5; -$shade3: #E3E9E8; -$contrast-color: #7D1224; -$contrast-shade1: #C14953; +//$base-color: #426156; +//$shade1: #728F8D; +//$shade2: #CBD6D5; +//$shade3: #E3E9E8; +//$contrast-color: #7D1224; +//$contrast-shade1: #C14953; +//$text-color: #000000; +//$border-radius: 13px; +// +//$white: #ffffff; +//$light-grey: #f3f3f3; +//$border-color-light: #e1e1e1; +//$dark-text: #2c2c2c; +//$placeholder-bg: #c2c2c2; +//$highlight-color: #fff318; +//$shadow: 3px 7px 26px -5px rgba(0, 0, 0, 0.15); +//$overlay: rgba(63, 63, 63, 0.82); +$base-color: #016699; +$shade1: #67A3C2; +$shade2: #DDECF7; +//$shade3: #E3E9E8; +$shade3: #eff6ff; +$contrast-color: #CE490F; +$contrast-shade1: #DA764B; $text-color: #000000; $border-radius: 13px; diff --git a/package-lock.json b/package-lock.json index 9892b43..b6f5d2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "graphql": "^16.12.0", "languagedetect": "^2.0.0", "moment": "^2.30.1", - "next": "16.1.6", + "next": "15.4.11", "payload": "^3.74.0", "qs-esm": "^7.0.3", "react": "19.2.4", @@ -45,7 +45,7 @@ "vitest": "^4.0.18" }, "engines": { - "node": "^18.20.2 || >=20.9.0" + "node": ">=22.0.0" } }, "node_modules/@adobe/css-tools": { @@ -1899,7 +1899,9 @@ } }, "node_modules/@next/env": { - "version": "16.1.6", + "version": "15.4.11", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.4.11.tgz", + "integrity": "sha512-mIYp/091eYfPFezKX7ZPTWqrmSXq+ih6+LcUyKvLmeLQGhlPtot33kuEOd4U+xAA7sFfj21+OtCpIZx0g5SpvQ==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -1911,9 +1913,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.1.6.tgz", - "integrity": "sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==", + "version": "15.4.8", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.4.8.tgz", + "integrity": "sha512-Pf6zXp7yyQEn7sqMxur6+kYcywx5up1J849psyET7/8pG2gQTVMjU3NzgIt8SeEP5to3If/SaWmaA6H6ysBr1A==", "cpu": [ "arm64" ], @@ -1927,9 +1929,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.6.tgz", - "integrity": "sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==", + "version": "15.4.8", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.4.8.tgz", + "integrity": "sha512-xla6AOfz68a6kq3gRQccWEvFC/VRGJmA/QuSLENSO7CZX5WIEkSz7r1FdXUjtGCQ1c2M+ndUAH7opdfLK1PQbw==", "cpu": [ "x64" ], @@ -1943,9 +1945,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.6.tgz", - "integrity": "sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==", + "version": "15.4.8", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.4.8.tgz", + "integrity": "sha512-y3fmp+1Px/SJD+5ntve5QLZnGLycsxsVPkTzAc3zUiXYSOlTPqT8ynfmt6tt4fSo1tAhDPmryXpYKEAcoAPDJw==", "cpu": [ "arm64" ], @@ -1959,9 +1961,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.6.tgz", - "integrity": "sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==", + "version": "15.4.8", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.4.8.tgz", + "integrity": "sha512-DX/L8VHzrr1CfwaVjBQr3GWCqNNFgyWJbeQ10Lx/phzbQo3JNAxUok1DZ8JHRGcL6PgMRgj6HylnLNndxn4Z6A==", "cpu": [ "arm64" ], @@ -1975,7 +1977,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "16.1.6", + "version": "15.4.8", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.4.8.tgz", + "integrity": "sha512-9fLAAXKAL3xEIFdKdzG5rUSvSiZTLLTCc6JKq1z04DR4zY7DbAPcRvNm3K1inVhTiQCs19ZRAgUerHiVKMZZIA==", "cpu": [ "x64" ], @@ -1989,9 +1993,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.6.tgz", - "integrity": "sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==", + "version": "15.4.8", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.4.8.tgz", + "integrity": "sha512-s45V7nfb5g7dbS7JK6XZDcapicVrMMvX2uYgOHP16QuKH/JA285oy6HcxlKqwUNaFY/UC6EvQ8QZUOo19cBKSA==", "cpu": [ "x64" ], @@ -2005,9 +2009,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.6.tgz", - "integrity": "sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==", + "version": "15.4.8", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.4.8.tgz", + "integrity": "sha512-KjgeQyOAq7t/HzAJcWPGA8X+4WY03uSCZ2Ekk98S9OgCFsb6lfBE3dbUzUuEQAN2THbwYgFfxX2yFTCMm8Kehw==", "cpu": [ "arm64" ], @@ -2021,9 +2025,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.6.tgz", - "integrity": "sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==", + "version": "15.4.8", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.4.8.tgz", + "integrity": "sha512-Exsmf/+42fWVnLMaZHzshukTBxZrSwuuLKFvqhGHJ+mC1AokqieLY/XzAl3jc/CqhXLqLY3RRjkKJ9YnLPcRWg==", "cpu": [ "x64" ], @@ -5738,6 +5742,7 @@ }, "node_modules/baseline-browser-mapping": { "version": "2.9.19", + "dev": true, "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.js" @@ -13045,12 +13050,13 @@ "peer": true }, "node_modules/next": { - "version": "16.1.6", + "version": "15.4.11", + "resolved": "https://registry.npmjs.org/next/-/next-15.4.11.tgz", + "integrity": "sha512-IJRyXal45mIsshZI5XJne/intjusslUP1F+FHVBIyMGEqbYtIq1Irdx5vdWBBg58smviPDycmDeV6txsfkv1RQ==", "license": "MIT", "dependencies": { - "@next/env": "16.1.6", + "@next/env": "15.4.11", "@swc/helpers": "0.5.15", - "baseline-browser-mapping": "^2.8.3", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" @@ -13059,18 +13065,18 @@ "next": "dist/bin/next" }, "engines": { - "node": ">=20.9.0" + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "16.1.6", - "@next/swc-darwin-x64": "16.1.6", - "@next/swc-linux-arm64-gnu": "16.1.6", - "@next/swc-linux-arm64-musl": "16.1.6", - "@next/swc-linux-x64-gnu": "16.1.6", - "@next/swc-linux-x64-musl": "16.1.6", - "@next/swc-win32-arm64-msvc": "16.1.6", - "@next/swc-win32-x64-msvc": "16.1.6", - "sharp": "^0.34.4" + "@next/swc-darwin-arm64": "15.4.8", + "@next/swc-darwin-x64": "15.4.8", + "@next/swc-linux-arm64-gnu": "15.4.8", + "@next/swc-linux-arm64-musl": "15.4.8", + "@next/swc-linux-x64-gnu": "15.4.8", + "@next/swc-linux-x64-musl": "15.4.8", + "@next/swc-win32-arm64-msvc": "15.4.8", + "@next/swc-win32-x64-msvc": "15.4.8", + "sharp": "^0.34.3" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -13684,10 +13690,6 @@ "graphql": "^16.8.1" } }, - "node_modules/payload/node_modules/@next/env": { - "version": "15.1.7", - "license": "MIT" - }, "node_modules/payload/node_modules/file-type": { "version": "19.3.0", "license": "MIT", diff --git a/package.json b/package.json index a6be434..6ff3651 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "graphql": "^16.12.0", "languagedetect": "^2.0.0", "moment": "^2.30.1", - "next": "16.1.6", + "next": "15.4.11", "payload": "^3.74.0", "qs-esm": "^7.0.3", "react": "19.2.4", diff --git a/src/app/(home)/[slug]/page.tsx b/src/app/(home)/[slug]/page.tsx new file mode 100644 index 0000000..d00053c --- /dev/null +++ b/src/app/(home)/[slug]/page.tsx @@ -0,0 +1,37 @@ +import { notFound } from 'next/navigation' +import { fetchPageBySlug } from '@/fetch/pages' +import { Blocks } from '@/compositions/Blocks/Blocks' +import { Metadata } from 'next' + +type Props = { + params: Promise<{ slug: string }> +} + +export async function generateMetadata({ params }: Props): Promise { + const slug = (await params).slug + const page = await fetchPageBySlug(slug) + + if (!page) return {} + + return { + title: page.title, + description: page.description || undefined, + } +} + +export default async function DynamicPage({ params }: Props) { + const slug = (await params).slug + const page = await fetchPageBySlug(slug) + + if (!page) { + notFound() + } + + return ( + <> + {page.content && page.content.length > 0 && ( + + )} + + ) +} diff --git a/src/app/(home)/layout.tsx b/src/app/(home)/layout.tsx index 9b8fbb7..4ea8ed0 100644 --- a/src/app/(home)/layout.tsx +++ b/src/app/(home)/layout.tsx @@ -1,9 +1,9 @@ import type { Metadata } from 'next' -import { defaultFont } from '@/assets/fonts' import './globals.css' import { DynamicMenu, Menu } from '@/components/Menu/Menu' import { Footer } from '@/compositions/Footer/Footer' import { comment } from '@/app/(home)/layout-comment' +import { defaultFont } from '@/assets/fonts' import { siteConfig } from '@/config/site' export const metadata: Metadata = { diff --git a/src/assets/fonts.ts b/src/assets/fonts.ts index a545803..1d978f7 100644 --- a/src/assets/fonts.ts +++ b/src/assets/fonts.ts @@ -1,12 +1,11 @@ -import { Faustina, Cairo } from 'next/font/google' +import { Cairo, Faustina } from 'next/font/google' -export const faustina = Faustina({ +export const headerFont = Faustina({ subsets: ['latin'], display: 'swap', }) - export const defaultFont = Cairo({ subsets: ['latin'], weight: ['400', '300'], display: 'swap', -}) +}) \ No newline at end of file diff --git a/src/collections/Pages.ts b/src/collections/Pages.ts new file mode 100644 index 0000000..ea286f0 --- /dev/null +++ b/src/collections/Pages.ts @@ -0,0 +1,106 @@ +import { CollectionConfig } from 'payload' +import { revalidateTag } from 'next/cache' +import { hide, isAdminOrEmployee } from '@/collections/access/admin' +import { ParagraphBlock } from '@/collections/blocks/Paragraph' +import { DocumentBlock } from '@/collections/blocks/Document' +import { ContactformBlock } from '@/collections/blocks/Contactform' +import { GalleryBlock } from '@/collections/blocks/Gallery' +import { DonationBlock } from '@/collections/blocks/Donation' +import { ButtonBlock } from '@/collections/blocks/Button' +import { YoutubePlayerBlock } from '@/collections/blocks/YoutubePlayer' +import { PageHeaderBlock } from '@/collections/blocks/PageHeader' +import { SectionBlock } from '@/collections/blocks/Section' +import { TitleBlock } from '@/collections/blocks/Title' +import { BannerBlock } from '@/collections/blocks/Banner' +import { MainTextBlock } from '@/collections/blocks/MainText' +import { HorizontalRuleBlock } from '@/collections/blocks/HorizontalRule' +import { BlogSliderBlock } from '@/collections/blocks/BlogSlider' +import { MassTimesBlock } from '@/collections/blocks/MassTimes' +import { CollapsibleImageWithTextBlock } from '@/collections/blocks/CollapsibleImageWithText' +import { EventsBlock } from '@/collections/blocks/Events' +import { PublicationAndNewsletterBlock } from '@/collections/blocks/PublicationAndNewsletter' + +export const Pages: CollectionConfig = { + slug: 'pages', + labels: { + singular: { + de: 'Seite', + }, + plural: { + de: 'Seiten', + }, + }, + fields: [ + { + name: 'title', + type: 'text', + required: true, + label: { + de: 'Titel', + }, + }, + { + name: 'description', + type: 'textarea', + label: { + de: 'Beschreibung', + }, + }, + { + name: 'slug', + type: 'text', + required: true, + unique: true, + label: { + de: 'Slug', + }, + admin: { + description: 'URL-Pfad der Seite (z.B. "meine-seite" → /meine-seite)', + }, + }, + { + name: 'content', + type: 'blocks', + label: { + de: 'Inhalt', + }, + blocks: [ + PageHeaderBlock, + ParagraphBlock, + TitleBlock, + SectionBlock, + GalleryBlock, + DocumentBlock, + YoutubePlayerBlock, + ButtonBlock, + ContactformBlock, + DonationBlock, + BannerBlock, + MainTextBlock, + HorizontalRuleBlock, + BlogSliderBlock, + MassTimesBlock, + CollapsibleImageWithTextBlock, + EventsBlock, + PublicationAndNewsletterBlock, + ], + }, + ], + admin: { + useAsTitle: 'title', + hidden: hide, + }, + access: { + read: () => true, + create: isAdminOrEmployee(), + update: isAdminOrEmployee(), + delete: isAdminOrEmployee(), + }, + hooks: { + afterChange: [ + ({ doc }) => { + if (doc.slug) revalidateTag(`pages-${doc.slug}`) + }, + ], + }, +} diff --git a/src/collections/blocks/Banner.ts b/src/collections/blocks/Banner.ts new file mode 100644 index 0000000..9503792 --- /dev/null +++ b/src/collections/blocks/Banner.ts @@ -0,0 +1,83 @@ +import { Block } from 'payload' + +export const BannerBlock: Block = { + slug: 'banner', + labels: { + singular: { + de: 'Banner', + }, + plural: { + de: 'Banner', + }, + }, + fields: [ + { + name: 'textLine1', + type: 'text', + label: { + de: 'Textzeile 1', + }, + }, + { + name: 'textLine2', + type: 'text', + label: { + de: 'Textzeile 2', + }, + }, + { + name: 'textLine3', + type: 'text', + label: { + de: 'Textzeile 3', + }, + }, + { + name: 'backgroundColor', + type: 'text', + label: { + de: 'Hintergrundfarbe', + }, + }, + { + name: 'backgroundImage', + type: 'upload', + relationTo: 'media', + label: { + de: 'Hintergrundbild', + }, + }, + { + name: 'backgroundPosition', + type: 'select', + label: { + de: 'Hintergrundposition', + }, + defaultValue: 'center center', + options: [ + { label: 'Mitte', value: 'center center' }, + { label: 'Oben Mitte', value: 'top center' }, + { label: 'Unten Mitte', value: 'bottom center' }, + { label: 'Links Mitte', value: 'center left' }, + { label: 'Rechts Mitte', value: 'center right' }, + { label: 'Oben Links', value: 'top left' }, + { label: 'Oben Rechts', value: 'top right' }, + { label: 'Unten Links', value: 'bottom left' }, + { label: 'Unten Rechts', value: 'bottom right' }, + ], + }, + { + name: 'backgroundSize', + type: 'select', + label: { + de: 'Hintergrundgröße', + }, + defaultValue: 'cover', + options: [ + { label: 'Abdecken (cover)', value: 'cover' }, + { label: 'Einpassen (contain)', value: 'contain' }, + { label: 'Automatisch (auto)', value: 'auto' }, + ], + }, + ], +} diff --git a/src/collections/blocks/BlogSlider.ts b/src/collections/blocks/BlogSlider.ts new file mode 100644 index 0000000..7f04e13 --- /dev/null +++ b/src/collections/blocks/BlogSlider.ts @@ -0,0 +1,23 @@ +import { Block } from 'payload' + +export const BlogSliderBlock: Block = { + slug: 'blogSlider', + labels: { + singular: { + de: 'Blog-Slider', + }, + plural: { + de: 'Blog-Slider', + }, + }, + fields: [ + { + name: 'title', + type: 'text', + label: { + de: 'Titel', + }, + defaultValue: 'Aktuelles', + }, + ], +} diff --git a/src/collections/blocks/CollapsibleImageWithText.ts b/src/collections/blocks/CollapsibleImageWithText.ts new file mode 100644 index 0000000..fa798c5 --- /dev/null +++ b/src/collections/blocks/CollapsibleImageWithText.ts @@ -0,0 +1,75 @@ +import { Block } from 'payload' +import { lexicalHTML } from '@payloadcms/richtext-lexical' + +export const CollapsibleImageWithTextBlock: Block = { + slug: 'collapsibleImageWithText', + labels: { + singular: { + de: 'Aufklappbarer Bildtext', + }, + plural: { + de: 'Aufklappbare Bildtexte', + }, + }, + fields: [ + { + name: 'title', + type: 'text', + required: true, + label: { + de: 'Titel', + }, + }, + { + name: 'text', + type: 'textarea', + required: true, + label: { + de: 'Text', + }, + }, + { + name: 'image', + type: 'upload', + relationTo: 'media', + required: true, + label: { + de: 'Bild', + }, + }, + { + name: 'content', + type: 'richText', + required: true, + label: { + de: 'Aufklappbarer Inhalt', + }, + }, + lexicalHTML('content', { name: 'content_html' }), + { + name: 'backgroundColor', + type: 'select', + label: { + de: 'Hintergrundfarbe', + }, + options: [ + { label: 'Keine', value: 'none' }, + { label: 'Soft', value: 'soft' }, + { label: 'Off-White', value: 'off-white' }, + ], + defaultValue: 'none', + }, + { + name: 'schema', + type: 'select', + label: { + de: 'Farbschema', + }, + options: [ + { label: 'Base', value: 'base' }, + { label: 'Kontrast', value: 'contrast' }, + ], + defaultValue: 'base', + }, + ], +} diff --git a/src/collections/blocks/Contactform.ts b/src/collections/blocks/Contactform.ts index be0226f..5e9b5d0 100644 --- a/src/collections/blocks/Contactform.ts +++ b/src/collections/blocks/Contactform.ts @@ -1,4 +1,5 @@ import { Block } from 'payload' +import { siteConfig } from '@/config/site' export const ContactformBlock: Block = { slug: 'contactform', @@ -32,7 +33,7 @@ export const ContactformBlock: Block = { { name: 'email', type: 'email', - defaultValue: "kontakt@dreikoenige.berlin", + defaultValue: siteConfig.email, required: true } ] diff --git a/src/collections/blocks/Events.ts b/src/collections/blocks/Events.ts new file mode 100644 index 0000000..ba2988b --- /dev/null +++ b/src/collections/blocks/Events.ts @@ -0,0 +1,33 @@ +import { Block } from 'payload' + +export const EventsBlock: Block = { + slug: 'events', + labels: { + singular: { + de: 'Veranstaltungen', + }, + plural: { + de: 'Veranstaltungen', + }, + }, + fields: [ + { + name: 'title', + type: 'text', + label: { + de: 'Titel', + }, + defaultValue: 'Veranstaltungen', + }, + { + name: 'itemsPerPage', + type: 'number', + label: { + de: 'Einträge pro Seite', + }, + defaultValue: 6, + min: 1, + max: 20, + }, + ], +} diff --git a/src/collections/blocks/HorizontalRule.ts b/src/collections/blocks/HorizontalRule.ts new file mode 100644 index 0000000..053bd41 --- /dev/null +++ b/src/collections/blocks/HorizontalRule.ts @@ -0,0 +1,32 @@ +import { Block } from 'payload' + +export const HorizontalRuleBlock: Block = { + slug: 'horizontalRule', + labels: { + singular: { + de: 'Trennlinie', + }, + plural: { + de: 'Trennlinien', + }, + }, + fields: [ + { + name: 'color', + type: 'select', + label: { + de: 'Farbe', + }, + required: true, + defaultValue: 'base', + options: [ + { label: 'Grundfarbe', value: 'base' }, + { label: 'Abstufung 1', value: 'shade1' }, + { label: 'Abstufung 2', value: 'shade2' }, + { label: 'Abstufung 3', value: 'shade3' }, + { label: 'Kontrastfarbe', value: 'contrast' }, + { label: 'Kontrast Abstufung 1', value: 'contrastShade1' }, + ], + }, + ], +} diff --git a/src/collections/blocks/MainText.ts b/src/collections/blocks/MainText.ts new file mode 100644 index 0000000..37706bb --- /dev/null +++ b/src/collections/blocks/MainText.ts @@ -0,0 +1,25 @@ +import { Block } from 'payload' + +export const MainTextBlock: Block = { + slug: 'mainText', + labels: { + singular: { + de: 'Haupttext', + }, + plural: { + de: 'Haupttexte', + }, + }, + fields: [ + { + name: 'text', + type: 'textarea', + required: true, + defaultValue: + 'Jesus sagte zu ihm: Ich bin der Weg und die Wahrheit und das Leben; niemand kommt zum Vater außer durch mich. Wenn ihr mich erkannt habt, werdet ihr auch meinen Vater erkennen.', + label: { + de: 'Text', + }, + }, + ], +} diff --git a/src/collections/blocks/MassTimes.ts b/src/collections/blocks/MassTimes.ts new file mode 100644 index 0000000..b01b0d3 --- /dev/null +++ b/src/collections/blocks/MassTimes.ts @@ -0,0 +1,30 @@ +import { Block } from 'payload' + +export const MassTimesBlock: Block = { + slug: 'massTimes', + labels: { + singular: { + de: 'Gottesdienste', + }, + plural: { + de: 'Gottesdienste', + }, + }, + fields: [ + { + name: 'title', + type: 'text', + label: { + de: 'Titel', + }, + defaultValue: 'Nächste Gottesdienste', + }, + { + name: 'subtitle', + type: 'text', + label: { + de: 'Untertitel', + }, + }, + ], +} diff --git a/src/collections/blocks/PageHeader.ts b/src/collections/blocks/PageHeader.ts new file mode 100644 index 0000000..29a06a4 --- /dev/null +++ b/src/collections/blocks/PageHeader.ts @@ -0,0 +1,39 @@ +import { Block } from 'payload' + +export const PageHeaderBlock: Block = { + slug: 'pageHeader', + labels: { + singular: { + de: 'Seitenüberschrift', + }, + plural: { + de: 'Seitenüberschriften', + }, + }, + fields: [ + { + name: 'title', + type: 'text', + required: true, + label: { + de: 'Titel', + }, + }, + { + name: 'description', + type: 'textarea', + required: true, + label: { + de: 'Beschreibung', + }, + }, + { + name: 'image', + type: 'upload', + relationTo: 'media', + label: { + de: 'Bild', + }, + }, + ], +} diff --git a/src/collections/blocks/PublicationAndNewsletter.ts b/src/collections/blocks/PublicationAndNewsletter.ts new file mode 100644 index 0000000..0056944 --- /dev/null +++ b/src/collections/blocks/PublicationAndNewsletter.ts @@ -0,0 +1,14 @@ +import { Block } from 'payload' + +export const PublicationAndNewsletterBlock: Block = { + slug: 'publicationAndNewsletter', + labels: { + singular: { + de: 'Publikation & Newsletter', + }, + plural: { + de: 'Publikation & Newsletter', + }, + }, + fields: [], +} diff --git a/src/collections/blocks/Section.ts b/src/collections/blocks/Section.ts new file mode 100644 index 0000000..da29347 --- /dev/null +++ b/src/collections/blocks/Section.ts @@ -0,0 +1,41 @@ +import { Block } from 'payload' + +export const SectionBlock: Block = { + slug: 'section', + labels: { + singular: { + de: 'Abschnitt', + }, + plural: { + de: 'Abschnitte', + }, + }, + fields: [ + { + name: 'backgroundColor', + type: 'select', + label: { + de: 'Hintergrundfarbe', + }, + options: [ + { label: 'Keine', value: 'none' }, + { label: 'Soft', value: 'soft' }, + { label: 'Off-White', value: 'off-white' }, + ], + defaultValue: 'none', + }, + { + name: 'padding', + type: 'select', + label: { + de: 'Abstand', + }, + options: [ + { label: 'Klein', value: 'small' }, + { label: 'Mittel', value: 'medium' }, + { label: 'Groß', value: 'large' }, + ], + defaultValue: 'large', + }, + ], +} diff --git a/src/collections/blocks/Title.ts b/src/collections/blocks/Title.ts new file mode 100644 index 0000000..6dc05dd --- /dev/null +++ b/src/collections/blocks/Title.ts @@ -0,0 +1,56 @@ +import { Block } from 'payload' + +export const TitleBlock: Block = { + slug: 'title', + labels: { + singular: { + de: 'Titel', + }, + plural: { + de: 'Titel', + }, + }, + fields: [ + { + name: 'title', + type: 'text', + required: true, + label: { + de: 'Titel', + }, + }, + { + name: 'subtitle', + type: 'text', + label: { + de: 'Untertitel', + }, + }, + { + name: 'size', + type: 'select', + label: { + de: 'Größe', + }, + options: [ + { label: 'XL', value: 'xl' }, + { label: 'Groß', value: 'lg' }, + { label: 'Mittel', value: 'md' }, + { label: 'Klein', value: 'sm' }, + ], + defaultValue: 'lg', + }, + { + name: 'align', + type: 'select', + label: { + de: 'Ausrichtung', + }, + options: [ + { label: 'Links', value: 'left' }, + { label: 'Zentriert', value: 'center' }, + ], + defaultValue: 'left', + }, + ], +} diff --git a/src/components/Arrow/Arrow.tsx b/src/components/Arrow/Arrow.tsx index 96e55d0..cc54c9e 100644 --- a/src/components/Arrow/Arrow.tsx +++ b/src/components/Arrow/Arrow.tsx @@ -1,10 +1,12 @@ +import styles from './styles.module.scss' + type ArrowProps = { - schema?: 'base' | 'contrast', - direction: 'left' | 'right', + schema?: 'base' | 'contrast' + direction: 'left' | 'right' onClick?: () => void } -export const Arrow = ({ direction, onClick, schema = "base" }: ArrowProps) => { +export const Arrow = ({ direction, onClick, schema = 'base' }: ArrowProps) => { return ( { fill="none" xmlns="http://www.w3.org/2000/svg" style={{ transform: `rotate(${direction === 'left' ? 0 : 180}deg)` }} - stroke={schema === "base" ? '#426156' : '#7D1224'} + stroke="currentColor" + className={styles[schema]} onClick={onClick} > = { component: Banner, } -type Story = StoryObj; +type Story = StoryObj export default meta export const Default: Story = { args: {}, -} \ No newline at end of file +} + +export const CustomText: Story = { + args: { + textLine1: 'Willkommen in der', + textLine2: 'Gemeinde', + textLine3: 'Berlin-Neukölln', + }, +} + +export const CustomBackground: Story = { + args: { + backgroundColor: '#2a4a7f', + backgroundSize: 'contain', + backgroundPosition: 'top left', + }, +} + +export const BottomRight: Story = { + args: { + backgroundColor: '#4a2a7f', + backgroundSize: 'cover', + backgroundPosition: 'bottom right', + }, +} diff --git a/src/components/Banner/Banner.tsx b/src/components/Banner/Banner.tsx index 1a9c428..54c5b76 100644 --- a/src/components/Banner/Banner.tsx +++ b/src/components/Banner/Banner.tsx @@ -1,19 +1,55 @@ import { Logo } from '@/components/Logo/Logo' import styles from "./styles.module.scss" import classNames from 'classnames' -import { faustina } from '@/assets/fonts' -export const Banner = () => { +import { headerFont } from '@/assets/fonts' + +export interface BannerProps { + textLine1?: string | null + textLine2?: string | null + textLine3?: string | null + backgroundColor?: string | null + backgroundImage?: string | null + backgroundPosition?: + | 'center center' + | 'top center' + | 'bottom center' + | 'center left' + | 'center right' + | 'top left' + | 'top right' + | 'bottom left' + | 'bottom right' + | null + backgroundSize?: 'cover' | 'contain' | 'auto' | null +} + +export const Banner = ({ + textLine1 = 'Katholische Pfarrei', + textLine2 = 'Heilige Drei Könige', + textLine3 = 'Nord-Neukölln', + backgroundColor, + backgroundImage, + backgroundPosition = 'center center', + backgroundSize = 'cover', +}: BannerProps) => { + const bannerStyle: React.CSSProperties = { + ...(backgroundColor && { backgroundColor }), + ...(backgroundImage && { backgroundImage: `url(${backgroundImage})` }), + ...(backgroundPosition && { backgroundPosition }), + ...(backgroundSize && { backgroundSize }), + } + return ( -
+
-
-
Katholische Pfarrei
-
Heilige Drei Könige
-
Nord-Neukölln
+
+ {textLine1 &&
{textLine1}
} + {textLine2 &&
{textLine2}
} + {textLine3 &&
{textLine3}
}
) -} \ No newline at end of file +} diff --git a/src/components/Classifieds/Ad.tsx b/src/components/Classifieds/Ad.tsx index 39a86c4..ce69791 100644 --- a/src/components/Classifieds/Ad.tsx +++ b/src/components/Classifieds/Ad.tsx @@ -2,10 +2,10 @@ import classNames from 'classnames' import styles from '@/components/Classifieds/styles.module.scss' -import { faustina } from '@/assets/fonts' import { useState } from 'react' import { SerializedEditorState } from 'lexical' import { RichText } from '@payloadcms/richtext-lexical/react' +import { headerFont } from '@/assets/fonts' type AdProps = { text: SerializedEditorState, @@ -18,7 +18,7 @@ export const Ad = ({text, contact}: AdProps) => { return ( <> -
setDisplayContact(!displayContact)}> +
setDisplayContact(!displayContact)}>
diff --git a/src/components/Cross/Cross.stories.tsx b/src/components/Cross/Cross.stories.tsx index a2f71c2..60e1981 100644 --- a/src/components/Cross/Cross.stories.tsx +++ b/src/components/Cross/Cross.stories.tsx @@ -10,12 +10,12 @@ export default meta export const Default: Story = { args: { - schema: "base" + color: 'base', }, } export const Contrast: Story = { args: { - schema: "contrast" + color: 'contrast', }, } \ No newline at end of file diff --git a/src/components/Cross/Cross.tsx b/src/components/Cross/Cross.tsx index 5dca149..356b4a1 100644 --- a/src/components/Cross/Cross.tsx +++ b/src/components/Cross/Cross.tsx @@ -1,15 +1,19 @@ -import styles from "./styles.module.scss" -import classNames from 'classnames' +import styles from './styles.module.scss' + +export type ColorOption = + | 'base' + | 'shade1' + | 'shade2' + | 'shade3' + | 'contrast' + | 'contrastShade1' type CrossProps = { - schema?: "base" | "contrast" + color?: ColorOption } -export const Cross = ({schema = "base"}: CrossProps) => { - const style = classNames({ - [styles.crossContrast]: schema === "contrast", - [styles.crossBase]: schema === "base", - }) +export const Cross = ({ color = 'base' }: CrossProps) => { + const style = styles[color] return ( = { + component: Dropdown, +} + +type Story = StoryObj; +export default meta + +export const Default: Story = { + args: {}, +} \ No newline at end of file diff --git a/src/components/Dropdown/Dropdown.tsx b/src/components/Dropdown/Dropdown.tsx new file mode 100644 index 0000000..63e55fc --- /dev/null +++ b/src/components/Dropdown/Dropdown.tsx @@ -0,0 +1,25 @@ +"use client" + +import { Button } from '@/components/Button/Button' +import { useState } from 'react' +import styles from './styles.module.scss' +import classNames from 'classnames' + +export const Dropdown = () => { + const [isOpen, setIsOpen] = useState(false) + + return ( +
+ + +
+ ) +} diff --git a/src/components/Dropdown/styles.module.scss b/src/components/Dropdown/styles.module.scss new file mode 100644 index 0000000..7c57ace --- /dev/null +++ b/src/components/Dropdown/styles.module.scss @@ -0,0 +1,40 @@ +@import "template"; + +.container { + display: inline-block; + position: relative; +} + +.options { + width: 130px; + font-size: 14px; + background-color: white; + position: absolute; + top: 60px; + border: 1px solid seashell; + border-radius: 4px; + transition: opacity 100ms ease-in; + display: none; + opacity: 0; +} + +.open { + display: block; + opacity: 1; +} + +.closed { + display: none; +} + +.options a { + display: block; + color: inherit; + padding: 10px 15px; + text-decoration: none; + transition: background-color 0.2s; +} + +.options a:hover { + background-color: $shade2; +} \ No newline at end of file diff --git a/src/components/Gallery/test.js b/src/components/Gallery/test.js new file mode 100644 index 0000000..ce93bc1 --- /dev/null +++ b/src/components/Gallery/test.js @@ -0,0 +1,1169 @@ +var cr_archive = [{ + '@attributes': { 'id': '15022345' }, + 'guid': '15022345', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Laetare! Die Mail zum vierten Fastensonntag 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/15022345.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 28 Mar 2025 12:00:56 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/15022345.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '15016400' }, + 'guid': '15016400', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum dritten Fastensonntag 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/15016400.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 21 Mar 2025 12:00:50 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/15016400.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '15011222' }, + 'guid': '15011222', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum zweiten Fastensonntag 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/15011222.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 14 Mar 2025 12:00:53 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/15011222.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '15005191' }, + 'guid': '15005191', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum ersten Fastensonntag 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/15005191.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 07 Mar 2025 12:00:52 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/15005191.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14999270' }, + 'guid': '14999270', + 'author': 'Geben gibt - Ihr Fundraising Newsletter ', + 'title': 'Geben gibt Hoffnung', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14999270.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Thu, 06 Mar 2025 10:01:49 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14999270.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '15000003' }, + 'guid': '15000003', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 2. M\u00e4rz 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/15000003.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 28 Feb 2025 12:00:56 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/15000003.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14994359' }, + 'guid': '14994359', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 23. Februar 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14994359.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 21 Feb 2025 12:00:52 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14994359.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14988647' }, + 'guid': '14988647', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 16. Februar 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14988647.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 14 Feb 2025 12:01:00 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14988647.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14987670' }, + 'guid': '14987670', + 'author': 'Newsletter Weltkirche ', + 'title': 'Die Welt zu Gast im Erzbistum Berlin', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14987670.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Thu, 13 Feb 2025 13:37:43 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14987670.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14982597' }, + 'guid': '14982597', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 9. Februar 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14982597.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 07 Feb 2025 12:00:54 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14982597.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14979736' }, + 'guid': '14979736', + 'author': 'Geben gibt - Ihr Fundraising Newsletter ', + 'title': 'Geben gibt Hoffnung', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14979736.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Thu, 06 Feb 2025 09:00:45 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14979736.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14976555' }, + 'guid': '14976555', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Fest Darstellung des Herrn 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14976555.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 31 Jan 2025 12:00:55 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14976555.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14970403' }, + 'guid': '14970403', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 26. Januar 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14970403.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 24 Jan 2025 12:00:51 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14970403.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14967649' }, + 'guid': '14967649', + 'author': 'Geben gibt ', + 'title': 'Geben gibt Hoffnung!', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14967649.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Mon, 20 Jan 2025 10:00:51 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14967649.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14966443' }, + 'guid': '14966443', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 19. Januar 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14966443.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 17 Jan 2025 12:00:50 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14966443.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14947565' }, + 'guid': '14947565', + 'author': 'personalentwicklung@erzbistumberlin.de ', + 'title': 'Newsletter Personalentwicklung (Nr. 1\/2025)', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14947565.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Thu, 16 Jan 2025 15:47:41 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14947565.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14960919' }, + 'guid': '14960919', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zu Taufe des Herrn 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14960919.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 10 Jan 2025 12:00:48 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14960919.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14955863' }, + 'guid': '14955863', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum zweiten Sonntag nach Weihnachten', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14955863.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 03 Jan 2025 12:00:48 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14955863.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14953725' }, + 'guid': '14953725', + 'author': 'Dompropst Tobias Przytarski ', + 'title': 'Die Mail zu Erscheinung des Herrn 2025', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14953725.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Thu, 02 Jan 2025 13:00:45 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14953725.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14952183' }, + 'guid': '14952183', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Fest der Heiligen Familie 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14952183.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 27 Dec 2024 12:00:49 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14952183.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14947253' }, + 'guid': '14947253', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Vierten Advent 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14947253.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 20 Dec 2024 12:00:54 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14947253.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14940872' }, + 'guid': '14940872', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Gaudete - Die Mail zum Dritten Advent 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14940872.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 13 Dec 2024 12:01:48 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14940872.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14934479' }, + 'guid': '14934479', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem zweiten Advent 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14934479.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 06 Dec 2024 12:00:58 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14934479.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14933479' }, + 'guid': '14933479', + 'author': 'Geben gibt - Ihr Fundraising Newsletter ', + 'title': 'Gutes tun wie der hl. Nikolaus', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14933479.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 06 Dec 2024 09:00:50 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14933479.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14927720' }, + 'guid': '14927720', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Ersten Adventssonntag 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14927720.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 29 Nov 2024 12:01:06 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14927720.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14926052' }, + 'guid': '14926052', + 'author': 'Dompropst Tobias Przytarski ', + 'title': 'Sankt Hedwig Mitte - Newsletter zum Advent', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14926052.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Thu, 28 Nov 2024 12:02:45 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14926052.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14922715' }, + 'guid': '14922715', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 24. November 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14922715.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 22 Nov 2024 12:01:04 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14922715.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14917104' }, + 'guid': '14917104', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 17. November 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14917104.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 15 Nov 2024 12:00:54 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14917104.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14914276' }, + 'guid': '14914276', + 'author': 'Newsletter Weltkirche ', + 'title': 'Die Welt zu Gast im Erzbistum Berlin', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14914276.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Tue, 12 Nov 2024 12:30:44 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14914276.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14911233' }, + 'guid': '14911233', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 10. November 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14911233.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 08 Nov 2024 12:01:31 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14911233.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14903487' }, + 'guid': '14903487', + 'author': 'Dompropst ', + 'title': 'Kommt und seht! - Newsletter zur Wiederer\u00f6ffnung', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14903487.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 01 Nov 2024 15:00:43 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14903487.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14905140' }, + 'guid': '14905140', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 3. November 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14905140.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 01 Nov 2024 12:00:52 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14905140.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14900137' }, + 'guid': '14900137', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 27. Oktober 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14900137.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 25 Oct 2024 12:00:58 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14900137.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14893964' }, + 'guid': '14893964', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 20. Oktober 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14893964.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 18 Oct 2024 12:00:52 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14893964.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14874690' }, + 'guid': '14874690', + 'author': 'Geben gibt ', + 'title': 'Gutes Tun wie die hl. Hedwig', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14874690.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Wed, 16 Oct 2024 10:43:39 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14874690.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14888602' }, + 'guid': '14888602', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 13. Oktober 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14888602.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 11 Oct 2024 12:00:52 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14888602.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14882925' }, + 'guid': '14882925', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 6. Oktober 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14882925.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 04 Oct 2024 12:00:49 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14882925.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14877415' }, + 'guid': '14877415', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 29. September 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14877415.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 27 Sep 2024 12:00:59 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14877415.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14874577' }, + 'guid': '14874577', + 'author': 'personalentwicklung@erzbistumberlin.de ', + 'title': 'Newsletter Personalentwicklung (Nr. 4\/2024) [mit Korrekturen]', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14874577.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Tue, 24 Sep 2024 12:53:38 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14874577.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14873777' }, + 'guid': '14873777', + 'author': 'personalentwicklung@erzbistumberlin.de ', + 'title': 'Newsletter Personalentwicklung (Nr. 4\/2024)', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14873777.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Tue, 24 Sep 2024 12:09:40 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14873777.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14871043' }, + 'guid': '14871043', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 22. September 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14871043.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 20 Sep 2024 12:00:59 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14871043.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14866022' }, + 'guid': '14866022', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 15. September 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14866022.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 13 Sep 2024 12:00:49 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14866022.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14860283' }, + 'guid': '14860283', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 8. September 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14860283.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 06 Sep 2024 12:00:50 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14860283.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14852960' }, + 'guid': '14852960', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 1. September 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14852960.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 30 Aug 2024 12:00:59 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14852960.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14848139' }, + 'guid': '14848139', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 25. August 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14848139.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 23 Aug 2024 12:00:48 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14848139.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14838498' }, + 'guid': '14838498', + 'author': 'Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 18. August 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14838498.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 16 Aug 2024 12:00:58 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14838498.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14838453' }, + 'guid': '14838453', + 'author': 'Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 11. August 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14838453.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 09 Aug 2024 12:00:57 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14838453.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14830733' }, + 'guid': '14830733', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 4. August 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14830733.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 02 Aug 2024 12:00:48 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14830733.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14828055' }, + 'guid': '14828055', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 28. Juli 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14828055.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 26 Jul 2024 12:01:01 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14828055.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14822667' }, + 'guid': '14822667', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 21. Juli 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14822667.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 19 Jul 2024 12:00:47 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14822667.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14814319' }, + 'guid': '14814319', + 'author': 'personalentwicklung@erzbistumberlin.de ', + 'title': 'Newsletter Personalentwicklung (Nr. 3\/2024)', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14814319.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Thu, 18 Jul 2024 11:49:39 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14814319.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14818788' }, + 'guid': '14818788', + 'author': 'Pfarreientwicklung ', + 'title': 'Mail f\u00fcr die Pfarreien und Pastoralen R\u00e4ume auf dem Weg', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14818788.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Tue, 16 Jul 2024 14:31:40 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14818788.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14817447' }, + 'guid': '14817447', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 14. Juli 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14817447.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 12 Jul 2024 12:00:59 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14817447.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14812119' }, + 'guid': '14812119', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 7. Juli 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14812119.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 05 Jul 2024 12:00:50 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14812119.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14805542' }, + 'guid': '14805542', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 30. Juni 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14805542.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 28 Jun 2024 12:00:52 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14805542.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14792908' }, + 'guid': '14792908', + 'author': 'Geben gibt - Ihr Fundraising Newsletter ', + 'title': 'Sommerzeit ist Familienzeit!', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14792908.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 28 Jun 2024 09:30:43 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14792908.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14799809' }, + 'guid': '14799809', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 23. Juni 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14799809.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 21 Jun 2024 12:00:56 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14799809.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14794736' }, + 'guid': '14794736', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 16. Juni 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14794736.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 14 Jun 2024 12:01:06 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14794736.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14789060' }, + 'guid': '14789060', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 9. Juni 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14789060.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 07 Jun 2024 12:00:52 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14789060.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14783307' }, + 'guid': '14783307', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Sonntag, dem 2. Juni 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14783307.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 31 May 2024 12:01:06 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14783307.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14777862' }, + 'guid': '14777862', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Dreifaltigkeitssonntag 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14777862.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 24 May 2024 12:01:08 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14777862.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14772436' }, + 'guid': '14772436', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Pfingstsonntag 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14772436.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 17 May 2024 12:00:57 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14772436.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14769930' }, + 'guid': '14769930', + 'author': 'Geben gibt ', + 'title': 'Gutes Tun - im guten Geist von Pfingsten', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14769930.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Thu, 16 May 2024 15:00:47 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14769930.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14766533' }, + 'guid': '14766533', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum siebten Sonntag der Osterzeit 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14766533.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 10 May 2024 12:00:51 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14766533.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14761206' }, + 'guid': '14761206', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum sechsten Sonntag der Osterzeit 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14761206.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 03 May 2024 12:00:50 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14761206.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14754917' }, + 'guid': '14754917', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum f\u00fcnften Sonntag der Osterzeit 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14754917.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 26 Apr 2024 12:01:06 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14754917.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14750056' }, + 'guid': '14750056', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum vierten Sonntag der Osterzeit 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14750056.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 19 Apr 2024 12:01:05 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14750056.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14744443' }, + 'guid': '14744443', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum dritten Sonntag der Osterzeit 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14744443.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 12 Apr 2024 12:01:06 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14744443.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14738995' }, + 'guid': '14738995', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Wei\u00dfen Sonntag 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14738995.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 05 Apr 2024 12:00:55 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14738995.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14726337' }, + 'guid': '14726337', + 'author': 'personalentwicklung@erzbistumberlin.de ', + 'title': 'Newsletter Personalentwicklung', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14726337.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Wed, 03 Apr 2024 10:24:41 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14726337.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14732319' }, + 'guid': '14732319', + 'author': 'Geben gibt - Ihr Fundraising Newsletter ', + 'title': 'Gutes tun in der Fastenzeit', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14732319.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Mon, 01 Apr 2024 09:00:43 +0200', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14732319.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14733065' }, + 'guid': '14733065', + 'author': 'Die Mail zum Sonntag ', + 'title': 'Die Mail zum Ostersonntag 2024', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14733065.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Fri, 29 Mar 2024 12:00:59 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14733065.jpg', + }, + }, + 'category_id': '40603', +}, { + '@attributes': { 'id': '14728025' }, + 'guid': '14728025', + 'author': 'Geben gibt - Ihr Fundraising Newsletter ', + 'title': 'Gutes tun in der Fastenzeit', + 'link': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14728025.htm', + 'description': 'HTML<\/a> TXT<\/a> ', + 'pubDate': 'Wed, 27 Mar 2024 09:00:45 +0100', + 'category': 'Standard', + 'enclosure': { + '@attributes': { + 'type': 'image\/jpeg', + 'url': 'https:\/\/s3-eu-west-1.amazonaws.com\/\/files.crsend.com\/37000\/37866\/rss\/media\/14728025.jpg', + }, + }, + 'category_id': '40603', +}] \ No newline at end of file diff --git a/src/components/HorizontalRule/HorizontalRule.tsx b/src/components/HorizontalRule/HorizontalRule.tsx index 6332c74..d9e4fba 100644 --- a/src/components/HorizontalRule/HorizontalRule.tsx +++ b/src/components/HorizontalRule/HorizontalRule.tsx @@ -1,12 +1,16 @@ -import styles from "./styles.module.scss" -import { Cross } from '@/components/Cross/Cross' +import styles from './styles.module.scss' +import { Cross, ColorOption } from '@/components/Cross/Cross' -export const HR = () => { +type HRProps = { + color?: ColorOption +} + +export const HR = ({ color = 'base' }: HRProps) => { return (
-
- -
+
+ +
) } \ No newline at end of file diff --git a/src/components/HorizontalRule/styles.module.scss b/src/components/HorizontalRule/styles.module.scss index 2a62970..c838c40 100644 --- a/src/components/HorizontalRule/styles.module.scss +++ b/src/components/HorizontalRule/styles.module.scss @@ -1,4 +1,4 @@ -@import "template.scss"; +@import 'template.scss'; .container { display: flex; @@ -10,10 +10,34 @@ border-bottom: 1.5px solid $base-color; flex: 1 1 0; height: 28px; + + &.base { + border-color: $base-color; + } + + &.shade1 { + border-color: $shade1; + } + + &.shade2 { + border-color: $shade2; + } + + &.shade3 { + border-color: $shade3; + } + + &.contrast { + border-color: $contrast-color; + } + + &.contrastShade1 { + border-color: $contrast-shade1; + } } @media screen and (max-width: 1100px) { .container { padding: 20px; } -} +} \ No newline at end of file diff --git a/src/components/MegaMenu/MegaMenu.tsx b/src/components/MegaMenu/MegaMenu.tsx index 4b59cf2..6ddef4b 100644 --- a/src/components/MegaMenu/MegaMenu.tsx +++ b/src/components/MegaMenu/MegaMenu.tsx @@ -1,6 +1,6 @@ import styles from "./styles.module.scss" -import { faustina } from '@/assets/fonts' import Link from 'next/link' +import { headerFont } from '@/assets/fonts' type MegaMenuProps = { bibleText: string, @@ -63,7 +63,7 @@ export const MegaMenu = ({ bibleText, bibleBook, groups, onItemClick }: MegaMenu return (
-
+
{bibleText}
diff --git a/src/components/Testimony/Testimony.tsx b/src/components/Testimony/Testimony.tsx index 3191735..5c33186 100644 --- a/src/components/Testimony/Testimony.tsx +++ b/src/components/Testimony/Testimony.tsx @@ -1,7 +1,8 @@ import styles from './styles.module.scss' import { Container } from '@/components/Container/Container' import classNames from 'classnames' -import { faustina } from '@/assets/fonts' + +import { headerFont } from '@/assets/fonts' type TestimonyProps = { name?: string @@ -14,7 +15,7 @@ export const Testimony = ({ name, testimony, occupation }: TestimonyProps) => {
-

+

{testimony}

{typeof name === 'string' && diff --git a/src/components/Title/Title.tsx b/src/components/Title/Title.tsx index b80a874..7f92623 100644 --- a/src/components/Title/Title.tsx +++ b/src/components/Title/Title.tsx @@ -1,6 +1,7 @@ import styles from "./styles.module.scss"; import classNames from 'classnames' -import { faustina } from '@/assets/fonts' + +import { headerFont } from '@/assets/fonts' type TitleProps = { title: string; @@ -26,7 +27,7 @@ export const Title = ({title, subtitle, align = "left", size = "lg", fontStyle = [styles.small]: size === "sm", [styles.left]: align === "left", [styles.center]: align === "center", - [faustina.className]: fontStyle == "serif", + [headerFont.className]: fontStyle == "serif", [styles.cancelled]: cancelled })}>{title} {subtitle && @@ -38,7 +39,7 @@ export const Title = ({title, subtitle, align = "left", size = "lg", fontStyle = [styles.small]: ["xl", "lg"].includes(size), [styles.left]: align === "left", [styles.center]: align === "center", - [faustina.className]: fontStyle == "sans-serif" + [headerFont.className]: fontStyle == "sans-serif" })}> {subtitle}
diff --git a/src/compositions/Blocks/Blocks.tsx b/src/compositions/Blocks/Blocks.tsx index 0005474..21fd885 100644 --- a/src/compositions/Blocks/Blocks.tsx +++ b/src/compositions/Blocks/Blocks.tsx @@ -1,4 +1,4 @@ -import { Blog } from "@/payload-types" +import { Blog, Page } from '@/payload-types' import { Container } from '@/components/Container/Container' import { HTMLText } from '@/components/Text/HTMLText' import { Section } from '@/components/Section/Section' @@ -8,22 +8,34 @@ import { Gallery } from '@/components/Gallery/Gallery' import { transformGallery } from '@/utils/dto/gallery' import { DonationForm } from '@/components/DonationForm/DonationForm' import { YoutubePlayer } from '@/components/YoutubePlayer/YoutubePlayer' +import { PageHeader } from '@/compositions/PageHeader/PageHeader' +import { Title } from '@/components/Title/Title' +import { Row } from '@/components/Flex/Row' +import { Col } from '@/components/Flex/Col' +import { Banner } from '@/components/Banner/Banner' +import { MainText } from '@/components/MainText/MainText' +import { HR } from '@/components/HorizontalRule/HorizontalRule' +import { CollapsibleImageWithText } from '@/compositions/CollapsibleImageWithText/CollapsibleImageWithText' +import { PublicationAndNewsletter } from '@/compositions/PublicationAndNewsletter/PublicationAndNewsletter' +import { BlogSliderBlock } from '@/compositions/Blocks/BlogSliderBlock' +import { MassTimesBlock } from '@/compositions/Blocks/MassTimesBlock' +import { EventsBlock } from '@/compositions/Blocks/EventsBlock' type BlocksProps = { - content: Blog['content']['content'] + content: Blog['content']['content'] | NonNullable } export function Blocks({ content }: BlocksProps) { // determine if some margin at the bottom should be added const length = content.length; - const shouldAddMargin = content[length - 1].blockType === "text" + const shouldAddMargin = content[length - 1].blockType === 'text' return ( <>
{content.map(item => { - if (item.blockType === "text" && item.content_html) { + if (item.blockType === 'text' && item.content_html) { return ( @@ -31,29 +43,29 @@ export function Blocks({ content }: BlocksProps) { ); } - if (item.blockType === "document" && typeof item.file === "object") { + if (item.blockType === 'document' && typeof item.file === 'object') { return ( -
- +
+
) } - if (item.blockType === "contactform") { + if (item.blockType === 'contactform') { return ( ) } - if (item.blockType === "gallery") { + if (item.blockType === 'gallery') { return (
@@ -61,34 +73,165 @@ export function Blocks({ content }: BlocksProps) { ) } - if (item.blockType === "donation") { - return
+ if (item.blockType === 'donation') { + return
} - if (item.blockType === "youtube") { - return
+ if (item.blockType === 'youtube') { + return
} - if (item.blockType === "button") { - return
+ if (item.blockType === 'button') { + return
} + + if (item.blockType === 'pageHeader') { + const imageUrl = typeof item.image === 'object' && item.image?.url + ? item.image.url + : undefined + return ( + + ) + } + + if (item.blockType === 'section') { + const bg = item.backgroundColor === 'none' + ? undefined + : item.backgroundColor as 'soft' | 'off-white' | undefined + return ( +
+ ) + } + + if (item.blockType === 'title') { + return ( + + + </Container> + ) + } + + if (item.blockType === 'banner') { + const bannerImageUrl = + typeof item.backgroundImage === 'object' && + item.backgroundImage?.url + ? item.backgroundImage.url + : undefined + return ( + <Banner + key={item.id} + textLine1={item.textLine1} + textLine2={item.textLine2} + textLine3={item.textLine3} + backgroundColor={item.backgroundColor} + backgroundImage={bannerImageUrl} + backgroundPosition={item.backgroundPosition} + backgroundSize={item.backgroundSize} + /> + ) + } + + if (item.blockType === 'mainText') { + return ( + <Container key={item.id}> + <Section> + <MainText text={item.text} /> + </Section> + </Container> + ) + } + + if (item.blockType === 'horizontalRule') { + return <HR key={item.id} color={item.color} /> + } + + if (item.blockType === 'blogSlider') { + return ( + <BlogSliderBlock + key={item.id} + title={item.title} + /> + ) + } + + if (item.blockType === 'massTimes') { + return ( + <MassTimesBlock + key={item.id} + title={item.title} + subtitle={item.subtitle} + /> + ) + } + + if (item.blockType === 'collapsibleImageWithText') { + const imageUrl = typeof item.image === 'object' && item.image?.url + ? item.image.url + : '' + const bg = item.backgroundColor === 'none' + ? undefined + : item.backgroundColor as 'soft' | 'off-white' | undefined + return ( + <CollapsibleImageWithText + key={item.id} + title={item.title} + text={item.text} + image={imageUrl} + backgroundColor={bg} + schema={item.schema as 'base' | 'contrast' | undefined} + content={ + item.content_html + ? <HTMLText width={'1/2'} html={item.content_html} /> + : <></> + } + /> + ) + } + + if (item.blockType === 'events') { + return ( + <EventsBlock + key={item.id} + title={item.title} + itemsPerPage={item.itemsPerPage} + /> + ) + } + + if (item.blockType === 'publicationAndNewsletter') { + return <PublicationAndNewsletter key={item.id} /> + } })} </div> @@ -97,4 +240,4 @@ export function Blocks({ content }: BlocksProps) { } </> ) -} \ No newline at end of file +} diff --git a/src/compositions/Blocks/BlogSliderBlock.tsx b/src/compositions/Blocks/BlogSliderBlock.tsx new file mode 100644 index 0000000..c3e6fad --- /dev/null +++ b/src/compositions/Blocks/BlogSliderBlock.tsx @@ -0,0 +1,28 @@ +import { fetchBlogPosts } from '@/fetch/blog' +import { blogToSlides } from '@/utils/dto/blog' +import { Container } from '@/components/Container/Container' +import { Section } from '@/components/Section/Section' +import { Title } from '@/components/Title/Title' +import { ImageCardSlider } from '@/compositions/ImageCardSlider/ImageCardSlider' + +type BlogSliderBlockProps = { + title?: string | null +} + +export async function BlogSliderBlock({ + title = 'Aktuelles', +}: BlogSliderBlockProps) { + const blog = await fetchBlogPosts(true) + const posts = blog?.docs || [] + + if (posts.length === 0) return null + + return ( + <Container> + <Section> + <Title title={title || 'Aktuelles'} color={'contrast'} /> + <ImageCardSlider slides={blogToSlides(posts)} /> + </Section> + </Container> + ) +} diff --git a/src/compositions/Blocks/EventsBlock.tsx b/src/compositions/Blocks/EventsBlock.tsx new file mode 100644 index 0000000..db757dc --- /dev/null +++ b/src/compositions/Blocks/EventsBlock.tsx @@ -0,0 +1,31 @@ +import { fetchEvents } from '@/fetch/events' +import { transformEvents } from '@/utils/dto/events' +import { Section } from '@/components/Section/Section' +import { Title } from '@/components/Title/Title' +import { Events } from '@/compositions/Events/Events' + +type EventsBlockProps = { + title?: string | null + itemsPerPage?: number | null +} + +export async function EventsBlock({ + title = 'Veranstaltungen', + itemsPerPage = 6, +}: EventsBlockProps) { + const events = await fetchEvents() + const docs = events?.docs || [] + + if (docs.length === 0) return null + + return ( + <Section> + <Title color={'contrast'} title={title || 'Veranstaltungen'} /> + <Events + events={transformEvents(docs)} + n={itemsPerPage || 6} + schema={'contrast'} + /> + </Section> + ) +} diff --git a/src/compositions/Blocks/MassTimesBlock.tsx b/src/compositions/Blocks/MassTimesBlock.tsx new file mode 100644 index 0000000..0e78312 --- /dev/null +++ b/src/compositions/Blocks/MassTimesBlock.tsx @@ -0,0 +1,108 @@ +import { Worship } from '@/payload-types' +import { fetchWorship } from '@/fetch/worship' +import { fetchLastAnnouncements } from '@/fetch/announcement' +import { fetchLastCalendars } from '@/fetch/calendar' +import { perParish } from '@/utils/dto/perParish' +import { Section } from '@/components/Section/Section' +import { Title } from '@/components/Title/Title' +import { MassRow } from '@/components/MassTable/MassRow' +import { MassTable } from '@/components/MassTable/MassTable' +import { PopupButton } from '@/components/PopupButton/PopupButton' +import { Button } from '@/components/Button/Button' +import moment from 'moment' +import styles from './massTimesBlock.module.scss' + +type MassTimesBlockProps = { + title?: string | null + subtitle?: string | null +} + +const sortWorship = (worship: Worship[]) => { + const map = new Map<string, Worship[]>() + + worship.map((w) => { + if (typeof w.location === 'object') { + const title = w.location.name + + if (map.has(title)) { + map.get(title)?.push(w) + } else { + map.set(title, [w]) + } + } + }) + + return map +} + +export async function MassTimesBlock({ + title = 'Nächste Gottesdienste', + subtitle, +}: MassTimesBlockProps) { + const fromDate = moment().isoWeekday(1).hours(0).minutes(0) + const tillDate = moment().isoWeekday(7).hours(23).minutes(59) + + const worship = await fetchWorship({ + fromDate: fromDate.toDate(), + tillDate: tillDate.toDate(), + }) + const announcements = await fetchLastAnnouncements() + const calendars = await fetchLastCalendars() + + const worshipDocs = worship?.docs || [] + const announcementsLinks = announcements ? perParish(announcements) : [] + const calendarsLinks = calendars ? perParish(calendars) : [] + + const worshipPerLocation = Array.from( + sortWorship(worshipDocs).entries(), + ).sort((a, b) => a[0].localeCompare(b[0])) + + return ( + <Section paddingBottom={'medium'}> + <Title + title={title || 'Nächste Gottesdienste'} + subtitle={subtitle || undefined} + color={'contrast'} + align={'center'} + /> + + <Section padding={'small'}> + <MassRow> + {worshipPerLocation.map((value) => ( + <MassTable + key={value[0]} + location={value[0]} + masses={value[1]} + /> + ))} + </MassRow> + </Section> + + <Section padding={'small'}> + <div className={styles.center}> + {announcementsLinks.length > 0 && ( + <PopupButton + text={'Vermeldungen'} + title={'Vermeldungen'} + links={announcementsLinks} + schema={'shade'} + /> + )} + + {calendarsLinks.length > 0 && ( + <PopupButton + text={'Liturgischer Kalender'} + title={'Kalender'} + links={calendarsLinks} + schema={'shade'} + /> + )} + + <Button href={'/gottesdienst'} size={'md'}> + Alle Gottesdienste + </Button> + </div> + </Section> + </Section> + ) +} diff --git a/src/compositions/Blocks/massTimesBlock.module.scss b/src/compositions/Blocks/massTimesBlock.module.scss new file mode 100644 index 0000000..6bfa9af --- /dev/null +++ b/src/compositions/Blocks/massTimesBlock.module.scss @@ -0,0 +1,6 @@ +.center { + display: flex; + gap: 5px; + justify-content: center; + flex-wrap: wrap; +} diff --git a/src/compositions/CollapsibleImageWithText/CollapsibleImageWithText.tsx b/src/compositions/CollapsibleImageWithText/CollapsibleImageWithText.tsx index 5540a5c..d3db598 100644 --- a/src/compositions/CollapsibleImageWithText/CollapsibleImageWithText.tsx +++ b/src/compositions/CollapsibleImageWithText/CollapsibleImageWithText.tsx @@ -12,7 +12,7 @@ import classNames from 'classnames' type ImageWithTextProps = { backgroundColor?: BackgroundColor, title: string, - image: StaticImageData, + image: StaticImageData | string, text: string schema?: 'base' | 'contrast' content: React.ReactNode diff --git a/src/compositions/PageHeader/PageHeader.tsx b/src/compositions/PageHeader/PageHeader.tsx index c0058d2..101d4d2 100644 --- a/src/compositions/PageHeader/PageHeader.tsx +++ b/src/compositions/PageHeader/PageHeader.tsx @@ -10,7 +10,7 @@ import styles from "./styles.module.scss" type PageHeaderProps = { title: string, description: string, - image?: StaticImageData + image?: StaticImageData | string alt?: string } @@ -25,14 +25,23 @@ export const PageHeader = ({ title, description, image, alt }: PageHeaderProps) <HR /> <Container> - {image && + {image && typeof image === 'string' ? ( <Image unoptimized={true} className={styles.image} src={image} - alt={alt || ""} + width={1100} + height={400} + alt={alt || ''} /> - } + ) : image ? ( + <Image + unoptimized={true} + className={styles.image} + src={image} + alt={alt || ''} + /> + ) : null} </Container> </Section> diff --git a/src/config/site.ts b/src/config/site.ts index 74d9d3d..e4af75d 100644 --- a/src/config/site.ts +++ b/src/config/site.ts @@ -14,4 +14,5 @@ export const siteConfig = { 'Gemeinde', ], ogImage: '/og-logo.svg', -} + email: 'kontakt@dreikoenige.berlin', +} \ No newline at end of file diff --git a/src/fetch/pages.ts b/src/fetch/pages.ts new file mode 100644 index 0000000..28c612f --- /dev/null +++ b/src/fetch/pages.ts @@ -0,0 +1,25 @@ +import { Page } from '@/payload-types' +import { stringify } from 'qs-esm' + +export async function fetchPageBySlug( + slug: string, +): Promise<Page | undefined> { + const query = stringify( + { + where: { + slug: { + equals: slug, + }, + }, + limit: 1, + }, + { addQueryPrefix: true }, + ) + + const res = await fetch(`http://localhost:3000/api/pages${query}`, { + next: { tags: ['pages', `pages-${slug}`] }, + }) + if (!res.ok) return undefined + const data = await res.json() + return data.docs?.[0] +} diff --git a/src/globals/Menu.ts b/src/globals/Menu.ts index 87944d1..58f063b 100644 --- a/src/globals/Menu.ts +++ b/src/globals/Menu.ts @@ -140,6 +140,6 @@ export const MenuGlobal: GlobalConfig = { update: isAdmin() }, hooks: { - afterChange: [() => revalidateTag("menu", "max")] + afterChange: [() => revalidateTag("menu")] } } \ No newline at end of file diff --git a/src/migrations/20260305_095426.json b/src/migrations/20260305_095426.json new file mode 100644 index 0000000..f10a5c0 --- /dev/null +++ b/src/migrations/20260305_095426.json @@ -0,0 +1,9723 @@ +{ + "version": "7", + "dialect": "postgresql", + "tables": { + "public.parish_contact_persons": { + "name": "parish_contact_persons", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "parish_contact_persons_order_idx": { + "name": "parish_contact_persons_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_contact_persons_parent_id_idx": { + "name": "parish_contact_persons_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "parish_contact_persons_parent_id_fk": { + "name": "parish_contact_persons_parent_id_fk", + "tableFrom": "parish_contact_persons", + "tableTo": "parish", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.parish_blocks_text": { + "name": "parish_blocks_text", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "content_html": { + "name": "content_html", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "width": { + "name": "width", + "type": "enum_parish_blocks_text_width", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'1/2'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "parish_blocks_text_order_idx": { + "name": "parish_blocks_text_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_blocks_text_parent_id_idx": { + "name": "parish_blocks_text_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_blocks_text_path_idx": { + "name": "parish_blocks_text_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "parish_blocks_text_parent_id_fk": { + "name": "parish_blocks_text_parent_id_fk", + "tableFrom": "parish_blocks_text", + "tableTo": "parish", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.parish_blocks_document": { + "name": "parish_blocks_document", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "file_id": { + "name": "file_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "button": { + "name": "button", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'Download Flyer'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "parish_blocks_document_order_idx": { + "name": "parish_blocks_document_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_blocks_document_parent_id_idx": { + "name": "parish_blocks_document_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_blocks_document_path_idx": { + "name": "parish_blocks_document_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_blocks_document_file_idx": { + "name": "parish_blocks_document_file_idx", + "columns": [ + { + "expression": "file_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "parish_blocks_document_file_id_documents_id_fk": { + "name": "parish_blocks_document_file_id_documents_id_fk", + "tableFrom": "parish_blocks_document", + "tableTo": "documents", + "columnsFrom": [ + "file_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "parish_blocks_document_parent_id_fk": { + "name": "parish_blocks_document_parent_id_fk", + "tableFrom": "parish_blocks_document", + "tableTo": "parish", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.parish_blocks_donation": { + "name": "parish_blocks_donation", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "parish_blocks_donation_order_idx": { + "name": "parish_blocks_donation_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_blocks_donation_parent_id_idx": { + "name": "parish_blocks_donation_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_blocks_donation_path_idx": { + "name": "parish_blocks_donation_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "parish_blocks_donation_parent_id_fk": { + "name": "parish_blocks_donation_parent_id_fk", + "tableFrom": "parish_blocks_donation", + "tableTo": "parish", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.parish_blocks_youtube": { + "name": "parish_blocks_youtube", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "youtube_id": { + "name": "youtube_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "parish_blocks_youtube_order_idx": { + "name": "parish_blocks_youtube_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_blocks_youtube_parent_id_idx": { + "name": "parish_blocks_youtube_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_blocks_youtube_path_idx": { + "name": "parish_blocks_youtube_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "parish_blocks_youtube_parent_id_fk": { + "name": "parish_blocks_youtube_parent_id_fk", + "tableFrom": "parish_blocks_youtube", + "tableTo": "parish", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.parish_blocks_donation_appeal": { + "name": "parish_blocks_donation_appeal", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "parish_blocks_donation_appeal_order_idx": { + "name": "parish_blocks_donation_appeal_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_blocks_donation_appeal_parent_id_idx": { + "name": "parish_blocks_donation_appeal_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_blocks_donation_appeal_path_idx": { + "name": "parish_blocks_donation_appeal_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "parish_blocks_donation_appeal_parent_id_fk": { + "name": "parish_blocks_donation_appeal_parent_id_fk", + "tableFrom": "parish_blocks_donation_appeal", + "tableTo": "parish", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.parish_gallery": { + "name": "parish_gallery", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "photo_id": { + "name": "photo_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "parish_gallery_order_idx": { + "name": "parish_gallery_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_gallery_parent_id_idx": { + "name": "parish_gallery_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_gallery_photo_idx": { + "name": "parish_gallery_photo_idx", + "columns": [ + { + "expression": "photo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "parish_gallery_photo_id_media_id_fk": { + "name": "parish_gallery_photo_id_media_id_fk", + "tableFrom": "parish_gallery", + "tableTo": "media", + "columnsFrom": [ + "photo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "parish_gallery_parent_id_fk": { + "name": "parish_gallery_parent_id_fk", + "tableFrom": "parish_gallery", + "tableTo": "parish", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.parish": { + "name": "parish", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "history": { + "name": "history", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "contact": { + "name": "contact", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "photo_id": { + "name": "photo_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "parish_photo_idx": { + "name": "parish_photo_idx", + "columns": [ + { + "expression": "photo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_updated_at_idx": { + "name": "parish_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_created_at_idx": { + "name": "parish_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "parish_photo_id_media_id_fk": { + "name": "parish_photo_id_media_id_fk", + "tableFrom": "parish", + "tableTo": "media", + "columnsFrom": [ + "photo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.parish_rels": { + "name": "parish_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "church_id": { + "name": "church_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "parish_rels_order_idx": { + "name": "parish_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_rels_parent_idx": { + "name": "parish_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_rels_path_idx": { + "name": "parish_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "parish_rels_church_id_idx": { + "name": "parish_rels_church_id_idx", + "columns": [ + { + "expression": "church_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "parish_rels_parent_fk": { + "name": "parish_rels_parent_fk", + "tableFrom": "parish_rels", + "tableTo": "parish", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "parish_rels_church_fk": { + "name": "parish_rels_church_fk", + "tableFrom": "parish_rels", + "tableTo": "church", + "columnsFrom": [ + "church_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.church": { + "name": "church", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "address": { + "name": "address", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "church_updated_at_idx": { + "name": "church_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "church_created_at_idx": { + "name": "church_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.worship": { + "name": "worship", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "date": { + "name": "date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "location_id": { + "name": "location_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "enum_worship_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "cancelled": { + "name": "cancelled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "liturgical_day": { + "name": "liturgical_day", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "celebrant": { + "name": "celebrant", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "worship_location_idx": { + "name": "worship_location_idx", + "columns": [ + { + "expression": "location_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "worship_updated_at_idx": { + "name": "worship_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "worship_created_at_idx": { + "name": "worship_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "worship_location_id_church_id_fk": { + "name": "worship_location_id_church_id_fk", + "tableFrom": "worship", + "tableTo": "church", + "columnsFrom": [ + "location_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pope_prayer_intentions": { + "name": "pope_prayer_intentions", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "year": { + "name": "year", + "type": "numeric", + "primaryKey": false, + "notNull": true, + "default": 2026 + }, + "month": { + "name": "month", + "type": "enum_pope_prayer_intentions_month", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'01'" + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'Für '" + }, + "prayer": { + "name": "prayer", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "pope_prayer_intentions_updated_at_idx": { + "name": "pope_prayer_intentions_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pope_prayer_intentions_created_at_idx": { + "name": "pope_prayer_intentions_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.announcement": { + "name": "announcement", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "date": { + "name": "date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "'2026-03-08T09:54:26.297Z'" + }, + "document_id": { + "name": "document_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "announcement_document_idx": { + "name": "announcement_document_idx", + "columns": [ + { + "expression": "document_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "announcement_updated_at_idx": { + "name": "announcement_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "announcement_created_at_idx": { + "name": "announcement_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "announcement_document_id_documents_id_fk": { + "name": "announcement_document_id_documents_id_fk", + "tableFrom": "announcement", + "tableTo": "documents", + "columnsFrom": [ + "document_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.announcement_rels": { + "name": "announcement_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "parish_id": { + "name": "parish_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "announcement_rels_order_idx": { + "name": "announcement_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "announcement_rels_parent_idx": { + "name": "announcement_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "announcement_rels_path_idx": { + "name": "announcement_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "announcement_rels_parish_id_idx": { + "name": "announcement_rels_parish_id_idx", + "columns": [ + { + "expression": "parish_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "announcement_rels_parent_fk": { + "name": "announcement_rels_parent_fk", + "tableFrom": "announcement_rels", + "tableTo": "announcement", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "announcement_rels_parish_fk": { + "name": "announcement_rels_parish_fk", + "tableFrom": "announcement_rels", + "tableTo": "parish", + "columnsFrom": [ + "parish_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.calendar": { + "name": "calendar", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "date": { + "name": "date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "'2026-03-08T09:54:26.602Z'" + }, + "document_id": { + "name": "document_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "calendar_document_idx": { + "name": "calendar_document_idx", + "columns": [ + { + "expression": "document_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "calendar_updated_at_idx": { + "name": "calendar_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "calendar_created_at_idx": { + "name": "calendar_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "calendar_document_id_documents_id_fk": { + "name": "calendar_document_id_documents_id_fk", + "tableFrom": "calendar", + "tableTo": "documents", + "columnsFrom": [ + "document_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.calendar_rels": { + "name": "calendar_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "parish_id": { + "name": "parish_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "calendar_rels_order_idx": { + "name": "calendar_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "calendar_rels_parent_idx": { + "name": "calendar_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "calendar_rels_path_idx": { + "name": "calendar_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "calendar_rels_parish_id_idx": { + "name": "calendar_rels_parish_id_idx", + "columns": [ + { + "expression": "parish_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "calendar_rels_parent_fk": { + "name": "calendar_rels_parent_fk", + "tableFrom": "calendar_rels", + "tableTo": "calendar", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "calendar_rels_parish_fk": { + "name": "calendar_rels_parish_fk", + "tableFrom": "calendar_rels", + "tableTo": "parish", + "columnsFrom": [ + "parish_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.blog_blocks_text": { + "name": "blog_blocks_text", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "content_html": { + "name": "content_html", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "width": { + "name": "width", + "type": "enum_blog_blocks_text_width", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'1/2'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "blog_blocks_text_order_idx": { + "name": "blog_blocks_text_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_text_parent_id_idx": { + "name": "blog_blocks_text_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_text_path_idx": { + "name": "blog_blocks_text_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "blog_blocks_text_parent_id_fk": { + "name": "blog_blocks_text_parent_id_fk", + "tableFrom": "blog_blocks_text", + "tableTo": "blog", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.blog_blocks_document": { + "name": "blog_blocks_document", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "file_id": { + "name": "file_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "button": { + "name": "button", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'Download Flyer'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "blog_blocks_document_order_idx": { + "name": "blog_blocks_document_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_document_parent_id_idx": { + "name": "blog_blocks_document_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_document_path_idx": { + "name": "blog_blocks_document_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_document_file_idx": { + "name": "blog_blocks_document_file_idx", + "columns": [ + { + "expression": "file_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "blog_blocks_document_file_id_documents_id_fk": { + "name": "blog_blocks_document_file_id_documents_id_fk", + "tableFrom": "blog_blocks_document", + "tableTo": "documents", + "columnsFrom": [ + "file_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "blog_blocks_document_parent_id_fk": { + "name": "blog_blocks_document_parent_id_fk", + "tableFrom": "blog_blocks_document", + "tableTo": "blog", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.blog_blocks_donation": { + "name": "blog_blocks_donation", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "blog_blocks_donation_order_idx": { + "name": "blog_blocks_donation_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_donation_parent_id_idx": { + "name": "blog_blocks_donation_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_donation_path_idx": { + "name": "blog_blocks_donation_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "blog_blocks_donation_parent_id_fk": { + "name": "blog_blocks_donation_parent_id_fk", + "tableFrom": "blog_blocks_donation", + "tableTo": "blog", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.blog_blocks_contactform": { + "name": "blog_blocks_contactform", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'Ich bin dabei!'" + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'Um dich anzumelden oder uns zu unterstützen, fülle bitte das Kontaktformular aus. Wir freuen uns sehr, dass du Teil unserer Gemeinschaft bist und mit deinem Engagement dazu beiträgst, unsere Ziele zu erreichen. Solltest du Fragen haben oder weitere Informationen benötigen, zögere nicht, uns zu kontaktieren – wir sind gerne für dich da!'" + }, + "email": { + "name": "email", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'kontakt@dreikoenige.berlin'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "blog_blocks_contactform_order_idx": { + "name": "blog_blocks_contactform_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_contactform_parent_id_idx": { + "name": "blog_blocks_contactform_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_contactform_path_idx": { + "name": "blog_blocks_contactform_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "blog_blocks_contactform_parent_id_fk": { + "name": "blog_blocks_contactform_parent_id_fk", + "tableFrom": "blog_blocks_contactform", + "tableTo": "blog", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.blog_blocks_gallery_items": { + "name": "blog_blocks_gallery_items", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "photo_id": { + "name": "photo_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "blog_blocks_gallery_items_order_idx": { + "name": "blog_blocks_gallery_items_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_gallery_items_parent_id_idx": { + "name": "blog_blocks_gallery_items_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_gallery_items_photo_idx": { + "name": "blog_blocks_gallery_items_photo_idx", + "columns": [ + { + "expression": "photo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "blog_blocks_gallery_items_photo_id_media_id_fk": { + "name": "blog_blocks_gallery_items_photo_id_media_id_fk", + "tableFrom": "blog_blocks_gallery_items", + "tableTo": "media", + "columnsFrom": [ + "photo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "blog_blocks_gallery_items_parent_id_fk": { + "name": "blog_blocks_gallery_items_parent_id_fk", + "tableFrom": "blog_blocks_gallery_items", + "tableTo": "blog_blocks_gallery", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.blog_blocks_gallery": { + "name": "blog_blocks_gallery", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "blog_blocks_gallery_order_idx": { + "name": "blog_blocks_gallery_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_gallery_parent_id_idx": { + "name": "blog_blocks_gallery_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_gallery_path_idx": { + "name": "blog_blocks_gallery_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "blog_blocks_gallery_parent_id_fk": { + "name": "blog_blocks_gallery_parent_id_fk", + "tableFrom": "blog_blocks_gallery", + "tableTo": "blog", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.blog_blocks_youtube": { + "name": "blog_blocks_youtube", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "youtube_id": { + "name": "youtube_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "blog_blocks_youtube_order_idx": { + "name": "blog_blocks_youtube_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_youtube_parent_id_idx": { + "name": "blog_blocks_youtube_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_youtube_path_idx": { + "name": "blog_blocks_youtube_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "blog_blocks_youtube_parent_id_fk": { + "name": "blog_blocks_youtube_parent_id_fk", + "tableFrom": "blog_blocks_youtube", + "tableTo": "blog", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.blog_blocks_button": { + "name": "blog_blocks_button", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "blog_blocks_button_order_idx": { + "name": "blog_blocks_button_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_button_parent_id_idx": { + "name": "blog_blocks_button_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_blocks_button_path_idx": { + "name": "blog_blocks_button_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "blog_blocks_button_parent_id_fk": { + "name": "blog_blocks_button_parent_id_fk", + "tableFrom": "blog_blocks_button", + "tableTo": "blog", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.blog": { + "name": "blog", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "photo_id": { + "name": "photo_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "content_excerpt": { + "name": "content_excerpt", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "configuration_show_on_frontpage": { + "name": "configuration_show_on_frontpage", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "configuration_display_from_date": { + "name": "configuration_display_from_date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "configuration_display_till_date": { + "name": "configuration_display_till_date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "blog_photo_idx": { + "name": "blog_photo_idx", + "columns": [ + { + "expression": "photo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_updated_at_idx": { + "name": "blog_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_created_at_idx": { + "name": "blog_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "blog_photo_id_media_id_fk": { + "name": "blog_photo_id_media_id_fk", + "tableFrom": "blog", + "tableTo": "media", + "columnsFrom": [ + "photo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.blog_rels": { + "name": "blog_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "parish_id": { + "name": "parish_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "blog_rels_order_idx": { + "name": "blog_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_rels_parent_idx": { + "name": "blog_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_rels_path_idx": { + "name": "blog_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "blog_rels_parish_id_idx": { + "name": "blog_rels_parish_id_idx", + "columns": [ + { + "expression": "parish_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "blog_rels_parent_fk": { + "name": "blog_rels_parent_fk", + "tableFrom": "blog_rels", + "tableTo": "blog", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "blog_rels_parish_fk": { + "name": "blog_rels_parish_fk", + "tableFrom": "blog_rels", + "tableTo": "parish", + "columnsFrom": [ + "parish_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.highlight": { + "name": "highlight", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "from": { + "name": "from", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "until": { + "name": "until", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "date": { + "name": "date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "highlight_updated_at_idx": { + "name": "highlight_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "highlight_created_at_idx": { + "name": "highlight_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.highlight_rels": { + "name": "highlight_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "event_id": { + "name": "event_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "blog_id": { + "name": "blog_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "worship_id": { + "name": "worship_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "highlight_rels_order_idx": { + "name": "highlight_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "highlight_rels_parent_idx": { + "name": "highlight_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "highlight_rels_path_idx": { + "name": "highlight_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "highlight_rels_event_id_idx": { + "name": "highlight_rels_event_id_idx", + "columns": [ + { + "expression": "event_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "highlight_rels_blog_id_idx": { + "name": "highlight_rels_blog_id_idx", + "columns": [ + { + "expression": "blog_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "highlight_rels_worship_id_idx": { + "name": "highlight_rels_worship_id_idx", + "columns": [ + { + "expression": "worship_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "highlight_rels_parent_fk": { + "name": "highlight_rels_parent_fk", + "tableFrom": "highlight_rels", + "tableTo": "highlight", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "highlight_rels_event_fk": { + "name": "highlight_rels_event_fk", + "tableFrom": "highlight_rels", + "tableTo": "event", + "columnsFrom": [ + "event_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "highlight_rels_blog_fk": { + "name": "highlight_rels_blog_fk", + "tableFrom": "highlight_rels", + "tableTo": "blog", + "columnsFrom": [ + "blog_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "highlight_rels_worship_fk": { + "name": "highlight_rels_worship_fk", + "tableFrom": "highlight_rels", + "tableTo": "worship", + "columnsFrom": [ + "worship_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.event": { + "name": "event", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "date": { + "name": "date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "location_id": { + "name": "location_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "contact_id": { + "name": "contact_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "short_description": { + "name": "short_description", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "rsvp_link": { + "name": "rsvp_link", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "photo_id": { + "name": "photo_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "flyer_id": { + "name": "flyer_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "cancelled": { + "name": "cancelled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "is_recurring": { + "name": "is_recurring", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "event_location_idx": { + "name": "event_location_idx", + "columns": [ + { + "expression": "location_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "event_contact_idx": { + "name": "event_contact_idx", + "columns": [ + { + "expression": "contact_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "event_photo_idx": { + "name": "event_photo_idx", + "columns": [ + { + "expression": "photo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "event_flyer_idx": { + "name": "event_flyer_idx", + "columns": [ + { + "expression": "flyer_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "event_updated_at_idx": { + "name": "event_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "event_created_at_idx": { + "name": "event_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "event_location_id_locations_id_fk": { + "name": "event_location_id_locations_id_fk", + "tableFrom": "event", + "tableTo": "locations", + "columnsFrom": [ + "location_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "event_contact_id_contact_person_id_fk": { + "name": "event_contact_id_contact_person_id_fk", + "tableFrom": "event", + "tableTo": "contact_person", + "columnsFrom": [ + "contact_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "event_photo_id_media_id_fk": { + "name": "event_photo_id_media_id_fk", + "tableFrom": "event", + "tableTo": "media", + "columnsFrom": [ + "photo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "event_flyer_id_documents_id_fk": { + "name": "event_flyer_id_documents_id_fk", + "tableFrom": "event", + "tableTo": "documents", + "columnsFrom": [ + "flyer_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.event_rels": { + "name": "event_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "parish_id": { + "name": "parish_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "group_id": { + "name": "group_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "event_rels_order_idx": { + "name": "event_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "event_rels_parent_idx": { + "name": "event_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "event_rels_path_idx": { + "name": "event_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "event_rels_parish_id_idx": { + "name": "event_rels_parish_id_idx", + "columns": [ + { + "expression": "parish_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "event_rels_group_id_idx": { + "name": "event_rels_group_id_idx", + "columns": [ + { + "expression": "group_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "event_rels_parent_fk": { + "name": "event_rels_parent_fk", + "tableFrom": "event_rels", + "tableTo": "event", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "event_rels_parish_fk": { + "name": "event_rels_parish_fk", + "tableFrom": "event_rels", + "tableTo": "parish", + "columnsFrom": [ + "parish_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "event_rels_group_fk": { + "name": "event_rels_group_fk", + "tableFrom": "event_rels", + "tableTo": "group", + "columnsFrom": [ + "group_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.classifieds": { + "name": "classifieds", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "until": { + "name": "until", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "'2026-04-04T08:54:26.674Z'" + }, + "text": { + "name": "text", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "email": { + "name": "email", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "classifieds_updated_at_idx": { + "name": "classifieds_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "classifieds_created_at_idx": { + "name": "classifieds_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.contact_person": { + "name": "contact_person", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "photo_id": { + "name": "photo_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "email": { + "name": "email", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "telephone": { + "name": "telephone", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "contact_person_photo_idx": { + "name": "contact_person_photo_idx", + "columns": [ + { + "expression": "photo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "contact_person_updated_at_idx": { + "name": "contact_person_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "contact_person_created_at_idx": { + "name": "contact_person_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "contact_person_photo_id_media_id_fk": { + "name": "contact_person_photo_id_media_id_fk", + "tableFrom": "contact_person", + "tableTo": "media", + "columnsFrom": [ + "photo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.locations": { + "name": "locations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "address": { + "name": "address", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "coordinates": { + "name": "coordinates", + "type": "geometry(Point)", + "primaryKey": false, + "notNull": false + }, + "notes": { + "name": "notes", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "barrier_free": { + "name": "barrier_free", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "locations_name_idx": { + "name": "locations_name_idx", + "columns": [ + { + "expression": "name", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "locations_updated_at_idx": { + "name": "locations_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "locations_created_at_idx": { + "name": "locations_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.group_blocks_text": { + "name": "group_blocks_text", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "content_html": { + "name": "content_html", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "width": { + "name": "width", + "type": "enum_group_blocks_text_width", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'1/2'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "group_blocks_text_order_idx": { + "name": "group_blocks_text_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_text_parent_id_idx": { + "name": "group_blocks_text_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_text_path_idx": { + "name": "group_blocks_text_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "group_blocks_text_parent_id_fk": { + "name": "group_blocks_text_parent_id_fk", + "tableFrom": "group_blocks_text", + "tableTo": "group", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.group_blocks_gallery_items": { + "name": "group_blocks_gallery_items", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "photo_id": { + "name": "photo_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "group_blocks_gallery_items_order_idx": { + "name": "group_blocks_gallery_items_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_gallery_items_parent_id_idx": { + "name": "group_blocks_gallery_items_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_gallery_items_photo_idx": { + "name": "group_blocks_gallery_items_photo_idx", + "columns": [ + { + "expression": "photo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "group_blocks_gallery_items_photo_id_media_id_fk": { + "name": "group_blocks_gallery_items_photo_id_media_id_fk", + "tableFrom": "group_blocks_gallery_items", + "tableTo": "media", + "columnsFrom": [ + "photo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_blocks_gallery_items_parent_id_fk": { + "name": "group_blocks_gallery_items_parent_id_fk", + "tableFrom": "group_blocks_gallery_items", + "tableTo": "group_blocks_gallery", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.group_blocks_gallery": { + "name": "group_blocks_gallery", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "group_blocks_gallery_order_idx": { + "name": "group_blocks_gallery_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_gallery_parent_id_idx": { + "name": "group_blocks_gallery_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_gallery_path_idx": { + "name": "group_blocks_gallery_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "group_blocks_gallery_parent_id_fk": { + "name": "group_blocks_gallery_parent_id_fk", + "tableFrom": "group_blocks_gallery", + "tableTo": "group", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.group_blocks_document": { + "name": "group_blocks_document", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "file_id": { + "name": "file_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "button": { + "name": "button", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'Download Flyer'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "group_blocks_document_order_idx": { + "name": "group_blocks_document_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_document_parent_id_idx": { + "name": "group_blocks_document_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_document_path_idx": { + "name": "group_blocks_document_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_document_file_idx": { + "name": "group_blocks_document_file_idx", + "columns": [ + { + "expression": "file_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "group_blocks_document_file_id_documents_id_fk": { + "name": "group_blocks_document_file_id_documents_id_fk", + "tableFrom": "group_blocks_document", + "tableTo": "documents", + "columnsFrom": [ + "file_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "group_blocks_document_parent_id_fk": { + "name": "group_blocks_document_parent_id_fk", + "tableFrom": "group_blocks_document", + "tableTo": "group", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.group_blocks_donation": { + "name": "group_blocks_donation", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "group_blocks_donation_order_idx": { + "name": "group_blocks_donation_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_donation_parent_id_idx": { + "name": "group_blocks_donation_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_donation_path_idx": { + "name": "group_blocks_donation_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "group_blocks_donation_parent_id_fk": { + "name": "group_blocks_donation_parent_id_fk", + "tableFrom": "group_blocks_donation", + "tableTo": "group", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.group_blocks_youtube": { + "name": "group_blocks_youtube", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "youtube_id": { + "name": "youtube_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "group_blocks_youtube_order_idx": { + "name": "group_blocks_youtube_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_youtube_parent_id_idx": { + "name": "group_blocks_youtube_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_youtube_path_idx": { + "name": "group_blocks_youtube_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "group_blocks_youtube_parent_id_fk": { + "name": "group_blocks_youtube_parent_id_fk", + "tableFrom": "group_blocks_youtube", + "tableTo": "group", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.group_blocks_contactform": { + "name": "group_blocks_contactform", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'Ich bin dabei!'" + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'Um dich anzumelden oder uns zu unterstützen, fülle bitte das Kontaktformular aus. Wir freuen uns sehr, dass du Teil unserer Gemeinschaft bist und mit deinem Engagement dazu beiträgst, unsere Ziele zu erreichen. Solltest du Fragen haben oder weitere Informationen benötigen, zögere nicht, uns zu kontaktieren – wir sind gerne für dich da!'" + }, + "email": { + "name": "email", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'kontakt@dreikoenige.berlin'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "group_blocks_contactform_order_idx": { + "name": "group_blocks_contactform_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_contactform_parent_id_idx": { + "name": "group_blocks_contactform_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_contactform_path_idx": { + "name": "group_blocks_contactform_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "group_blocks_contactform_parent_id_fk": { + "name": "group_blocks_contactform_parent_id_fk", + "tableFrom": "group_blocks_contactform", + "tableTo": "group", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.group_blocks_button": { + "name": "group_blocks_button", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "group_blocks_button_order_idx": { + "name": "group_blocks_button_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_button_parent_id_idx": { + "name": "group_blocks_button_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_blocks_button_path_idx": { + "name": "group_blocks_button_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "group_blocks_button_parent_id_fk": { + "name": "group_blocks_button_parent_id_fk", + "tableFrom": "group_blocks_button", + "tableTo": "group", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.group": { + "name": "group", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "photo_id": { + "name": "photo_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "short_description": { + "name": "short_description", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "text": { + "name": "text", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "text_html": { + "name": "text_html", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "group_photo_idx": { + "name": "group_photo_idx", + "columns": [ + { + "expression": "photo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_slug_idx": { + "name": "group_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_updated_at_idx": { + "name": "group_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "group_created_at_idx": { + "name": "group_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "group_photo_id_media_id_fk": { + "name": "group_photo_id_media_id_fk", + "tableFrom": "group", + "tableTo": "media", + "columnsFrom": [ + "photo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.donation_form": { + "name": "donation_form", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "photo_id": { + "name": "photo_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "text": { + "name": "text", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "donation_form_photo_idx": { + "name": "donation_form_photo_idx", + "columns": [ + { + "expression": "photo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "donation_form_updated_at_idx": { + "name": "donation_form_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "donation_form_created_at_idx": { + "name": "donation_form_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "donation_form_photo_id_media_id_fk": { + "name": "donation_form_photo_id_media_id_fk", + "tableFrom": "donation_form", + "tableTo": "media", + "columnsFrom": [ + "photo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_page_header": { + "name": "pages_blocks_page_header", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "image_id": { + "name": "image_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_page_header_order_idx": { + "name": "pages_blocks_page_header_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_page_header_parent_id_idx": { + "name": "pages_blocks_page_header_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_page_header_path_idx": { + "name": "pages_blocks_page_header_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_page_header_image_idx": { + "name": "pages_blocks_page_header_image_idx", + "columns": [ + { + "expression": "image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_page_header_image_id_media_id_fk": { + "name": "pages_blocks_page_header_image_id_media_id_fk", + "tableFrom": "pages_blocks_page_header", + "tableTo": "media", + "columnsFrom": [ + "image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "pages_blocks_page_header_parent_id_fk": { + "name": "pages_blocks_page_header_parent_id_fk", + "tableFrom": "pages_blocks_page_header", + "tableTo": "pages", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_text": { + "name": "pages_blocks_text", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "content_html": { + "name": "content_html", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "width": { + "name": "width", + "type": "enum_pages_blocks_text_width", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'1/2'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_text_order_idx": { + "name": "pages_blocks_text_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_text_parent_id_idx": { + "name": "pages_blocks_text_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_text_path_idx": { + "name": "pages_blocks_text_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_text_parent_id_fk": { + "name": "pages_blocks_text_parent_id_fk", + "tableFrom": "pages_blocks_text", + "tableTo": "pages", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_title": { + "name": "pages_blocks_title", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "subtitle": { + "name": "subtitle", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "size": { + "name": "size", + "type": "enum_pages_blocks_title_size", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'lg'" + }, + "align": { + "name": "align", + "type": "enum_pages_blocks_title_align", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'left'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_title_order_idx": { + "name": "pages_blocks_title_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_title_parent_id_idx": { + "name": "pages_blocks_title_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_title_path_idx": { + "name": "pages_blocks_title_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_title_parent_id_fk": { + "name": "pages_blocks_title_parent_id_fk", + "tableFrom": "pages_blocks_title", + "tableTo": "pages", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_row_columns": { + "name": "pages_blocks_row_columns", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": true + }, + "content_html": { + "name": "content_html", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_row_columns_order_idx": { + "name": "pages_blocks_row_columns_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_row_columns_parent_id_idx": { + "name": "pages_blocks_row_columns_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_row_columns_parent_id_fk": { + "name": "pages_blocks_row_columns_parent_id_fk", + "tableFrom": "pages_blocks_row_columns", + "tableTo": "pages_blocks_row", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_row": { + "name": "pages_blocks_row", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_row_order_idx": { + "name": "pages_blocks_row_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_row_parent_id_idx": { + "name": "pages_blocks_row_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_row_path_idx": { + "name": "pages_blocks_row_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_row_parent_id_fk": { + "name": "pages_blocks_row_parent_id_fk", + "tableFrom": "pages_blocks_row", + "tableTo": "pages", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_section": { + "name": "pages_blocks_section", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "background_color": { + "name": "background_color", + "type": "enum_pages_blocks_section_background_color", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'none'" + }, + "padding": { + "name": "padding", + "type": "enum_pages_blocks_section_padding", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'large'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_section_order_idx": { + "name": "pages_blocks_section_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_section_parent_id_idx": { + "name": "pages_blocks_section_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_section_path_idx": { + "name": "pages_blocks_section_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_section_parent_id_fk": { + "name": "pages_blocks_section_parent_id_fk", + "tableFrom": "pages_blocks_section", + "tableTo": "pages", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_gallery_items": { + "name": "pages_blocks_gallery_items", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "photo_id": { + "name": "photo_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "pages_blocks_gallery_items_order_idx": { + "name": "pages_blocks_gallery_items_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_gallery_items_parent_id_idx": { + "name": "pages_blocks_gallery_items_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_gallery_items_photo_idx": { + "name": "pages_blocks_gallery_items_photo_idx", + "columns": [ + { + "expression": "photo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_gallery_items_photo_id_media_id_fk": { + "name": "pages_blocks_gallery_items_photo_id_media_id_fk", + "tableFrom": "pages_blocks_gallery_items", + "tableTo": "media", + "columnsFrom": [ + "photo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "pages_blocks_gallery_items_parent_id_fk": { + "name": "pages_blocks_gallery_items_parent_id_fk", + "tableFrom": "pages_blocks_gallery_items", + "tableTo": "pages_blocks_gallery", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_gallery": { + "name": "pages_blocks_gallery", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_gallery_order_idx": { + "name": "pages_blocks_gallery_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_gallery_parent_id_idx": { + "name": "pages_blocks_gallery_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_gallery_path_idx": { + "name": "pages_blocks_gallery_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_gallery_parent_id_fk": { + "name": "pages_blocks_gallery_parent_id_fk", + "tableFrom": "pages_blocks_gallery", + "tableTo": "pages", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_document": { + "name": "pages_blocks_document", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "file_id": { + "name": "file_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "button": { + "name": "button", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'Download Flyer'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_document_order_idx": { + "name": "pages_blocks_document_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_document_parent_id_idx": { + "name": "pages_blocks_document_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_document_path_idx": { + "name": "pages_blocks_document_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_document_file_idx": { + "name": "pages_blocks_document_file_idx", + "columns": [ + { + "expression": "file_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_document_file_id_documents_id_fk": { + "name": "pages_blocks_document_file_id_documents_id_fk", + "tableFrom": "pages_blocks_document", + "tableTo": "documents", + "columnsFrom": [ + "file_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "pages_blocks_document_parent_id_fk": { + "name": "pages_blocks_document_parent_id_fk", + "tableFrom": "pages_blocks_document", + "tableTo": "pages", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_youtube": { + "name": "pages_blocks_youtube", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "youtube_id": { + "name": "youtube_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_youtube_order_idx": { + "name": "pages_blocks_youtube_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_youtube_parent_id_idx": { + "name": "pages_blocks_youtube_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_youtube_path_idx": { + "name": "pages_blocks_youtube_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_youtube_parent_id_fk": { + "name": "pages_blocks_youtube_parent_id_fk", + "tableFrom": "pages_blocks_youtube", + "tableTo": "pages", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_button": { + "name": "pages_blocks_button", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_button_order_idx": { + "name": "pages_blocks_button_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_button_parent_id_idx": { + "name": "pages_blocks_button_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_button_path_idx": { + "name": "pages_blocks_button_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_button_parent_id_fk": { + "name": "pages_blocks_button_parent_id_fk", + "tableFrom": "pages_blocks_button", + "tableTo": "pages", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_contactform": { + "name": "pages_blocks_contactform", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'Ich bin dabei!'" + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'Um dich anzumelden oder uns zu unterstützen, fülle bitte das Kontaktformular aus. Wir freuen uns sehr, dass du Teil unserer Gemeinschaft bist und mit deinem Engagement dazu beiträgst, unsere Ziele zu erreichen. Solltest du Fragen haben oder weitere Informationen benötigen, zögere nicht, uns zu kontaktieren – wir sind gerne für dich da!'" + }, + "email": { + "name": "email", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "'kontakt@dreikoenige.berlin'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_contactform_order_idx": { + "name": "pages_blocks_contactform_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_contactform_parent_id_idx": { + "name": "pages_blocks_contactform_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_contactform_path_idx": { + "name": "pages_blocks_contactform_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_contactform_parent_id_fk": { + "name": "pages_blocks_contactform_parent_id_fk", + "tableFrom": "pages_blocks_contactform", + "tableTo": "pages", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_donation": { + "name": "pages_blocks_donation", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_donation_order_idx": { + "name": "pages_blocks_donation_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_donation_parent_id_idx": { + "name": "pages_blocks_donation_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_donation_path_idx": { + "name": "pages_blocks_donation_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_donation_parent_id_fk": { + "name": "pages_blocks_donation_parent_id_fk", + "tableFrom": "pages_blocks_donation", + "tableTo": "pages", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages_blocks_banner": { + "name": "pages_blocks_banner", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "pages_blocks_banner_order_idx": { + "name": "pages_blocks_banner_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_banner_parent_id_idx": { + "name": "pages_blocks_banner_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_blocks_banner_path_idx": { + "name": "pages_blocks_banner_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "pages_blocks_banner_parent_id_fk": { + "name": "pages_blocks_banner_parent_id_fk", + "tableFrom": "pages_blocks_banner", + "tableTo": "pages", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.pages": { + "name": "pages", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "pages_slug_idx": { + "name": "pages_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_updated_at_idx": { + "name": "pages_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "pages_created_at_idx": { + "name": "pages_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.magazine": { + "name": "magazine", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "cover_id": { + "name": "cover_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "document_id": { + "name": "document_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "date": { + "name": "date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "magazine_cover_idx": { + "name": "magazine_cover_idx", + "columns": [ + { + "expression": "cover_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "magazine_document_idx": { + "name": "magazine_document_idx", + "columns": [ + { + "expression": "document_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "magazine_updated_at_idx": { + "name": "magazine_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "magazine_created_at_idx": { + "name": "magazine_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "magazine_cover_id_media_id_fk": { + "name": "magazine_cover_id_media_id_fk", + "tableFrom": "magazine", + "tableTo": "media", + "columnsFrom": [ + "cover_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "magazine_document_id_documents_id_fk": { + "name": "magazine_document_id_documents_id_fk", + "tableFrom": "magazine", + "tableTo": "documents", + "columnsFrom": [ + "document_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.documents": { + "name": "documents", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "prefix": { + "name": "prefix", + "type": "varchar", + "primaryKey": false, + "notNull": false, + "default": "'documents/'" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "thumbnail_u_r_l": { + "name": "thumbnail_u_r_l", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filename": { + "name": "filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "mime_type": { + "name": "mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filesize": { + "name": "filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "width": { + "name": "width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "height": { + "name": "height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_x": { + "name": "focal_x", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_y": { + "name": "focal_y", + "type": "numeric", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "documents_updated_at_idx": { + "name": "documents_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "documents_created_at_idx": { + "name": "documents_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "documents_filename_idx": { + "name": "documents_filename_idx", + "columns": [ + { + "expression": "filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.media": { + "name": "media", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "alt": { + "name": "alt", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "search": { + "name": "search", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "copyrights_source": { + "name": "copyrights_source", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "''" + }, + "copyrights_public_without_name": { + "name": "copyrights_public_without_name", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "copyrights_consent": { + "name": "copyrights_consent", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "prefix": { + "name": "prefix", + "type": "varchar", + "primaryKey": false, + "notNull": false, + "default": "'media/'" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "thumbnail_u_r_l": { + "name": "thumbnail_u_r_l", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filename": { + "name": "filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "mime_type": { + "name": "mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filesize": { + "name": "filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "width": { + "name": "width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "height": { + "name": "height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_x": { + "name": "focal_x", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_y": { + "name": "focal_y", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_url": { + "name": "sizes_thumbnail_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_width": { + "name": "sizes_thumbnail_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_height": { + "name": "sizes_thumbnail_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_mime_type": { + "name": "sizes_thumbnail_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_filesize": { + "name": "sizes_thumbnail_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_filename": { + "name": "sizes_thumbnail_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_banner_url": { + "name": "sizes_banner_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_banner_width": { + "name": "sizes_banner_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_banner_height": { + "name": "sizes_banner_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_banner_mime_type": { + "name": "sizes_banner_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_banner_filesize": { + "name": "sizes_banner_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_banner_filename": { + "name": "sizes_banner_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_gallery_url": { + "name": "sizes_gallery_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_gallery_width": { + "name": "sizes_gallery_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_gallery_height": { + "name": "sizes_gallery_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_gallery_mime_type": { + "name": "sizes_gallery_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_gallery_filesize": { + "name": "sizes_gallery_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_gallery_filename": { + "name": "sizes_gallery_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_tablet_url": { + "name": "sizes_tablet_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_tablet_width": { + "name": "sizes_tablet_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_tablet_height": { + "name": "sizes_tablet_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_tablet_mime_type": { + "name": "sizes_tablet_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_tablet_filesize": { + "name": "sizes_tablet_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_tablet_filename": { + "name": "sizes_tablet_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "media_updated_at_idx": { + "name": "media_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_created_at_idx": { + "name": "media_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_filename_idx": { + "name": "media_filename_idx", + "columns": [ + { + "expression": "filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_thumbnail_sizes_thumbnail_filename_idx": { + "name": "media_sizes_thumbnail_sizes_thumbnail_filename_idx", + "columns": [ + { + "expression": "sizes_thumbnail_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_banner_sizes_banner_filename_idx": { + "name": "media_sizes_banner_sizes_banner_filename_idx", + "columns": [ + { + "expression": "sizes_banner_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_gallery_sizes_gallery_filename_idx": { + "name": "media_sizes_gallery_sizes_gallery_filename_idx", + "columns": [ + { + "expression": "sizes_gallery_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_tablet_sizes_tablet_filename_idx": { + "name": "media_sizes_tablet_sizes_tablet_filename_idx", + "columns": [ + { + "expression": "sizes_tablet_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users_sessions": { + "name": "users_sessions", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "users_sessions_order_idx": { + "name": "users_sessions_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_sessions_parent_id_idx": { + "name": "users_sessions_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "users_sessions_parent_id_fk": { + "name": "users_sessions_parent_id_fk", + "tableFrom": "users_sessions", + "tableTo": "users", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true, + "default": "''" + }, + "roles": { + "name": "roles", + "type": "enum_users_roles", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'user'" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "email": { + "name": "email", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "reset_password_token": { + "name": "reset_password_token", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "reset_password_expiration": { + "name": "reset_password_expiration", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "salt": { + "name": "salt", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "hash": { + "name": "hash", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "login_attempts": { + "name": "login_attempts", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "lock_until": { + "name": "lock_until", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "users_updated_at_idx": { + "name": "users_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_created_at_idx": { + "name": "users_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_email_idx": { + "name": "users_email_idx", + "columns": [ + { + "expression": "email", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users_rels": { + "name": "users_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "group_id": { + "name": "group_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "users_rels_order_idx": { + "name": "users_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_rels_parent_idx": { + "name": "users_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_rels_path_idx": { + "name": "users_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_rels_group_id_idx": { + "name": "users_rels_group_id_idx", + "columns": [ + { + "expression": "group_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "users_rels_parent_fk": { + "name": "users_rels_parent_fk", + "tableFrom": "users_rels", + "tableTo": "users", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "users_rels_group_fk": { + "name": "users_rels_group_fk", + "tableFrom": "users_rels", + "tableTo": "group", + "columnsFrom": [ + "group_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_kv": { + "name": "payload_kv", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "key": { + "name": "key", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "data": { + "name": "data", + "type": "jsonb", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "payload_kv_key_idx": { + "name": "payload_kv_key_idx", + "columns": [ + { + "expression": "key", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_locked_documents": { + "name": "payload_locked_documents", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "global_slug": { + "name": "global_slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_locked_documents_global_slug_idx": { + "name": "payload_locked_documents_global_slug_idx", + "columns": [ + { + "expression": "global_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_updated_at_idx": { + "name": "payload_locked_documents_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_created_at_idx": { + "name": "payload_locked_documents_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_locked_documents_rels": { + "name": "payload_locked_documents_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "parish_id": { + "name": "parish_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "church_id": { + "name": "church_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "worship_id": { + "name": "worship_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "pope_prayer_intentions_id": { + "name": "pope_prayer_intentions_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "announcement_id": { + "name": "announcement_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "calendar_id": { + "name": "calendar_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "blog_id": { + "name": "blog_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "highlight_id": { + "name": "highlight_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "event_id": { + "name": "event_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "classifieds_id": { + "name": "classifieds_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "contact_person_id": { + "name": "contact_person_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "locations_id": { + "name": "locations_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "group_id": { + "name": "group_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "donation_form_id": { + "name": "donation_form_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "pages_id": { + "name": "pages_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "magazine_id": { + "name": "magazine_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "documents_id": { + "name": "documents_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "media_id": { + "name": "media_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + }, + "users_id": { + "name": "users_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "payload_locked_documents_rels_order_idx": { + "name": "payload_locked_documents_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_parent_idx": { + "name": "payload_locked_documents_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_path_idx": { + "name": "payload_locked_documents_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_parish_id_idx": { + "name": "payload_locked_documents_rels_parish_id_idx", + "columns": [ + { + "expression": "parish_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_church_id_idx": { + "name": "payload_locked_documents_rels_church_id_idx", + "columns": [ + { + "expression": "church_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_worship_id_idx": { + "name": "payload_locked_documents_rels_worship_id_idx", + "columns": [ + { + "expression": "worship_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_pope_prayer_intentions_id_idx": { + "name": "payload_locked_documents_rels_pope_prayer_intentions_id_idx", + "columns": [ + { + "expression": "pope_prayer_intentions_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_announcement_id_idx": { + "name": "payload_locked_documents_rels_announcement_id_idx", + "columns": [ + { + "expression": "announcement_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_calendar_id_idx": { + "name": "payload_locked_documents_rels_calendar_id_idx", + "columns": [ + { + "expression": "calendar_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_blog_id_idx": { + "name": "payload_locked_documents_rels_blog_id_idx", + "columns": [ + { + "expression": "blog_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_highlight_id_idx": { + "name": "payload_locked_documents_rels_highlight_id_idx", + "columns": [ + { + "expression": "highlight_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_event_id_idx": { + "name": "payload_locked_documents_rels_event_id_idx", + "columns": [ + { + "expression": "event_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_classifieds_id_idx": { + "name": "payload_locked_documents_rels_classifieds_id_idx", + "columns": [ + { + "expression": "classifieds_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_contact_person_id_idx": { + "name": "payload_locked_documents_rels_contact_person_id_idx", + "columns": [ + { + "expression": "contact_person_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_locations_id_idx": { + "name": "payload_locked_documents_rels_locations_id_idx", + "columns": [ + { + "expression": "locations_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_group_id_idx": { + "name": "payload_locked_documents_rels_group_id_idx", + "columns": [ + { + "expression": "group_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_donation_form_id_idx": { + "name": "payload_locked_documents_rels_donation_form_id_idx", + "columns": [ + { + "expression": "donation_form_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_pages_id_idx": { + "name": "payload_locked_documents_rels_pages_id_idx", + "columns": [ + { + "expression": "pages_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_magazine_id_idx": { + "name": "payload_locked_documents_rels_magazine_id_idx", + "columns": [ + { + "expression": "magazine_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_documents_id_idx": { + "name": "payload_locked_documents_rels_documents_id_idx", + "columns": [ + { + "expression": "documents_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_media_id_idx": { + "name": "payload_locked_documents_rels_media_id_idx", + "columns": [ + { + "expression": "media_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_users_id_idx": { + "name": "payload_locked_documents_rels_users_id_idx", + "columns": [ + { + "expression": "users_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "payload_locked_documents_rels_parent_fk": { + "name": "payload_locked_documents_rels_parent_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "payload_locked_documents", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_parish_fk": { + "name": "payload_locked_documents_rels_parish_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "parish", + "columnsFrom": [ + "parish_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_church_fk": { + "name": "payload_locked_documents_rels_church_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "church", + "columnsFrom": [ + "church_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_worship_fk": { + "name": "payload_locked_documents_rels_worship_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "worship", + "columnsFrom": [ + "worship_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_pope_prayer_intentions_fk": { + "name": "payload_locked_documents_rels_pope_prayer_intentions_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "pope_prayer_intentions", + "columnsFrom": [ + "pope_prayer_intentions_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_announcement_fk": { + "name": "payload_locked_documents_rels_announcement_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "announcement", + "columnsFrom": [ + "announcement_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_calendar_fk": { + "name": "payload_locked_documents_rels_calendar_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "calendar", + "columnsFrom": [ + "calendar_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_blog_fk": { + "name": "payload_locked_documents_rels_blog_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "blog", + "columnsFrom": [ + "blog_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_highlight_fk": { + "name": "payload_locked_documents_rels_highlight_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "highlight", + "columnsFrom": [ + "highlight_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_event_fk": { + "name": "payload_locked_documents_rels_event_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "event", + "columnsFrom": [ + "event_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_classifieds_fk": { + "name": "payload_locked_documents_rels_classifieds_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "classifieds", + "columnsFrom": [ + "classifieds_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_contact_person_fk": { + "name": "payload_locked_documents_rels_contact_person_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "contact_person", + "columnsFrom": [ + "contact_person_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_locations_fk": { + "name": "payload_locked_documents_rels_locations_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "locations", + "columnsFrom": [ + "locations_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_group_fk": { + "name": "payload_locked_documents_rels_group_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "group", + "columnsFrom": [ + "group_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_donation_form_fk": { + "name": "payload_locked_documents_rels_donation_form_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "donation_form", + "columnsFrom": [ + "donation_form_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_pages_fk": { + "name": "payload_locked_documents_rels_pages_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "pages", + "columnsFrom": [ + "pages_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_magazine_fk": { + "name": "payload_locked_documents_rels_magazine_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "magazine", + "columnsFrom": [ + "magazine_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_documents_fk": { + "name": "payload_locked_documents_rels_documents_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "documents", + "columnsFrom": [ + "documents_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_media_fk": { + "name": "payload_locked_documents_rels_media_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "media", + "columnsFrom": [ + "media_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_users_fk": { + "name": "payload_locked_documents_rels_users_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "users", + "columnsFrom": [ + "users_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_preferences": { + "name": "payload_preferences", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "key": { + "name": "key", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "value": { + "name": "value", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_preferences_key_idx": { + "name": "payload_preferences_key_idx", + "columns": [ + { + "expression": "key", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_updated_at_idx": { + "name": "payload_preferences_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_created_at_idx": { + "name": "payload_preferences_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_preferences_rels": { + "name": "payload_preferences_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "users_id": { + "name": "users_id", + "type": "uuid", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "payload_preferences_rels_order_idx": { + "name": "payload_preferences_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_parent_idx": { + "name": "payload_preferences_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_path_idx": { + "name": "payload_preferences_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_users_id_idx": { + "name": "payload_preferences_rels_users_id_idx", + "columns": [ + { + "expression": "users_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "payload_preferences_rels_parent_fk": { + "name": "payload_preferences_rels_parent_fk", + "tableFrom": "payload_preferences_rels", + "tableTo": "payload_preferences", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_preferences_rels_users_fk": { + "name": "payload_preferences_rels_users_fk", + "tableFrom": "payload_preferences_rels", + "tableTo": "users", + "columnsFrom": [ + "users_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_migrations": { + "name": "payload_migrations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "batch": { + "name": "batch", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_migrations_updated_at_idx": { + "name": "payload_migrations_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_migrations_created_at_idx": { + "name": "payload_migrations_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.menu_blocks_simple_item": { + "name": "menu_blocks_simple_item", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "href": { + "name": "href", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "enum_menu_blocks_simple_item_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'default'" + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "menu_blocks_simple_item_order_idx": { + "name": "menu_blocks_simple_item_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "menu_blocks_simple_item_parent_id_idx": { + "name": "menu_blocks_simple_item_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "menu_blocks_simple_item_path_idx": { + "name": "menu_blocks_simple_item_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "menu_blocks_simple_item_parent_id_fk": { + "name": "menu_blocks_simple_item_parent_id_fk", + "tableFrom": "menu_blocks_simple_item", + "tableTo": "menu", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.menu_blocks_mega_menu_groups_items": { + "name": "menu_blocks_mega_menu_groups_items", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "href": { + "name": "href", + "type": "varchar", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "menu_blocks_mega_menu_groups_items_order_idx": { + "name": "menu_blocks_mega_menu_groups_items_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "menu_blocks_mega_menu_groups_items_parent_id_idx": { + "name": "menu_blocks_mega_menu_groups_items_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "menu_blocks_mega_menu_groups_items_parent_id_fk": { + "name": "menu_blocks_mega_menu_groups_items_parent_id_fk", + "tableFrom": "menu_blocks_mega_menu_groups_items", + "tableTo": "menu_blocks_mega_menu_groups", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.menu_blocks_mega_menu_groups": { + "name": "menu_blocks_mega_menu_groups", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "menu_blocks_mega_menu_groups_order_idx": { + "name": "menu_blocks_mega_menu_groups_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "menu_blocks_mega_menu_groups_parent_id_idx": { + "name": "menu_blocks_mega_menu_groups_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "menu_blocks_mega_menu_groups_parent_id_fk": { + "name": "menu_blocks_mega_menu_groups_parent_id_fk", + "tableFrom": "menu_blocks_mega_menu_groups", + "tableTo": "menu_blocks_mega_menu", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.menu_blocks_mega_menu": { + "name": "menu_blocks_mega_menu", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "uuid", + "primaryKey": false, + "notNull": true + }, + "_path": { + "name": "_path", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "quote": { + "name": "quote", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "source": { + "name": "source", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "block_name": { + "name": "block_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "menu_blocks_mega_menu_order_idx": { + "name": "menu_blocks_mega_menu_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "menu_blocks_mega_menu_parent_id_idx": { + "name": "menu_blocks_mega_menu_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "menu_blocks_mega_menu_path_idx": { + "name": "menu_blocks_mega_menu_path_idx", + "columns": [ + { + "expression": "_path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "menu_blocks_mega_menu_parent_id_fk": { + "name": "menu_blocks_mega_menu_parent_id_fk", + "tableFrom": "menu_blocks_mega_menu", + "tableTo": "menu", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.menu": { + "name": "menu", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "uuid", + "primaryKey": true, + "notNull": true, + "default": "gen_random_uuid()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.enum_parish_blocks_text_width": { + "name": "enum_parish_blocks_text_width", + "schema": "public", + "values": [ + "1/2", + "3/4" + ] + }, + "public.enum_worship_type": { + "name": "enum_worship_type", + "schema": "public", + "values": [ + "MASS", + "FAMILY", + "WORD" + ] + }, + "public.enum_pope_prayer_intentions_month": { + "name": "enum_pope_prayer_intentions_month", + "schema": "public", + "values": [ + "01", + "02", + "03", + "04", + "05", + "06", + "07", + "08", + "09", + "10", + "11", + "12" + ] + }, + "public.enum_blog_blocks_text_width": { + "name": "enum_blog_blocks_text_width", + "schema": "public", + "values": [ + "1/2", + "3/4" + ] + }, + "public.enum_group_blocks_text_width": { + "name": "enum_group_blocks_text_width", + "schema": "public", + "values": [ + "1/2", + "3/4" + ] + }, + "public.enum_pages_blocks_text_width": { + "name": "enum_pages_blocks_text_width", + "schema": "public", + "values": [ + "1/2", + "3/4" + ] + }, + "public.enum_pages_blocks_title_size": { + "name": "enum_pages_blocks_title_size", + "schema": "public", + "values": [ + "xl", + "lg", + "md", + "sm" + ] + }, + "public.enum_pages_blocks_title_align": { + "name": "enum_pages_blocks_title_align", + "schema": "public", + "values": [ + "left", + "center" + ] + }, + "public.enum_pages_blocks_section_background_color": { + "name": "enum_pages_blocks_section_background_color", + "schema": "public", + "values": [ + "none", + "soft", + "off-white" + ] + }, + "public.enum_pages_blocks_section_padding": { + "name": "enum_pages_blocks_section_padding", + "schema": "public", + "values": [ + "small", + "medium", + "large" + ] + }, + "public.enum_users_roles": { + "name": "enum_users_roles", + "schema": "public", + "values": [ + "user", + "employee", + "admin" + ] + }, + "public.enum_menu_blocks_simple_item_type": { + "name": "enum_menu_blocks_simple_item_type", + "schema": "public", + "values": [ + "default", + "button" + ] + } + }, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "id": "597b935d-018e-4c81-a4e4-e90ee9b5af42", + "prevId": "00000000-0000-0000-0000-000000000000" +} \ No newline at end of file diff --git a/src/migrations/20260305_095426.ts b/src/migrations/20260305_095426.ts new file mode 100644 index 0000000..1518514 --- /dev/null +++ b/src/migrations/20260305_095426.ts @@ -0,0 +1,265 @@ +import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres' + +export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> { + await db.execute(sql` + CREATE TYPE "public"."enum_pages_blocks_text_width" AS ENUM('1/2', '3/4'); + CREATE TYPE "public"."enum_pages_blocks_title_size" AS ENUM('xl', 'lg', 'md', 'sm'); + CREATE TYPE "public"."enum_pages_blocks_title_align" AS ENUM('left', 'center'); + CREATE TYPE "public"."enum_pages_blocks_section_background_color" AS ENUM('none', 'soft', 'off-white'); + CREATE TYPE "public"."enum_pages_blocks_section_padding" AS ENUM('small', 'medium', 'large'); + CREATE TABLE "pages_blocks_page_header" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "title" varchar NOT NULL, + "description" varchar NOT NULL, + "image_id" uuid, + "block_name" varchar + ); + + CREATE TABLE "pages_blocks_text" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "content" jsonb NOT NULL, + "content_html" varchar, + "width" "enum_pages_blocks_text_width" DEFAULT '1/2' NOT NULL, + "block_name" varchar + ); + + CREATE TABLE "pages_blocks_title" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "title" varchar NOT NULL, + "subtitle" varchar, + "size" "enum_pages_blocks_title_size" DEFAULT 'lg', + "align" "enum_pages_blocks_title_align" DEFAULT 'left', + "block_name" varchar + ); + + CREATE TABLE "pages_blocks_row_columns" ( + "_order" integer NOT NULL, + "_parent_id" varchar NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "content" jsonb NOT NULL, + "content_html" varchar + ); + + CREATE TABLE "pages_blocks_row" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "block_name" varchar + ); + + CREATE TABLE "pages_blocks_section" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "background_color" "enum_pages_blocks_section_background_color" DEFAULT 'none', + "padding" "enum_pages_blocks_section_padding" DEFAULT 'large', + "block_name" varchar + ); + + CREATE TABLE "pages_blocks_gallery_items" ( + "_order" integer NOT NULL, + "_parent_id" varchar NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "photo_id" uuid NOT NULL + ); + + CREATE TABLE "pages_blocks_gallery" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "block_name" varchar + ); + + CREATE TABLE "pages_blocks_document" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "file_id" uuid NOT NULL, + "button" varchar DEFAULT 'Download Flyer' NOT NULL, + "block_name" varchar + ); + + CREATE TABLE "pages_blocks_youtube" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "youtube_id" varchar NOT NULL, + "block_name" varchar + ); + + CREATE TABLE "pages_blocks_button" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "text" varchar NOT NULL, + "url" varchar NOT NULL, + "block_name" varchar + ); + + CREATE TABLE "pages_blocks_contactform" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "title" varchar DEFAULT 'Ich bin dabei!' NOT NULL, + "description" varchar DEFAULT 'Um dich anzumelden oder uns zu unterstützen, fülle bitte das Kontaktformular aus. Wir freuen uns sehr, dass du Teil unserer Gemeinschaft bist und mit deinem Engagement dazu beiträgst, unsere Ziele zu erreichen. Solltest du Fragen haben oder weitere Informationen benötigen, zögere nicht, uns zu kontaktieren – wir sind gerne für dich da!' NOT NULL, + "email" varchar DEFAULT 'kontakt@dreikoenige.berlin' NOT NULL, + "block_name" varchar + ); + + CREATE TABLE "pages_blocks_donation" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "block_name" varchar + ); + + CREATE TABLE "pages_blocks_banner" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "block_name" varchar + ); + + CREATE TABLE "pages" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "title" varchar NOT NULL, + "description" varchar, + "slug" varchar 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 "announcement" ALTER COLUMN "date" SET DEFAULT '2026-03-08T09:54:26.297Z'; + ALTER TABLE "calendar" ALTER COLUMN "date" SET DEFAULT '2026-03-08T09:54:26.602Z'; + ALTER TABLE "classifieds" ALTER COLUMN "until" SET DEFAULT '2026-04-04T08:54:26.674Z'; + ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "pages_id" uuid; + ALTER TABLE "pages_blocks_page_header" ADD CONSTRAINT "pages_blocks_page_header_image_id_media_id_fk" FOREIGN KEY ("image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + ALTER TABLE "pages_blocks_page_header" ADD CONSTRAINT "pages_blocks_page_header_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_text" ADD CONSTRAINT "pages_blocks_text_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_title" ADD CONSTRAINT "pages_blocks_title_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_row_columns" ADD CONSTRAINT "pages_blocks_row_columns_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages_blocks_row"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_row" ADD CONSTRAINT "pages_blocks_row_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_section" ADD CONSTRAINT "pages_blocks_section_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_gallery_items" ADD CONSTRAINT "pages_blocks_gallery_items_photo_id_media_id_fk" FOREIGN KEY ("photo_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + ALTER TABLE "pages_blocks_gallery_items" ADD CONSTRAINT "pages_blocks_gallery_items_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages_blocks_gallery"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_gallery" ADD CONSTRAINT "pages_blocks_gallery_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_document" ADD CONSTRAINT "pages_blocks_document_file_id_documents_id_fk" FOREIGN KEY ("file_id") REFERENCES "public"."documents"("id") ON DELETE set null ON UPDATE no action; + ALTER TABLE "pages_blocks_document" ADD CONSTRAINT "pages_blocks_document_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_youtube" ADD CONSTRAINT "pages_blocks_youtube_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_button" ADD CONSTRAINT "pages_blocks_button_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_contactform" ADD CONSTRAINT "pages_blocks_contactform_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_donation" ADD CONSTRAINT "pages_blocks_donation_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + ALTER TABLE "pages_blocks_banner" ADD CONSTRAINT "pages_blocks_banner_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + CREATE INDEX "pages_blocks_page_header_order_idx" ON "pages_blocks_page_header" USING btree ("_order"); + CREATE INDEX "pages_blocks_page_header_parent_id_idx" ON "pages_blocks_page_header" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_page_header_path_idx" ON "pages_blocks_page_header" USING btree ("_path"); + CREATE INDEX "pages_blocks_page_header_image_idx" ON "pages_blocks_page_header" USING btree ("image_id"); + CREATE INDEX "pages_blocks_text_order_idx" ON "pages_blocks_text" USING btree ("_order"); + CREATE INDEX "pages_blocks_text_parent_id_idx" ON "pages_blocks_text" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_text_path_idx" ON "pages_blocks_text" USING btree ("_path"); + CREATE INDEX "pages_blocks_title_order_idx" ON "pages_blocks_title" USING btree ("_order"); + CREATE INDEX "pages_blocks_title_parent_id_idx" ON "pages_blocks_title" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_title_path_idx" ON "pages_blocks_title" USING btree ("_path"); + CREATE INDEX "pages_blocks_row_columns_order_idx" ON "pages_blocks_row_columns" USING btree ("_order"); + CREATE INDEX "pages_blocks_row_columns_parent_id_idx" ON "pages_blocks_row_columns" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_row_order_idx" ON "pages_blocks_row" USING btree ("_order"); + CREATE INDEX "pages_blocks_row_parent_id_idx" ON "pages_blocks_row" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_row_path_idx" ON "pages_blocks_row" USING btree ("_path"); + CREATE INDEX "pages_blocks_section_order_idx" ON "pages_blocks_section" USING btree ("_order"); + CREATE INDEX "pages_blocks_section_parent_id_idx" ON "pages_blocks_section" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_section_path_idx" ON "pages_blocks_section" USING btree ("_path"); + CREATE INDEX "pages_blocks_gallery_items_order_idx" ON "pages_blocks_gallery_items" USING btree ("_order"); + CREATE INDEX "pages_blocks_gallery_items_parent_id_idx" ON "pages_blocks_gallery_items" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_gallery_items_photo_idx" ON "pages_blocks_gallery_items" USING btree ("photo_id"); + CREATE INDEX "pages_blocks_gallery_order_idx" ON "pages_blocks_gallery" USING btree ("_order"); + CREATE INDEX "pages_blocks_gallery_parent_id_idx" ON "pages_blocks_gallery" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_gallery_path_idx" ON "pages_blocks_gallery" USING btree ("_path"); + CREATE INDEX "pages_blocks_document_order_idx" ON "pages_blocks_document" USING btree ("_order"); + CREATE INDEX "pages_blocks_document_parent_id_idx" ON "pages_blocks_document" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_document_path_idx" ON "pages_blocks_document" USING btree ("_path"); + CREATE INDEX "pages_blocks_document_file_idx" ON "pages_blocks_document" USING btree ("file_id"); + CREATE INDEX "pages_blocks_youtube_order_idx" ON "pages_blocks_youtube" USING btree ("_order"); + CREATE INDEX "pages_blocks_youtube_parent_id_idx" ON "pages_blocks_youtube" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_youtube_path_idx" ON "pages_blocks_youtube" USING btree ("_path"); + CREATE INDEX "pages_blocks_button_order_idx" ON "pages_blocks_button" USING btree ("_order"); + CREATE INDEX "pages_blocks_button_parent_id_idx" ON "pages_blocks_button" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_button_path_idx" ON "pages_blocks_button" USING btree ("_path"); + CREATE INDEX "pages_blocks_contactform_order_idx" ON "pages_blocks_contactform" USING btree ("_order"); + CREATE INDEX "pages_blocks_contactform_parent_id_idx" ON "pages_blocks_contactform" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_contactform_path_idx" ON "pages_blocks_contactform" USING btree ("_path"); + CREATE INDEX "pages_blocks_donation_order_idx" ON "pages_blocks_donation" USING btree ("_order"); + CREATE INDEX "pages_blocks_donation_parent_id_idx" ON "pages_blocks_donation" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_donation_path_idx" ON "pages_blocks_donation" USING btree ("_path"); + CREATE INDEX "pages_blocks_banner_order_idx" ON "pages_blocks_banner" USING btree ("_order"); + CREATE INDEX "pages_blocks_banner_parent_id_idx" ON "pages_blocks_banner" USING btree ("_parent_id"); + CREATE INDEX "pages_blocks_banner_path_idx" ON "pages_blocks_banner" USING btree ("_path"); + CREATE UNIQUE INDEX "pages_slug_idx" ON "pages" USING btree ("slug"); + CREATE INDEX "pages_updated_at_idx" ON "pages" USING btree ("updated_at"); + CREATE INDEX "pages_created_at_idx" ON "pages" USING btree ("created_at"); + ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_pages_fk" FOREIGN KEY ("pages_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action; + CREATE INDEX "payload_locked_documents_rels_pages_id_idx" ON "payload_locked_documents_rels" USING btree ("pages_id");`) +} + +export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> { + await db.execute(sql` + ALTER TABLE "pages_blocks_page_header" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_text" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_title" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_row_columns" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_row" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_section" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_gallery_items" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_gallery" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_document" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_youtube" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_button" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_contactform" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_donation" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages_blocks_banner" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "pages" DISABLE ROW LEVEL SECURITY; + DROP TABLE "pages_blocks_page_header" CASCADE; + DROP TABLE "pages_blocks_text" CASCADE; + DROP TABLE "pages_blocks_title" CASCADE; + DROP TABLE "pages_blocks_row_columns" CASCADE; + DROP TABLE "pages_blocks_row" CASCADE; + DROP TABLE "pages_blocks_section" CASCADE; + DROP TABLE "pages_blocks_gallery_items" CASCADE; + DROP TABLE "pages_blocks_gallery" CASCADE; + DROP TABLE "pages_blocks_document" CASCADE; + DROP TABLE "pages_blocks_youtube" CASCADE; + DROP TABLE "pages_blocks_button" CASCADE; + DROP TABLE "pages_blocks_contactform" CASCADE; + DROP TABLE "pages_blocks_donation" CASCADE; + DROP TABLE "pages_blocks_banner" CASCADE; + DROP TABLE "pages" CASCADE; + ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_pages_fk"; + + DROP INDEX "payload_locked_documents_rels_pages_id_idx"; + ALTER TABLE "announcement" ALTER COLUMN "date" SET DEFAULT '2026-02-08T15:57:34.492Z'; + ALTER TABLE "calendar" ALTER COLUMN "date" SET DEFAULT '2026-02-08T15:57:34.801Z'; + ALTER TABLE "classifieds" ALTER COLUMN "until" SET DEFAULT '2026-03-07T15:57:34.871Z'; + ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "pages_id"; + DROP TYPE "public"."enum_pages_blocks_text_width"; + DROP TYPE "public"."enum_pages_blocks_title_size"; + DROP TYPE "public"."enum_pages_blocks_title_align"; + DROP TYPE "public"."enum_pages_blocks_section_background_color"; + DROP TYPE "public"."enum_pages_blocks_section_padding";`) +} diff --git a/src/migrations/index.ts b/src/migrations/index.ts index 1017e62..54b7503 100644 --- a/src/migrations/index.ts +++ b/src/migrations/index.ts @@ -16,6 +16,7 @@ import * as migration_20251118_150529_youtube_player from './20251118_150529_you import * as migration_20260106_085445_donationforms from './20260106_085445_donationforms'; import * as migration_20260106_103529_donation_appeal from './20260106_103529_donation_appeal'; import * as migration_20260205_155735_version_bump from './20260205_155735_version_bump'; +import * as migration_20260305_095426 from './20260305_095426'; export const migrations = [ { @@ -106,6 +107,11 @@ export const migrations = [ { up: migration_20260205_155735_version_bump.up, down: migration_20260205_155735_version_bump.down, - name: '20260205_155735_version_bump' + name: '20260205_155735_version_bump', + }, + { + up: migration_20260305_095426.up, + down: migration_20260305_095426.down, + name: '20260305_095426' }, ]; diff --git a/src/pageComponents/Worship/Worship.tsx b/src/pageComponents/Worship/Worship.tsx index 3a7b9e1..1caf9b6 100644 --- a/src/pageComponents/Worship/Worship.tsx +++ b/src/pageComponents/Worship/Worship.tsx @@ -29,7 +29,7 @@ export const Worship = ({ worship }: WorshipPageProps) => { <> <Section> <div className={styles.textCenter}> - <Cross schema={"contrast"} /> + <Cross color={"contrast"} /> </div> <Title title={`${day}, ${localeDate}`} diff --git a/src/payload-types.ts b/src/payload-types.ts index 8e14c72..36ce2e2 100644 --- a/src/payload-types.ts +++ b/src/payload-types.ts @@ -81,6 +81,7 @@ export interface Config { locations: Location; group: Group; 'donation-form': DonationForm; + pages: Page; magazine: Magazine; documents: Document; media: Media; @@ -106,6 +107,7 @@ export interface Config { locations: LocationsSelect<false> | LocationsSelect<true>; group: GroupSelect<false> | GroupSelect<true>; 'donation-form': DonationFormSelect<false> | DonationFormSelect<true>; + pages: PagesSelect<false> | PagesSelect<true>; magazine: MagazineSelect<false> | MagazineSelect<true>; documents: DocumentsSelect<false> | DocumentsSelect<true>; media: MediaSelect<false> | MediaSelect<true>; @@ -694,6 +696,200 @@ export interface DonationForm { updatedAt: string; createdAt: string; } +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "pages". + */ +export interface Page { + id: string; + title: string; + description?: string | null; + /** + * URL-Pfad der Seite (z.B. "meine-seite" → /meine-seite) + */ + slug: string; + content?: + | ( + | { + title: string; + description: string; + image?: (string | null) | Media; + id?: string | null; + blockName?: string | null; + blockType: 'pageHeader'; + } + | { + content: { + root: { + type: string; + children: { + type: any; + version: number; + [k: string]: unknown; + }[]; + direction: ('ltr' | 'rtl') | null; + format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; + indent: number; + version: number; + }; + [k: string]: unknown; + }; + content_html?: string | null; + width: '1/2' | '3/4'; + id?: string | null; + blockName?: string | null; + blockType: 'text'; + } + | { + title: string; + subtitle?: string | null; + size?: ('xl' | 'lg' | 'md' | 'sm') | null; + align?: ('left' | 'center') | null; + id?: string | null; + blockName?: string | null; + blockType: 'title'; + } + | { + backgroundColor?: ('none' | 'soft' | 'off-white') | null; + padding?: ('small' | 'medium' | 'large') | null; + id?: string | null; + blockName?: string | null; + blockType: 'section'; + } + | { + items: { + photo: string | Media; + id?: string | null; + }[]; + id?: string | null; + blockName?: string | null; + blockType: 'gallery'; + } + | { + file: string | Document; + button: string; + id?: string | null; + blockName?: string | null; + blockType: 'document'; + } + | { + youtube_id: string; + id?: string | null; + blockName?: string | null; + blockType: 'youtube'; + } + | { + text: string; + url: string; + id?: string | null; + blockName?: string | null; + blockType: 'button'; + } + | { + title: string; + description: string; + email: string; + id?: string | null; + blockName?: string | null; + blockType: 'contactform'; + } + | { + id?: string | null; + blockName?: string | null; + blockType: 'donation'; + } + | { + textLine1?: string | null; + textLine2?: string | null; + textLine3?: string | null; + backgroundColor?: string | null; + backgroundImage?: (string | null) | Media; + backgroundPosition?: + | ( + | 'center center' + | 'top center' + | 'bottom center' + | 'center left' + | 'center right' + | 'top left' + | 'top right' + | 'bottom left' + | 'bottom right' + ) + | null; + backgroundSize?: ('cover' | 'contain' | 'auto') | null; + id?: string | null; + blockName?: string | null; + blockType: 'banner'; + } + | { + text: string; + id?: string | null; + blockName?: string | null; + blockType: 'mainText'; + } + | { + color: 'base' | 'shade1' | 'shade2' | 'shade3' | 'contrast' | 'contrastShade1'; + id?: string | null; + blockName?: string | null; + blockType: 'horizontalRule'; + } + | { + title?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'blogSlider'; + } + | { + title?: string | null; + subtitle?: string | null; + id?: string | null; + blockName?: string | null; + blockType: 'massTimes'; + } + | { + title: string; + text: string; + image: string | Media; + content: { + root: { + type: string; + children: { + type: any; + version: number; + [k: string]: unknown; + }[]; + direction: ('ltr' | 'rtl') | null; + format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | ''; + indent: number; + version: number; + }; + [k: string]: unknown; + }; + content_html?: string | null; + backgroundColor?: ('none' | 'soft' | 'off-white') | null; + schema?: ('base' | 'contrast') | null; + id?: string | null; + blockName?: string | null; + blockType: 'collapsibleImageWithText'; + } + | { + title?: string | null; + itemsPerPage?: number | null; + id?: string | null; + blockName?: string | null; + blockType: 'events'; + } + | { + id?: string | null; + blockName?: string | null; + blockType: 'publicationAndNewsletter'; + } + )[] + | null; + updatedAt: string; + createdAt: string; +} /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "magazine". @@ -813,6 +1009,10 @@ export interface PayloadLockedDocument { relationTo: 'donation-form'; value: string | DonationForm; } | null) + | ({ + relationTo: 'pages'; + value: string | Page; + } | null) | ({ relationTo: 'magazine'; value: string | Magazine; @@ -1243,6 +1443,176 @@ export interface DonationFormSelect<T extends boolean = true> { updatedAt?: T; createdAt?: T; } +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "pages_select". + */ +export interface PagesSelect<T extends boolean = true> { + title?: T; + description?: T; + slug?: T; + content?: + | T + | { + pageHeader?: + | T + | { + title?: T; + description?: T; + image?: T; + id?: T; + blockName?: T; + }; + text?: + | T + | { + content?: T; + content_html?: T; + width?: T; + id?: T; + blockName?: T; + }; + title?: + | T + | { + title?: T; + subtitle?: T; + size?: T; + align?: T; + id?: T; + blockName?: T; + }; + section?: + | T + | { + backgroundColor?: T; + padding?: T; + id?: T; + blockName?: T; + }; + gallery?: + | T + | { + items?: + | T + | { + photo?: T; + id?: T; + }; + id?: T; + blockName?: T; + }; + document?: + | T + | { + file?: T; + button?: T; + id?: T; + blockName?: T; + }; + youtube?: + | T + | { + youtube_id?: T; + id?: T; + blockName?: T; + }; + button?: + | T + | { + text?: T; + url?: T; + id?: T; + blockName?: T; + }; + contactform?: + | T + | { + title?: T; + description?: T; + email?: T; + id?: T; + blockName?: T; + }; + donation?: + | T + | { + id?: T; + blockName?: T; + }; + banner?: + | T + | { + textLine1?: T; + textLine2?: T; + textLine3?: T; + backgroundColor?: T; + backgroundImage?: T; + backgroundPosition?: T; + backgroundSize?: T; + id?: T; + blockName?: T; + }; + mainText?: + | T + | { + text?: T; + id?: T; + blockName?: T; + }; + horizontalRule?: + | T + | { + color?: T; + id?: T; + blockName?: T; + }; + blogSlider?: + | T + | { + title?: T; + id?: T; + blockName?: T; + }; + massTimes?: + | T + | { + title?: T; + subtitle?: T; + id?: T; + blockName?: T; + }; + collapsibleImageWithText?: + | T + | { + title?: T; + text?: T; + image?: T; + content?: T; + content_html?: T; + backgroundColor?: T; + schema?: T; + id?: T; + blockName?: T; + }; + events?: + | T + | { + title?: T; + itemsPerPage?: T; + id?: T; + blockName?: T; + }; + publicationAndNewsletter?: + | T + | { + id?: T; + blockName?: T; + }; + }; + updatedAt?: T; + createdAt?: T; +} /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "magazine_select". diff --git a/src/payload.config.ts b/src/payload.config.ts index baf7848..e9fd5db 100644 --- a/src/payload.config.ts +++ b/src/payload.config.ts @@ -39,6 +39,7 @@ import { Classifieds } from '@/collections/Classifieds' import { MenuGlobal } from '@/globals/Menu' import { Magazine } from '@/collections/Magazine' import { DonationForms } from '@/collections/DonationForms' +import { Pages } from '@/collections/Pages' const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) @@ -92,6 +93,7 @@ export default buildConfig({ Locations, Groups, DonationForms, + Pages, Magazine, Documents, Media, @@ -128,7 +130,7 @@ export default buildConfig({ }, db: postgresAdapter({ idType: "uuid", - push: false, + push: true, pool: { connectionString: process.env.DATABASE_URI, } diff --git a/tsconfig.json b/tsconfig.json index 990bf13..33932dd 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,7 @@ "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, - "jsx": "react-jsx", + "jsx": "preserve", "incremental": true, "plugins": [ {