import { DateFormat, MarkdownProps } from "../props.js";
import {
  AuthorRelation,
  DescriptionText,
  DraftBoolean,
  Title,
} from "./widgets.js";

const BlogCollection = {
  name: "blog",
  label: "Aktuelles",
  label_singular: "Artikel",
  description:
    'Diese Artikel werden im Bereich "Aktuelles" auf der Schulhomepage angezeigt. Sie können sowohl direkt veröffentlicht, als auch als Entwurf gespeichert werden.',
  icon: "news",
  folder: "content/blog",
  create: true,
  editor: {
    preview: true,
    frame: true,
    size: "half",
  },
  filter: {
    field: "type",
    value: "post",
  },
  view_groups: [
    {
      label: "Entwurf",
      field: "draft",
    },
  ],
  sortable_fields: {
    fields: ["date", "title"],
    default: {
      field: "date",
      direction: "Descending",
    },
  },
  summary_fields: ["date", "title", "draft", "author", "body"],
  fields: [
    Title(false),
    {
      name: "date",
      label: "Datum",
      widget: "datetime",
      required: true,
      ...DateFormat,
    },
    DraftBoolean,
    DescriptionText,
    {
      name: "image",
      label: "Titelbild",
      hint: "16:9 Seitenverhältnis beachten",
      widget: "image",
      required: true,
      default: "/media/image.webp",
    },
    AuthorRelation,
    {
      name: "categories",
      label: "Kategorien",
      hint: "Verwaltet in den Einstellungen",
      widget: "relation",
      collection: "settings",
      file: "data-categories",
      value_field: "blog.*",
      search_fields: ["blog.*"],
      display_fields: ["blog.*"],
      multiple: true,
      required: true,
      options_length: 10000,
    },
    {
      name: "subjects",
      label: "Fächer",
      hint: "Verwaltet in den Einstellungen",
      widget: "relation",
      collection: "settings",
      file: "data-categories",
      value_field: "subjects.*",
      search_fields: ["subjects.*"],
      display_fields: ["subjects.*"],
      multiple: true,
      required: false,
      options_length: 10000,
    },
    {
      name: "tags",
      label: "Tags",
      widget: "list",
      delimiter: ",",
      required: false,
    },
    {
      name: "type",
      label: "Typ",
      widget: "hidden",
      default: "post",
    },
    {
      name: "body",
      label: "Inhalt",
      widget: "markdown",
      required: true,
      ...MarkdownProps,
    },
  ],
};

export default BlogCollection;