// storage-adapter-import-placeholder import { postgresAdapter } from "@payloadcms/db-postgres"; import { payloadCloudPlugin } from "@payloadcms/payload-cloud"; import { lexicalEditor } from "@payloadcms/richtext-lexical"; import path from "path"; import { buildConfig } from "payload"; import { fileURLToPath } from "url"; import sharp from "sharp"; import { s3Storage } from "@payloadcms/storage-s3"; import { Users } from "@/collections/Users"; import { Media } from "@/collections/Media"; import { BlogTags } from "@/collections/BlogTags"; import { BlogCategories } from "@/collections/BlogCategories"; import { Blogs } from "@/collections/Blogs"; const filename = fileURLToPath(import.meta.url); const dirname = path.dirname(filename); export default buildConfig({ cors: [process.env.SITE_URL || ""], csrf: [process.env.SITE_URL || ""], admin: { user: Users.slug, importMap: { baseDir: path.resolve(dirname), }, meta: { titleSuffix: "- Admin - Dynamic Realty", description: "Dynamic Realty", icons: [{ url: "/images/logo2.png" }], }, components: { graphics: { Logo: { path: "/components/LogoAdmin", }, }, }, theme: "dark", }, collections: [Users, Media, BlogTags, BlogCategories, Blogs], editor: lexicalEditor(), secret: process.env.PAYLOAD_SECRET || "", typescript: { outputFile: path.resolve(dirname, "payload-types.ts"), }, db: postgresAdapter({ pool: { connectionString: process.env.DATABASE_URI || "", }, }), sharp, plugins: [ payloadCloudPlugin(), // storage-adapter-placeholder, s3Storage({ collections: { media: { prefix: "media", }, }, bucket: process.env.S3_BUCKET || "", config: { forcePathStyle: true, // Important for using Supabase credentials: { accessKeyId: process.env.S3_ACCESS_KEY_ID || "", secretAccessKey: process.env.S3_SECRET_ACCESS_KEY || "", }, region: process.env.S3_REGION, endpoint: process.env.S3_ENDPOINT, }, }), ], });