From a21bd6a6710d123ef3bfc3c9aab37fc0c276f9c5 Mon Sep 17 00:00:00 2001 From: ertopogo Date: Thu, 19 Feb 2026 11:34:16 +0100 Subject: feat: initial project setup - Next.js 16, Payload CMS v3, palette Mapuche Next.js 16 App Router + TypeScript + Tailwind CSS v4. Payload CMS v3 with PostgreSQL adapter. Mapuche Corporate palette. Public pages, Docker Compose + Caddy, security middleware. Co-authored-by: Cursor --- src/collections/Services.ts | 51 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/collections/Services.ts (limited to 'src/collections/Services.ts') diff --git a/src/collections/Services.ts b/src/collections/Services.ts new file mode 100644 index 0000000..923e650 --- /dev/null +++ b/src/collections/Services.ts @@ -0,0 +1,51 @@ +import type { CollectionConfig } from "payload"; + +export const Services: CollectionConfig = { + slug: "services", + admin: { + useAsTitle: "title", + }, + access: { + read: () => true, + create: ({ req: { user } }) => user?.role === "admin", + update: ({ req: { user } }) => user?.role === "admin", + delete: ({ req: { user } }) => user?.role === "admin", + }, + fields: [ + { + name: "title", + type: "text", + required: true, + }, + { + name: "slug", + type: "text", + required: true, + unique: true, + }, + { + name: "description", + type: "textarea", + required: true, + }, + { + name: "icon", + type: "text", + admin: { + description: "Nom de l'icĂ´ne Lucide (ex: shield, key, lock)", + }, + }, + { + name: "details", + type: "richText", + }, + { + name: "order", + type: "number", + defaultValue: 0, + admin: { + position: "sidebar", + }, + }, + ], +}; -- cgit v1.2.3