church-website/src/collections/EventOccurrences.ts
2026-04-24 09:25:28 +02:00

76 lines
1.4 KiB
TypeScript

import { CollectionConfig } from 'payload'
import { isAdminOrEmployee } from '@/collections/access/admin'
export const EventOccurrences: CollectionConfig = {
slug: 'eventOccurrence',
labels: {
singular: {
de: 'Veranstaltungs-Termin',
},
plural: {
de: 'Veranstaltungs-Termine',
},
},
fields: [
{
name: 'event',
type: 'relationship',
relationTo: 'event',
required: true,
index: true,
label: {
de: 'Veranstaltung',
},
},
{
name: 'date',
type: 'date',
required: true,
index: true,
label: {
de: 'Datum',
},
admin: {
date: {
pickerAppearance: 'dayAndTime',
timeIntervals: 15,
timeFormat: 'HH:mm',
},
},
},
{
name: 'cancelled',
type: 'checkbox',
required: true,
defaultValue: false,
label: {
de: 'Abgesagt',
},
admin: {
position: 'sidebar',
},
},
{
name: 'generated',
type: 'checkbox',
defaultValue: false,
label: {
de: 'Automatisch erzeugt',
},
admin: {
readOnly: true,
position: 'sidebar',
},
},
],
admin: {
defaultColumns: ['date', 'event', 'cancelled'],
hidden: true,
},
access: {
read: () => true,
create: isAdminOrEmployee(),
update: isAdminOrEmployee(),
delete: isAdminOrEmployee(),
},
}