// storage-adapter-import-placeholder import { lexicalEditor, BoldFeature, InlineToolbarFeature, ItalicFeature, UnderlineFeature, ParagraphFeature, HeadingFeature, AlignFeature, UnorderedListFeature, LinkFeature, HTMLConverterFeature, } from '@payloadcms/richtext-lexical' import path from 'path' import { buildConfig } from 'payload' import { fileURLToPath } from 'url' import sharp from 'sharp' import { Users } from './collections/Users' import { Media } from './collections/Media' import { Worship } from '@/collections/Worship' import { Churches } from '@/collections/Churches' import { de } from '@payloadcms/translations/languages/de' import { Testimony } from '@/collections/Testimony' import { Parish } from '@/collections/Parish' import { Employees } from '@/collections/Employees' import { Groups } from '@/collections/Groups' import { Events } from '@/collections/Events' import { Announcements } from '@/collections/Announcements' import { Blog } from '@/collections/Blog' import { Highlight } from '@/collections/Highlight' import { Pages } from '@/collections/Pages' import { Documents } from '@/collections/Documents' import { Locations } from '@/collections/Locations' import { ContactPerson } from '@/collections/ContactPerson' import { postgresAdapter } from '@payloadcms/db-postgres' import { gcsStorage } from '@payloadcms/storage-gcs' const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) export default buildConfig({ admin: { user: Users.slug, }, collections: [ Parish, Churches, Worship, Announcements, Blog, Highlight, Events, ContactPerson, Locations, Groups, Employees, Testimony, Pages, Users, Documents, Media, ], editor: lexicalEditor( { features: () => [ BoldFeature(), ItalicFeature(), UnderlineFeature(), HeadingFeature({ enabledHeadingSizes: ["h3","h4","h5"]}), AlignFeature(), UnorderedListFeature(), LinkFeature(), ParagraphFeature(), InlineToolbarFeature(), HTMLConverterFeature() ] } ), secret: process.env.PAYLOAD_SECRET || '', typescript: { outputFile: path.resolve(dirname, 'payload-types.ts'), }, i18n: { supportedLanguages: { de }, }, db: postgresAdapter({ idType: "uuid", pool: { connectionString: process.env.DATABASE_URI, } }), sharp, plugins: [ gcsStorage({ collections: { media: { disablePayloadAccessControl: true, prefix: 'media/', generateFileURL: args => `https://storage.googleapis.com/${process.env.GOOGLE_BUCKET}/media/${args.filename}` }, documents: { disablePayloadAccessControl: true, prefix: 'documents/', generateFileURL: args => `https://storage.googleapis.com/${process.env.GOOGLE_BUCKET}/documents/${args.filename}` }, }, bucket: process.env.GOOGLE_BUCKET || "", options: {}, acl: undefined }) ], })