import type { CollectionConfig } from 'payload'
import { isAdminOrEmployee } from '@/collections/access/admin'

export const Media: CollectionConfig = {
  slug: 'media',
  access: {
    read: () => true,
    update: isAdminOrEmployee(),
    delete: isAdminOrEmployee()
  },
  admin: {
    listSearchableFields: ['search']
  },
  labels: {
    singular: {
      de: "Bild"
    },
    plural: {
      de: "Bilder"
    }
  },
  fields: [
    {
      name: 'alt',
      type: 'text',
      label: 'Kurze Beschreibung für u.a. Sehbhinderte Menschen',
      required: true,
    },
    {
      name: 'search',
      type: 'text',
      label: {
        de: "Suchbegriffe"
      },
    },
    {
      type: 'group',
      name: 'copyrights',
      label: {
        de: "Urheberrechte"
      },
      fields: [
        {
          name: 'source',
          type: 'text',
          label: {
            de: "Urheber / Quelle des Bildes"
          },
          required: true,
          defaultValue: ""
        },
        {
          name: 'publicWithoutName',
          type: 'checkbox',
          label: {
            de: "Ich bestätige, dass ich über die erforderlichen Rechte für dieses Bild verfüge (z. B. als Urheber oder durch eine erworbene Lizenz), der Pfarrei die Erlaubnis zur Veröffentlichung auf der Webseite erteile und damit einverstanden bin, dass die Veröffentlichung ohne Nennung meines Namens oder des Urhebers erfolgt."
          },
          required: true,
          validate: value => value === true || "Bild muss frei veröffentlicht werden können",
          defaultValue: false
        },
        {
          name: 'consent',
          type: 'checkbox',
          label: {
            de: "Ich versichere, dass mir von allen erkennbar abgebildeten Personen die ausdrückliche Einwilligung vorliegt, dass ihr Bild veröffentlicht werden darf."
          },
          required: true,
          validate: value => value === true || "Einwilligung erforderlich",
          defaultValue: false
        },
      ]
    }
  ],
  upload: {
    imageSizes: [
      {
        name: 'thumbnail',
        width: 350,
        height: 350,
        position: 'centre',
      },
      {
        name: 'banner',
        width: 1100,
        height: 400,
        position: 'centre',
      },
      {
        name: 'gallery',
        height: 500,
        width: undefined,
        position: 'centre',
      },
      {
        name: 'tablet',
        width: 1024,
        height: undefined,
        position: 'centre',
      },
    ],
    mimeTypes: ['image/*'],
  },
}
