import { redirect } from "next/navigation";
import { getCurrentSession } from "@/lib/auth";
import { prisma } from "@/lib/prisma";
import EmployeePortal from "@/components/EmployeePortal";

export const dynamic = "force-dynamic";

export default async function PortalPage() {
  const session = await getCurrentSession();
  if (!session || !session.employeeId) redirect("/login");

  const employee = await prisma.employee.findUniqueOrThrow({
    where: { id: session.employeeId },
    include: {
      monitoringPolicy: true,
      workSessions: { where: { endedAt: null }, take: 1 },
      emergencyEvents: { where: { status: "ACTIVE" }, take: 1 },
    },
  });

  return (
    <EmployeePortal
      employeeName={session.user.name}
      employeeCode={employee.employeeCode}
      policy={
        employee.monitoringPolicy
          ? { name: employee.monitoringPolicy.name, description: employee.monitoringPolicy.description }
          : null
      }
      policyAcknowledged={Boolean(employee.policyAcknowledgedAt)}
      activeWorkSession={employee.workSessions[0] ? { state: employee.workSessions[0].state } : null}
      activeEmergency={employee.emergencyEvents.length > 0}
    />
  );
}
