import type { CollectionConfig } from 'payload' export const Posts: CollectionConfig = { slug: 'posts', admin: { useAsTitle: 'title', defaultColumns: ['title', 'slug', 'createdAt'], }, access: { read: () => true, create: () => true, update: () => true, delete: () => true, }, fields: [ { name: 'title', type: 'text', required: true, }, { name: 'slug', type: 'text', required: true, admin: { description: 'URL-friendly version of the title', }, }, { name: 'content', type: 'richText', }, { name: 'featuredImage', type: 'upload', relationTo: 'media', }, { name: 'publishedAt', type: 'date', admin: { date: { pickerAppearance: 'dayAndTime', }, }, }, { name: 'status', type: 'select', options: [ { label: 'Draft', value: 'draft' }, { label: 'Published', value: 'published' }, ], defaultValue: 'draft', admin: { description: 'Control publication status', }, }, ], hooks: { beforeChange: [ ({ data }) => { if (data.title && !data.slug) { data.slug = data.title .toLowerCase() .replace(/[^a-z0-9]+/g, '-') .replace(/(^-|-$)/g, '') } return data }, ], }, }