import { hasPersonValidator } from "aleksis.core/routeValidators";
import Timetable from "./components/Timetable.vue";
import AmendLessonOverview from "./components/AmendLessonOverview.vue";

import { DateTime } from "luxon";

export default {
  meta: {
    inMenu: true,
    titleKey: "chronos.menu_title",
    icon: "mdi-school-outline",
    iconActive: "mdi-school",
    validators: [hasPersonValidator],
  },
  props: {
    byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true,
  },
  children: [
    {
      path: "timetable/",
      component: Timetable,
      name: "chronos.timetable",
      meta: {
        inMenu: true,
        titleKey: "chronos.timetable.menu_title",
        icon: "mdi-grid",
        permission: "chronos.view_timetable_overview_rule",
      },
    },
    {
      path: "timetable/:type/:id/",
      component: Timetable,
      name: "chronos.timetableWithId",
      meta: {
        permission: "chronos.view_timetable_overview_rule",
      },
    },
    {
      path: "amend_lesson_overview/",
      component: () => import("./components/AmendLessonOverview.vue"),
      redirect: (to) => {
        return {
          name: "chronos.amendLessonOvervievByTypeAndDate",
          params: {
            dateStart: DateTime.now().toISODate(),
            dateEnd: DateTime.now().plus({ weeks: 1 }).toISODate(),
          },
        };
      },
      name: "chronos.amendLessonOverview",
      props: true,
      meta: {
        inMenu: true,
        icon: "mdi-account-convert-outline",
        iconActive: "mdi-account-convert",
        titleKey: "chronos.amend_lesson.overview.menu_title",
        toolbarTitle: "chronos.amend_lesson.overview.menu_title",
        permission: "chronos.view_substitution_overview_rule",
      },
      children: [
        {
          path: ":dateStart(\\d\\d\\d\\d-\\d\\d-\\d\\d)/:dateEnd(\\d\\d\\d\\d-\\d\\d-\\d\\d)/:objId(\\d+)?/",
          component: () => import("./components/AmendLessonOverview.vue"),
          name: "chronos.amendLessonOvervievByTypeAndDate",
          meta: {
            titleKey: "chronos.amend_lesson.overview.menu_title",
            toolbarTitle: "chronos.amend_lesson.overview.menu_title",
            permission: "chronos.view_substitution_overview_rule",
            fullWidth: true,
          },
        },
      ],
    },
  ],
};