summaryrefslogtreecommitdiff
path: root/src/collections/Media.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/Media.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/Media.ts')
-rw-r--r--src/collections/Media.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/collections/Media.ts b/src/collections/Media.ts
new file mode 100644
index 0000000..19cba0c
--- /dev/null
+++ b/src/collections/Media.ts
@@ -0,0 +1,34 @@
+import type { CollectionConfig } from "payload";
+
+export const Media: CollectionConfig = {
+ slug: "media",
+ admin: {
+ useAsTitle: "alt",
+ },
+ access: {
+ read: () => true,
+ create: ({ req: { user } }) => !!user,
+ update: ({ req: { user } }) => !!user,
+ delete: ({ req: { user } }) => user?.role === "admin",
+ },
+ upload: {
+ mimeTypes: ["image/*", "application/pdf"],
+ staticDir: "media",
+ imageSizes: [
+ { name: "thumbnail", width: 300, height: 300, position: "centre" },
+ { name: "card", width: 768, height: 432, position: "centre" },
+ { name: "hero", width: 1920, height: 1080, position: "centre" },
+ ],
+ },
+ fields: [
+ {
+ name: "alt",
+ type: "text",
+ required: true,
+ },
+ {
+ name: "caption",
+ type: "text",
+ },
+ ],
+};