import { NextResponse } from "next/server";

import { getDisciplinairesByEmployeCosFeed } from "@/server/disciplinaire.server";
import { requireAuth } from "@/lib/requireAuth";

type RouteContext = {
  params: Promise<{
    cos: string;
  }>;
};

function parseCos(cosParam: string) {
  const cos = Number(cosParam);

  if (!Number.isInteger(cos)) {
    return null;
  }

  return cos;
}

export async function GET(_request: Request, { params }: RouteContext) {
  const authError = requireAuth(_request);

  if (authError) {
    return authError;
  }
  const { cos: idParam } = await params;
  const id = parseCos(idParam);

  if (id === null) {
    return NextResponse.json(
      { message: "Invalid ID parameter" },
      { status: 400 },
    );
  }

  const data = await getDisciplinairesByEmployeCosFeed(id);

  if (!data.employe) {
    return NextResponse.json(
      { message: "Employe not found" },
      { status: 404 },
    );
  }

  return NextResponse.json({
    message: "Disciplinaires by employe retrieved successfully",
    items: data.items,
    count: data.count,
  });
}
