diff --git a/src/app/(home)/gebetsanliegen-des-papstes/page.tsx b/src/app/(home)/gebetsanliegen-des-papstes/page.tsx new file mode 100644 index 0000000..5a01a24 --- /dev/null +++ b/src/app/(home)/gebetsanliegen-des-papstes/page.tsx @@ -0,0 +1,6 @@ +import { redirect } from 'next/navigation' + +export default function RedirectPage() { + const date = new Date(); + redirect(`/gebetsanliegen-des-papstes/${date.getFullYear()}/${(date.getUTCMonth() + 1).toString(10).padStart(2, '0')}`) +} \ No newline at end of file diff --git a/src/app/(home)/layout.tsx b/src/app/(home)/layout.tsx index 016ffb4..f78d409 100644 --- a/src/app/(home)/layout.tsx +++ b/src/app/(home)/layout.tsx @@ -1,10 +1,11 @@ import type { Metadata } from 'next' import { defaultFont } from '@/assets/fonts' import './globals.css' -import { Menu } from '@/components/Menu/Menu' +import { DynamicMenu, Menu } from '@/components/Menu/Menu' import { Footer } from '@/compositions/Footer/Footer' import { comment } from '@/app/(home)/layout-comment' + export const metadata: Metadata = { title: 'Katholische Pfarrei Heilige drei Könige Berlin', } @@ -15,324 +16,12 @@ export default function RootLayout({ children: React.ReactNode }>) { - const date = new Date() return (
- +
{children}
@@ -340,4 +29,4 @@ export default function RootLayout({ ) -} +} \ No newline at end of file diff --git a/src/components/Menu/Menu.stories.ts b/src/components/Menu/Menu.stories.ts index 734c104..0a32130 100644 --- a/src/components/Menu/Menu.stories.ts +++ b/src/components/Menu/Menu.stories.ts @@ -14,174 +14,66 @@ export const Default: Story = { leftItems: [ { text: 'Home', - href: 'https://disney.com' + href: '/home', + type: 'default', + blockType: 'simple-item', + }, - { - text: 'Gemeinschaft finden', - megaMenu: { - text: { - quote: '', - source: '' - }, - groups: [ - { - title: "Gemeinden", - items: [ - { - title: "St. Richard", - description: "Mehr informationen", - href: "/gemeinde/st-richard" - }, - { - title: "St. Christophorus", - description: "Mehr informationen", - href: "/gemeinde/st-christophorus" - }, - { - title: "St. Clara", - description: "Mehr informationen", - href: "/gemeinde/st-clara" - }, - ] - }, - { - title: "Gruppen", - items: [ - { - title: "Kathoccino", - description: "Begegnung mit Gott", - href: "https://" - }, - { - title: "Credo & Agape", - description: "Gebet der Meditation", - href: "https://" - }, - { - title: "Mädchengruppe", - description: "Stille Begegnung mit Gott", - href: "https://" - }, - { - title: "Alphakurs", - description: "Dank, Ehre und Freude", - href: "https://" - }, - ] - }, - { - title: "Aktivitaten", - items: [ - { - title: "Kochen", - description: "Begegnung mit Gott", - href: "https://" - }, - { - title: "Lernen", - description: "Gebet der Meditation", - href: "https://" - }, - { - title: "Wandern", - description: "Stille Begegnung mit Gott", - href: "https://" - }, - { - title: "Singen", - description: "Dank, Ehre und Freude", - href: "https://" - }, - ] - } - ] - } - }, - { - text: 'Glauben lauben', - megaMenu: { - text: { - quote: '', - source: '' - }, - groups: [ - { - title: "Sakramenten", - items: [ - { - title: "Taufe", - description: "Neues Leben in Christus", - href: "https://" - }, - { - title: "Eucharistie", - description: "Gemeinschaft durch Brot und Wein", - href: "https://" - }, - { - title: "Firmung", - description: "Stärkung im Heiligen Geist", - href: "https://" - }, - { - title: "Ehe", - description: "Bund in Liebe, Treue", - href: "https://" - }, - { - title: "Beichte", - description: "Sündenbekenntnis, Vergebung und Neuanfang mit Gottes Gnade", - href: "https://" - }, - { - title: "Krankensalbung", - description: "Stärkung und Gottes Beistand", - href: "https://" - } - ] - }, - { - title: "Gebet", - items: [ - { - title: "Gottesdienste", - description: "Begegnung mit Gott", - href: "https://" - }, - { - title: "Rosenkranz", - description: "Gebet der Meditation", - href: "https://" - }, - { - title: "Anbetung", - description: "Stille Begegnung mit Gott", - href: "https://" - }, - { - title: "Lobpreis", - description: "Dank, Ehre und Freude", - href: "https://" - }, - ] - } - ] - } - }, - { - text: 'Kontakt', - href: '/kontakt' - } ], rightItems: [ { - text: 'Mithelfen', - href: '/mithelfen', + text: 'Need help?', + href: '/help', + type: 'button', + blockType: 'simple-item', }, { - text: 'Neu hier?', - href: '/ich-bin-neu', - display: "button" + text: 'Contact', + href: '/contact', + type: 'default', + blockType: 'simple-item', + } + ] + } + }, +} + +export const WithMegaMenu: Story = { + args: { + menu: { + leftItems: [ + { + text: 'Home', + href: '/home', + type: 'default', + blockType: 'simple-item', + + }, + { + text: 'Products', + blockType: 'mega-menu', + groups: [ + { + title: 'Catogory 1', + items: [ + { + title: 'Product 1', + description: 'Some description', + href: '/products', + } + ] + } + ], + quote: 'Some bible verse', + source: 'John 12-1' + } + ], + rightItems: [ + { + text: 'Contact', + href: '/contact', + type: 'default', + blockType: 'simple-item', } ] } diff --git a/src/components/Menu/Menu.tsx b/src/components/Menu/Menu.tsx index dbc38f6..1c739a9 100644 --- a/src/components/Menu/Menu.tsx +++ b/src/components/Menu/Menu.tsx @@ -4,22 +4,55 @@ import styles from './styles.module.scss' import MenuIcon from './menu.svg' import Image from 'next/image' import classNames from 'classnames' -import {Menu as MenuType, MenuItem as MenuItemType} from "./menu.types" +import { MegaMenuItemProps, Menu as MenuType, MenuItem as MenuItemType, SimpleItemProps } from './menu.types' import { Logo } from '@/components/Logo/Logo' -import { useCallback, useState } from 'react' +import { Fragment, useCallback, useEffect, useState } from 'react' import { MegaMenu } from '@/components/MegaMenu/MegaMenu' import { CollapsibleArrow } from '@/components/CollapsibleArrow/CollapsibleArrow' import Link from 'next/link' +import { fetchConfig } from '@/fetch/config' -type MenuItemProps = MenuItemType & { - onItemClick?: () => void +/** + * Represents a simple item component. + * + * @param {Object} SimpleItemProps - The properties for the SimpleItem component. + * @param {string} SimpleItemProps.text - The text to display for the item. + * @param {string} SimpleItemProps.href - The URL to navigate to when the item is clicked. + * @param {string} SimpleItemProps.type - The type of the item ("default" or "button"). + * @param {function} SimpleItemProps.onItemClick - The function to call when the item is clicked. + * @returns {JSX.Element} A Link component with the specified text, href, type, and onItemClick function. + */ +const SimpleItem = ({text, href, type, onItemClick}: SimpleItemProps) => { + const className = classNames({ + [styles.menuLink]: type === "default", + [styles.button]: type === "button" + }); + + return ( + + + {text} + + + ) } -const MenuItem = ({text, href, display = "normal", megaMenu, onItemClick}: MenuItemProps) => { - const className = classNames({ - [styles.menuLink]: display === "normal", - [styles.button]: display === "button" - }); + +/** + * Represents a mega menu item component. + * @param {Object} MegaMenuItemProps - The props for the MegaMenuItem component. + * @param {string} MegaMenuItemProps.text - The text to display in the menu item. + * @param {string} MegaMenuItemProps.quote - The quote to display in the mega menu. + * @param {string} MegaMenuItemProps.source - The source of the quote. + * @param {Array} MegaMenuItemProps.groups - The groups associated with the menu item. + * @param {Function} MegaMenuItemProps.onItemClick - The function to handle item click event. + * @returns {JSX.Element} A JSX element representing the MegaMenuItem component. + */ +const MegaMenuItem = ({text, quote, source, groups, onItemClick}: MegaMenuItemProps) => { const [isActive, setIsActive] = useState(false); const itemClicked = useCallback(() => { @@ -35,49 +68,69 @@ const MenuItem = ({text, href, display = "normal", megaMenu, onItemClick}: MenuI onMouseLeave={() => setIsActive(false)} > href ? itemClicked() : setIsActive(!isActive)} + href={""} + onClick={onItemClick} + className={styles.menuLink} > - {text} {megaMenu && } + {text} - {megaMenu && -
- -
- } + > + + ) } type MenuItemsProps = { items: MenuItemType[] - onItemClick?: () => void + onItemClick: () => void } +/** + * Renders a list of menu items based on the provided props. + * + * @param {Object} items - An array of menu items to render. + * @param {Function} onItemClick - Callback function to handle item click events. + */ const MenuItems = ({items, onItemClick}: MenuItemsProps) => { return ( <> - {items.map(item => - + {items.map(item => ( + + { item.blockType === "simple-item" && + + } + + { + item.blockType === "mega-menu" && + + } + + ) )} ) @@ -87,6 +140,11 @@ type MenuProps = { menu: MenuType } +/** + * Represents a menu component that displays navigation items on the screen. + * @param {Object} MenuProps - The props object containing menu items for left and right side of the menu. + * @returns The rendered menu component. + */ export const Menu = ({menu}: MenuProps) => { const [displayMenuMobile, setDisplayMenuMobile] = useState(false) @@ -131,3 +189,22 @@ export const Menu = ({menu}: MenuProps) => { ) } + + +/** + * Represents a dynamic menu component. + * This component fetches menu data from a remote source and renders it. + * @returns {JSX.Element} The rendered dynamic menu component + */ +export const DynamicMenu = () => { + + const [menu, setMenu] = useState({leftItems: [], rightItems: []}) + + useEffect(() => { + fetchConfig().then((data) => { + setMenu(data.menu); + }); + }, []) + + return +} diff --git a/src/components/Menu/menu.types.ts b/src/components/Menu/menu.types.ts index 308ec24..349bb6f 100644 --- a/src/components/Menu/menu.types.ts +++ b/src/components/Menu/menu.types.ts @@ -3,31 +3,34 @@ export type Menu = { rightItems: MenuItem[] } -export type MenuItem = { - text: string, - href?: string - megaMenu?: MegaMenu - display?: "normal" | "button" +export type SimpleItemProps = { + text: string; + href: string; + type: 'default' | 'button'; + id?: string | null; + blockName?: string | null; + blockType: 'simple-item'; + onItemClick?: () => void; } -type MegaMenu = { - groups: MegaMenuGroup[] - text: MegaMenuText +export type MegaMenuItemProps = { + text: string; + quote: string; + source: string; + groups: { + title: string; + items: { + title: string; + description: string; + href: string; + id?: string | null; + }[]; + id?: string | null; + }[]; + id?: string | null; + blockName?: string | null; + blockType: 'mega-menu'; + onItemClick?: () => void; } -type MegaMenuGroup = { - title: string - items: MegaMenuItem[] -} - -type MegaMenuItem = { - title: string, - description: string - href: string - icon?: string -} - -type MegaMenuText = { - quote: string - source: string -} \ No newline at end of file +export type MenuItem = SimpleItemProps | MegaMenuItemProps; \ No newline at end of file diff --git a/src/fetch/config.ts b/src/fetch/config.ts new file mode 100644 index 0000000..a48be53 --- /dev/null +++ b/src/fetch/config.ts @@ -0,0 +1,21 @@ +import { Menu } from '@/payload-types' + +type Config = { + menu: Menu +} + +export const fetchConfig = async (): Promise => { + const rep = await fetch( + "/api/globals/menu", + { next: { tags: ['menu'] } } // cache fetch result + ); + + if (!rep.ok) { + throw new Error("Could not fetch menu") + } + const menu = await rep.json(); + + return { + menu + } +} \ No newline at end of file diff --git a/src/globals/Menu.ts b/src/globals/Menu.ts new file mode 100644 index 0000000..58f063b --- /dev/null +++ b/src/globals/Menu.ts @@ -0,0 +1,145 @@ +import { Block, GlobalConfig } from 'payload' +import { isAdmin } from '@/collections/access/admin' +import { revalidateTag } from 'next/cache' + +const SimpleItem: Block = { + slug: 'simple-item', + labels: { + singular: 'Einfach', + plural: 'Einfach' + }, + fields: [ + { + name: 'text', + type: 'text', + required: true + }, + { + name: 'href', + type: 'text', + label: 'Zieladresse', + required: true + }, + { + name: 'type', + type: 'select', + options: [ + { + label: 'Standard', + value: 'default' + }, + { + label: 'Button', + value: 'button' + } + ], + defaultValue: "default", + required: true + } + ] +} + +const MegaMenuItem: Block = { + slug: 'mega-menu', + fields: [ + { + name: 'text', + type: 'text', + required: true, + }, + { + name: 'quote', + label: "Bibelvers", + type: 'text', + required: true + }, + { + name: 'source', + label: 'Bibelvers buch', + type: 'text', + required: true + }, + { + name: 'groups', + label: 'Navigationsgruppen', + type: 'array', + fields: [ + { + name: 'title', + label: 'Titel', + type: 'text', + required: true, + }, + { + name: 'items', + label: 'Elemente', + type: 'array', + fields: [ + { + name: 'title', + label: 'title', + type: 'text', + required: true, + }, + { + name: 'description', + label: 'Beschreibung', + type: 'text', + maxLength: 100, + required: true, + }, + { + name: 'href', + label: 'Zieladresse', + type: 'text', + required: true, + } + ], + required: true, + } + ], + minRows: 1, + maxRows: 5, + required: true, + } + ] +} + +export const MenuGlobal: GlobalConfig = { + slug: 'menu', + label: { + de: 'Navigationsmenü' + }, + admin: { + description: "Hier können Sie die Einträge und die Reihenfolge der Hauptnavigation festlegen." + }, + fields: [ + { + name: 'leftItems', + label: 'Elemente links', + type: 'blocks', + required: true, + blocks: [ + SimpleItem, + MegaMenuItem + ] + }, + { + name: 'rightItems', + label: 'Elemente Rechts', + type: 'blocks', + required: true, + blocks: [ + SimpleItem, + MegaMenuItem + ] + } + ], + access: { + read: () => true, + update: isAdmin() + }, + hooks: { + afterChange: [() => revalidateTag("menu")] + } +} \ No newline at end of file diff --git a/src/migrations/20250818_143115_menu.json b/src/migrations/20250818_143115_menu.json new file mode 100644 index 0000000..0448eb7 --- /dev/null +++ b/src/migrations/20250818_143115_menu.json @@ -0,0 +1,6619 @@ +{ + "id": "0bfe5f1c-2ad0-4425-8186-bf3d7d4d279c", + "prevId": "00000000-0000-0000-0000-000000000000", + "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_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": 2025 + }, + "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": "'2025-08-24T14:31:15.010Z'" + }, + "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": "'2025-08-24T14:31:15.092Z'" + }, + "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_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 + }, + "excerpt": { + "name": "excerpt", + "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": { + "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": "'2025-09-17T14:31:15.112Z'" + }, + "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_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.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 + }, + "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": { + "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_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 + }, + "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_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_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_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_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": {} + } +} \ No newline at end of file diff --git a/src/migrations/20250818_143115_menu.ts b/src/migrations/20250818_143115_menu.ts new file mode 100644 index 0000000..67f0846 --- /dev/null +++ b/src/migrations/20250818_143115_menu.ts @@ -0,0 +1,105 @@ +import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres' + +export async function up({ db, payload, req }: MigrateUpArgs): Promise { + await db.execute(sql` + CREATE TYPE "public"."enum_menu_blocks_simple_item_type" AS ENUM('default', 'button'); + CREATE TABLE IF NOT EXISTS "menu_blocks_simple_item" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "text" varchar NOT NULL, + "href" varchar NOT NULL, + "type" "enum_menu_blocks_simple_item_type" DEFAULT 'default' NOT NULL, + "block_name" varchar + ); + + CREATE TABLE IF NOT EXISTS "menu_blocks_mega_menu_groups_items" ( + "_order" integer NOT NULL, + "_parent_id" varchar NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "title" varchar NOT NULL, + "description" varchar NOT NULL, + "href" varchar NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "menu_blocks_mega_menu_groups" ( + "_order" integer NOT NULL, + "_parent_id" varchar NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "title" varchar NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "menu_blocks_mega_menu" ( + "_order" integer NOT NULL, + "_parent_id" uuid NOT NULL, + "_path" text NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "text" varchar NOT NULL, + "quote" varchar NOT NULL, + "source" varchar NOT NULL, + "block_name" varchar + ); + + CREATE TABLE IF NOT EXISTS "menu" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "updated_at" timestamp(3) with time zone, + "created_at" timestamp(3) with time zone + ); + + ALTER TABLE "announcement" ALTER COLUMN "date" SET DEFAULT '2025-08-24T14:31:15.010Z'; + ALTER TABLE "calendar" ALTER COLUMN "date" SET DEFAULT '2025-08-24T14:31:15.092Z'; + ALTER TABLE "classifieds" ALTER COLUMN "until" SET DEFAULT '2025-09-17T14:31:15.112Z'; + DO $$ BEGIN + ALTER TABLE "menu_blocks_simple_item" ADD CONSTRAINT "menu_blocks_simple_item_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."menu"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "menu_blocks_mega_menu_groups_items" ADD CONSTRAINT "menu_blocks_mega_menu_groups_items_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."menu_blocks_mega_menu_groups"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "menu_blocks_mega_menu_groups" ADD CONSTRAINT "menu_blocks_mega_menu_groups_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."menu_blocks_mega_menu"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "menu_blocks_mega_menu" ADD CONSTRAINT "menu_blocks_mega_menu_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."menu"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + CREATE INDEX IF NOT EXISTS "menu_blocks_simple_item_order_idx" ON "menu_blocks_simple_item" USING btree ("_order"); + CREATE INDEX IF NOT EXISTS "menu_blocks_simple_item_parent_id_idx" ON "menu_blocks_simple_item" USING btree ("_parent_id"); + CREATE INDEX IF NOT EXISTS "menu_blocks_simple_item_path_idx" ON "menu_blocks_simple_item" USING btree ("_path"); + CREATE INDEX IF NOT EXISTS "menu_blocks_mega_menu_groups_items_order_idx" ON "menu_blocks_mega_menu_groups_items" USING btree ("_order"); + CREATE INDEX IF NOT EXISTS "menu_blocks_mega_menu_groups_items_parent_id_idx" ON "menu_blocks_mega_menu_groups_items" USING btree ("_parent_id"); + CREATE INDEX IF NOT EXISTS "menu_blocks_mega_menu_groups_order_idx" ON "menu_blocks_mega_menu_groups" USING btree ("_order"); + CREATE INDEX IF NOT EXISTS "menu_blocks_mega_menu_groups_parent_id_idx" ON "menu_blocks_mega_menu_groups" USING btree ("_parent_id"); + CREATE INDEX IF NOT EXISTS "menu_blocks_mega_menu_order_idx" ON "menu_blocks_mega_menu" USING btree ("_order"); + CREATE INDEX IF NOT EXISTS "menu_blocks_mega_menu_parent_id_idx" ON "menu_blocks_mega_menu" USING btree ("_parent_id"); + CREATE INDEX IF NOT EXISTS "menu_blocks_mega_menu_path_idx" ON "menu_blocks_mega_menu" USING btree ("_path");`) +} + +export async function down({ db, payload, req }: MigrateDownArgs): Promise { + await db.execute(sql` + ALTER TABLE "menu_blocks_simple_item" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "menu_blocks_mega_menu_groups_items" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "menu_blocks_mega_menu_groups" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "menu_blocks_mega_menu" DISABLE ROW LEVEL SECURITY; + ALTER TABLE "menu" DISABLE ROW LEVEL SECURITY; + DROP TABLE "menu_blocks_simple_item" CASCADE; + DROP TABLE "menu_blocks_mega_menu_groups_items" CASCADE; + DROP TABLE "menu_blocks_mega_menu_groups" CASCADE; + DROP TABLE "menu_blocks_mega_menu" CASCADE; + DROP TABLE "menu" CASCADE; + ALTER TABLE "announcement" ALTER COLUMN "date" SET DEFAULT '2025-06-15T10:51:24.116Z'; + ALTER TABLE "calendar" ALTER COLUMN "date" SET DEFAULT '2025-06-15T10:51:24.203Z'; + ALTER TABLE "classifieds" ALTER COLUMN "until" SET DEFAULT '2025-07-08T10:51:24.219Z'; + DROP TYPE "public"."enum_menu_blocks_simple_item_type";`) +} diff --git a/src/migrations/index.ts b/src/migrations/index.ts index f83532c..51efe79 100644 --- a/src/migrations/index.ts +++ b/src/migrations/index.ts @@ -7,6 +7,7 @@ import * as migration_20250224_083653_cleanup from './20250224_083653_cleanup'; import * as migration_20250319_101337_donationbox from './20250319_101337_donationbox'; import * as migration_20250322_134918_classifieds from './20250322_134918_classifieds'; import * as migration_20250608_105124_new_blocks from './20250608_105124_new_blocks'; +import * as migration_20250818_143115_menu from './20250818_143115_menu'; export const migrations = [ { @@ -52,6 +53,11 @@ export const migrations = [ { up: migration_20250608_105124_new_blocks.up, down: migration_20250608_105124_new_blocks.down, - name: '20250608_105124_new_blocks' + name: '20250608_105124_new_blocks', + }, + { + up: migration_20250818_143115_menu.up, + down: migration_20250818_143115_menu.down, + name: '20250818_143115_menu' }, ]; diff --git a/src/pageComponents/Parish/Parish.stories.tsx b/src/pageComponents/Parish/Parish.stories.tsx index f71aade..a5ca252 100644 --- a/src/pageComponents/Parish/Parish.stories.tsx +++ b/src/pageComponents/Parish/Parish.stories.tsx @@ -13,174 +13,17 @@ const meta: Meta = { leftItems: [ { text: 'Home', - href: '/' + href: '/', + type: 'default', + blockType: 'simple-item' }, - { - text: 'Gemeinschaft finden', - megaMenu: { - text: { - quote: '', - source: '' - }, - groups: [ - { - title: "Gemeinden", - items: [ - { - title: "St. Richard", - description: "Mehr informationen", - href: "/gemeinde/st-richard" - }, - { - title: "St. Christophorus", - description: "Mehr informationen", - href: "/gemeinde/st-christophorus" - }, - { - title: "St. Clara", - description: "Mehr informationen", - href: "/gemeinde/st-clara" - }, - ] - }, - { - title: "Gruppen", - items: [ - { - title: "Kathoccino", - description: "Begegnung mit Gott", - href: "https://" - }, - { - title: "Credo & Agape", - description: "Gebet der Meditation", - href: "https://" - }, - { - title: "Mädchengruppe", - description: "Stille Begegnung mit Gott", - href: "https://" - }, - { - title: "Alphakurs", - description: "Dank, Ehre und Freude", - href: "https://" - }, - ] - }, - { - title: "Aktivitaten", - items: [ - { - title: "Kochen", - description: "Begegnung mit Gott", - href: "https://" - }, - { - title: "Lernen", - description: "Gebet der Meditation", - href: "https://" - }, - { - title: "Wandern", - description: "Stille Begegnung mit Gott", - href: "https://" - }, - { - title: "Singen", - description: "Dank, Ehre und Freude", - href: "https://" - }, - ] - } - ] - } - }, - { - text: 'Glauben lauben', - megaMenu: { - text: { - quote: '', - source: '' - }, - groups: [ - { - title: "Sakramenten", - items: [ - { - title: "Taufe", - description: "Neues Leben in Christus", - href: "/sakramente/taufe" - }, - { - title: "Eucharistie", - description: "Gemeinschaft durch Brot und Wein", - href: "/sakramente/eucharistie" - }, - { - title: "Firmung", - description: "Stärkung im Heiligen Geist", - href: "/sakramente/firmung" - }, - { - title: "Ehe", - description: "Bund in Liebe, Treue", - href: "/sakramente/ehe" - }, - { - title: "Beichte", - description: "Sündenbekenntnis, Vergebung und Neuanfang mit Gottes Gnade", - href: "/sakramente/beichte" - }, - { - title: "Krankensalbung", - description: "Stärkung und Gottes Beistand", - href: "/sakramente/krankensalbung" - } - ] - }, - { - title: "Gebet", - items: [ - { - title: "Gottesdienste", - description: "Begegnung mit Gott", - href: "https://" - }, - { - title: "Rosenkranz", - description: "Gebet der Meditation", - href: "https://" - }, - { - title: "Anbetung", - description: "Stille Begegnung mit Gott", - href: "https://" - }, - { - title: "Lobpreis", - description: "Dank, Ehre und Freude", - href: "https://" - }, - ] - } - ] - } - }, - { - text: 'Kontakt', - href: '/kontakt' - } ], rightItems: [ { text: 'Mithelfen', href: '/mithelfen', - }, - { - text: 'Neu hier?', - href: '/ich-bin-neu', - display: "button" + type: 'default', + blockType: 'simple-item' } ] }}/> diff --git a/src/payload-types.ts b/src/payload-types.ts index 6a352c6..e7a78b7 100644 --- a/src/payload-types.ts +++ b/src/payload-types.ts @@ -56,8 +56,12 @@ export interface Config { db: { defaultIDType: string; }; - globals: {}; - globalsSelect: {}; + globals: { + menu: Menu; + }; + globalsSelect: { + menu: MenuSelect | MenuSelect; + }; locale: null; user: User & { collection: 'users'; @@ -1089,6 +1093,154 @@ export interface PayloadMigrationsSelect { updatedAt?: T; createdAt?: T; } +/** + * Hier können Sie die Einträge und die Reihenfolge der Hauptnavigation festlegen. + * + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "menu". + */ +export interface Menu { + id: string; + leftItems: ( + | { + text: string; + href: string; + type: 'default' | 'button'; + id?: string | null; + blockName?: string | null; + blockType: 'simple-item'; + } + | { + text: string; + quote: string; + source: string; + groups: { + title: string; + items: { + title: string; + description: string; + href: string; + id?: string | null; + }[]; + id?: string | null; + }[]; + id?: string | null; + blockName?: string | null; + blockType: 'mega-menu'; + } + )[]; + rightItems: ( + | { + text: string; + href: string; + type: 'default' | 'button'; + id?: string | null; + blockName?: string | null; + blockType: 'simple-item'; + } + | { + text: string; + quote: string; + source: string; + groups: { + title: string; + items: { + title: string; + description: string; + href: string; + id?: string | null; + }[]; + id?: string | null; + }[]; + id?: string | null; + blockName?: string | null; + blockType: 'mega-menu'; + } + )[]; + updatedAt?: string | null; + createdAt?: string | null; +} +/** + * This interface was referenced by `Config`'s JSON-Schema + * via the `definition` "menu_select". + */ +export interface MenuSelect { + leftItems?: + | T + | { + 'simple-item'?: + | T + | { + text?: T; + href?: T; + type?: T; + id?: T; + blockName?: T; + }; + 'mega-menu'?: + | T + | { + text?: T; + quote?: T; + source?: T; + groups?: + | T + | { + title?: T; + items?: + | T + | { + title?: T; + description?: T; + href?: T; + id?: T; + }; + id?: T; + }; + id?: T; + blockName?: T; + }; + }; + rightItems?: + | T + | { + 'simple-item'?: + | T + | { + text?: T; + href?: T; + type?: T; + id?: T; + blockName?: T; + }; + 'mega-menu'?: + | T + | { + text?: T; + quote?: T; + source?: T; + groups?: + | T + | { + title?: T; + items?: + | T + | { + title?: T; + description?: T; + href?: T; + id?: T; + }; + id?: T; + }; + id?: T; + blockName?: T; + }; + }; + updatedAt?: T; + createdAt?: T; + globalType?: T; +} /** * This interface was referenced by `Config`'s JSON-Schema * via the `definition` "auth". diff --git a/src/payload.config.ts b/src/payload.config.ts index 56a4ae5..34b68dc 100644 --- a/src/payload.config.ts +++ b/src/payload.config.ts @@ -36,6 +36,7 @@ import { gcsStorage } from '@payloadcms/storage-gcs' import { PopesPrayerIntentions } from '@/collections/PopesPrayerIntentions' import { LiturgicalCalendar } from '@/collections/LiturgicalCalendar' import { Classifieds } from '@/collections/Classifieds' +import { MenuGlobal } from '@/globals/Menu' const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) @@ -92,6 +93,9 @@ export default buildConfig({ Media, Users, ], + globals: [ + MenuGlobal + ], graphQL: { disable: true },