Files
anouma/collections/GroupRegistrations.ts

51 lines
1.6 KiB
TypeScript

import type { CollectionConfig } from "payload";
import { isAdmin } from "@/access";
export const GroupRegistrations: CollectionConfig = {
slug: "group-registrations",
labels: {
singular: "Gruppenanmeldung",
plural: "Gruppenanmeldungen",
},
admin: {
useAsTitle: "name",
defaultColumns: ["name", "email", "offer", "status", "registeredAt"],
group: "Buchungen",
description: "Anmeldungen und Bewerbungen für Gruppenangebote.",
},
access: {
read: isAdmin,
create: () => false,
update: isAdmin,
delete: isAdmin,
},
timestamps: true,
fields: [
{ name: "offer", type: "relationship", relationTo: "offers", label: "Angebot", required: true, index: true },
{
type: "row",
fields: [
{ name: "name", type: "text", label: "Name", required: true, admin: { width: "50%" } },
{ name: "email", type: "email", label: "E-Mail", required: true, admin: { width: "50%" } },
],
},
{ name: "phone", type: "text", label: "Telefon" },
{ name: "message", type: "textarea", label: "Nachricht / Motivation" },
{
name: "status",
type: "select",
label: "Status",
required: true,
defaultValue: "pending",
options: [
{ label: "Zu prüfen", value: "pending" },
{ label: "Angenommen", value: "accepted" },
{ label: "Warteliste", value: "waitlist" },
{ label: "Abgelehnt", value: "rejected" },
{ label: "Storniert", value: "cancelled" },
],
},
{ name: "registeredAt", type: "date", label: "Eingegangen am", defaultValue: () => new Date().toISOString(), admin: { position: "sidebar" } },
],
};