church-website/src/collections/Worship.ts
2025-03-12 15:08:13 +01:00

113 lines
2 KiB
TypeScript

import { CollectionConfig } from 'payload'
import { hide, isAdminOrEmployee } from '@/collections/access/admin'
export const Worship: CollectionConfig = {
slug: 'worship',
labels: {
singular: {
de: 'Gottesdienst',
},
plural: {
de: 'Gottesdienst',
},
},
fields: [
{
name: 'date',
label: {
de: 'Datum',
},
type: 'date',
required: true,
admin: {
date: {
pickerAppearance: 'dayAndTime',
timeIntervals: 15,
timeFormat: 'HH:mm'
},
},
},
{
name: 'location',
label: {
de: 'Location',
},
type: 'relationship',
relationTo: 'church',
required: true,
},
{
name: 'type',
label: {
de: 'Categorie',
},
type: 'radio',
options: [
{
label: 'Heilige Messe',
value: 'MASS',
},
{
label: 'Familien Messe',
value: 'FAMILY',
},
{
label: 'Wort-Gottes-Feier',
value: 'WORD',
},
],
required: true,
},
{
name: 'title',
type: 'text',
required: false,
label: {
de: 'Titel'
}
},
{
name: 'cancelled',
type: 'checkbox',
required: true,
defaultValue: false,
label: {
de: 'Abgesagt',
},
},
{
name: 'liturgicalDay',
type: 'text',
required: false,
label: {
de: 'Liturgischer Tag',
},
},
{
name: 'celebrant',
type: 'text',
required: false,
label: {
de: 'Zelebrant'
}
},
{
name: 'description',
type: 'textarea',
label: {
de: 'Hinweise',
},
},
],
admin: {
defaultColumns: ["date", 'location', 'type', 'celebrant'],
listSearchableFields: ['date', 'location'],
hidden: hide
},
access: {
read: () => true,
create: isAdminOrEmployee(),
update: isAdminOrEmployee(),
delete: isAdminOrEmployee(),
},
}