import type { Metadata } from "next";
import { requirePermission } from "@/lib/auth/session";
import {
  getRunningEntry,
  getWeekSeconds,
  getMySubmittedEntries,
  getYearStats,
} from "@/lib/time/queries";
import { getAbsenceTypes } from "@/lib/settings";
import { PageHeader } from "@/components/ui/PageHeader";
import { TimeTracker } from "./TimeTracker";

export const metadata: Metadata = { title: "Arbeitszeit" };

export default async function TimePage() {
  const session = await requirePermission("time.view");
  const year = new Date().getFullYear();

  const [running, weekSeconds, submitted, stats, absenceTypes] = await Promise.all([
    getRunningEntry(session.user.id),
    getWeekSeconds(session.user.id),
    getMySubmittedEntries(session.user.id),
    getYearStats(session.user.id, year),
    getAbsenceTypes(),
  ]);

  return (
    <div className="flex flex-col gap-5">
      <PageHeader
        eyebrow="Erfassung"
        title="Arbeitszeit"
        description="Stempeluhr, manuelle Erfassung (mit Freigabe) und Jahresübersicht."
      />
      <TimeTracker
        running={running}
        weekSeconds={weekSeconds}
        submitted={submitted}
        stats={stats}
        year={year}
        absenceTypes={absenceTypes}
      />
    </div>
  );
}
