import type { CollectionConfig } from '../../../packages/payload/src/collections/config/types' import { Archive } from '../blocks/ArchiveBlock' import { CallToAction } from '../blocks/CallToAction' import { Content } from '../blocks/Content' import { MediaBlock } from '../blocks/MediaBlock' import { hero } from '../fields/hero' import { tenantsSlug } from '../shared' export const postsSlug = 'posts' export const Posts: CollectionConfig = { slug: postsSlug, access: { read: () => true, create: () => true, update: () => true, delete: () => true, }, admin: { useAsTitle: 'title', defaultColumns: ['id', 'title', 'slug', 'createdAt'], }, fields: [ { name: 'slug', type: 'text', required: true, admin: { position: 'sidebar', }, }, { name: 'tenant', type: 'relationship', relationTo: tenantsSlug, admin: { position: 'sidebar', }, }, { name: 'title', type: 'text', required: true, }, { type: 'tabs', tabs: [ { label: 'Hero', fields: [hero], }, { label: 'Content', fields: [ { name: 'layout', type: 'blocks', blocks: [CallToAction, Content, MediaBlock, Archive], }, { name: 'relatedPosts', type: 'relationship', relationTo: 'posts', hasMany: true, filterOptions: ({ id }) => { return { id: { not_in: [id], }, } }, }, ], }, ], }, { name: 'meta', type: 'group', fields: [ { name: 'title', type: 'text', }, { name: 'description', type: 'textarea', }, { name: 'image', type: 'upload', relationTo: 'media', }, ], }, ], }