import {CollectionConfig} from 'payload'
import {
  AlignFeature,
  BoldFeature,
  HeadingFeature, HTMLConverterFeature, InlineToolbarFeature,
  ItalicFeature,
  lexicalEditor, LinkFeature, ParagraphFeature,
  UnderlineFeature, UnorderedListFeature,
} from '@payloadcms/richtext-lexical'
import { hide, isAdminOrEmployee } from '@/collections/access/admin'

let oneMonth = new Date();
oneMonth.setDate(oneMonth.getDate() + 30);

export const Classifieds: CollectionConfig = {
  slug: 'classifieds',
  labels: {
    singular: {
      de: 'Kleinanzeige'
    },
    plural: {
      de: 'Kleinanzeigen'
    }
  },
  fields: [
    {
      name: "until",
      label: {
        de: "Anzeigen bis"
      },
      type: 'date',
      required: true,
      defaultValue: oneMonth,
    },
    {
      name: 'text',
      type: 'richText',
      label: {
        de: "Anzeige"
      },
      editor: lexicalEditor(    {
        features: () => [
          BoldFeature(),
          ItalicFeature(),
          UnderlineFeature(),
          LinkFeature(),
          InlineToolbarFeature(),
        ]
      }),
      required: true
    },
    {
      name: 'email',
      type: 'email',
      label: {
        de: "Kontakt E-mail"
      },
      required: true
    }
  ],
  admin: {
    hidden: hide,
    defaultColumns: ['text', 'until', 'email'],
    description: {
      de: "Dieser Bereich des Dashboards ermöglicht die umfassende Verwaltung aller veröffentlichten Kleinanzeigen für freiwillige Tätigkeiten. Hier können Administratoren Inserate einsehen, bearbeiten, veröffentlichen und entfernen, um die Qualität und Relevanz der angebotenen Möglichkeiten sicherzustellen."
    }
  },
  access: {
    read: () => true,
    create: isAdminOrEmployee(),
    update: isAdminOrEmployee(),
    delete: isAdminOrEmployee(),
  }
}