summaryrefslogtreecommitdiff
path: root/src/collections/Services.ts
diff options
context:
space:
mode:
authorertopogo <erwin.t.pombett@gmail.com>2026-02-19 11:34:16 +0100
committerertopogo <erwin.t.pombett@gmail.com>2026-02-19 11:34:16 +0100
commita21bd6a6710d123ef3bfc3c9aab37fc0c276f9c5 (patch)
treee2cc828607ea91e5c90ae0ea98c6b7d11324eaf1 /src/collections/Services.ts
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 <cursoragent@cursor.com>
Diffstat (limited to 'src/collections/Services.ts')
-rw-r--r--src/collections/Services.ts51
1 files changed, 51 insertions, 0 deletions
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",
+ },
+ },
+ ],
+};