Initial commit: ANOUMA website with Payload CMS, WebRTC meetings, and booking system
- Next.js 16 App Router site with the ANOUMA design system - Payload CMS (PostgreSQL) for offers, events, posts and page content - WebRTC video-call system with custom signaling server - SMTP email reminders and booking-request notifications - Customer accounts, calendar-based availability, and booking workflow
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
import { postgresAdapter } from "@payloadcms/db-postgres";
|
||||
import { lexicalEditor } 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 { Events } from "@/collections/Events";
|
||||
import { Posts } from "@/collections/Posts";
|
||||
import { Offers } from "@/collections/Offers";
|
||||
import { EventRegistrations } from "@/collections/EventRegistrations";
|
||||
import { Customers } from "@/collections/Customers";
|
||||
import { Availability } from "@/collections/Availability";
|
||||
import { AvailabilityOverrides } from "@/collections/AvailabilityOverrides";
|
||||
import { BookingRequests } from "@/collections/BookingRequests";
|
||||
|
||||
import { Home } from "@/globals/Home";
|
||||
import { About } from "@/globals/About";
|
||||
import { AngeboteIntro } from "@/globals/AngeboteIntro";
|
||||
import { AktuellesIntro } from "@/globals/AktuellesIntro";
|
||||
import { Contact } from "@/globals/Contact";
|
||||
import { Booking } from "@/globals/Booking";
|
||||
import { MeetingSettings } from "@/globals/MeetingSettings";
|
||||
import { BookingSettings } from "@/globals/BookingSettings";
|
||||
|
||||
const filename = fileURLToPath(import.meta.url);
|
||||
const dirname = path.dirname(filename);
|
||||
|
||||
export default buildConfig({
|
||||
serverURL: process.env.NEXT_PUBLIC_SERVER_URL || "http://localhost:3000",
|
||||
admin: {
|
||||
user: Users.slug,
|
||||
importMap: {
|
||||
baseDir: path.resolve(dirname),
|
||||
},
|
||||
meta: {
|
||||
titleSuffix: "— Anouma Admin",
|
||||
},
|
||||
},
|
||||
collections: [
|
||||
Users,
|
||||
Customers,
|
||||
Media,
|
||||
Events,
|
||||
Posts,
|
||||
Offers,
|
||||
EventRegistrations,
|
||||
Availability,
|
||||
AvailabilityOverrides,
|
||||
BookingRequests,
|
||||
],
|
||||
globals: [Home, About, AngeboteIntro, AktuellesIntro, Contact, Booking, MeetingSettings, BookingSettings],
|
||||
editor: lexicalEditor(),
|
||||
secret: process.env.PAYLOAD_SECRET || "",
|
||||
typescript: {
|
||||
outputFile: path.resolve(dirname, "payload-types.ts"),
|
||||
},
|
||||
db: postgresAdapter({
|
||||
pool: {
|
||||
connectionString: process.env.DATABASE_URI || "",
|
||||
},
|
||||
}),
|
||||
sharp,
|
||||
// Server-side upload size limit; the Media collection restricts formats.
|
||||
upload: {
|
||||
limits: {
|
||||
fileSize: 10 * 1024 * 1024, // 10 MB
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
});
|
||||
Reference in New Issue
Block a user