// app/api/staff/contrats/[id]/salaires-par-date/route.ts
import { createRouteHandlerClient } from "@supabase/auth-helpers-nextjs";
import { cookies } from "next/headers";
import { NextResponse } from "next/server";

export async function PATCH(
  request: Request,
  { params }: { params: { id: string } }
) {
  try {
    const supabase = createRouteHandlerClient({ cookies });

    // Vérifier l'authentification
    const {
      data: { user },
      error: authError,
    } = await supabase.auth.getUser();

    if (authError || !user) {
      return NextResponse.json(
        { error: "Non authentifié" },
        { status: 401 }
      );
    }

    // Vérifier que l'utilisateur est staff
    const { data: staffUser } = await supabase
      .from("staff_users")
      .select("is_staff")
      .eq("user_id", user.id)
      .maybeSingle();

    if (!staffUser?.is_staff) {
      return NextResponse.json(
        { error: "Accès réservé au staff" },
        { status: 403 }
      );
    }

    // Récupérer les données du body
    const body = await request.json();
    const { salaires_par_date } = body;

    if (!salaires_par_date) {
      return NextResponse.json(
        { error: "salaires_par_date requis" },
        { status: 400 }
      );
    }

    // Mettre à jour le contrat
    const { data, error } = await supabase
      .from("cddu_contracts")
      .update({ salaires_par_date })
      .eq("id", params.id)
      .select()
      .single();

    if (error) {
      console.error("Error updating salaires_par_date:", error);
      return NextResponse.json(
        { error: "Erreur lors de la mise à jour" },
        { status: 500 }
      );
    }

    return NextResponse.json({ success: true, data });
  } catch (error) {
    console.error("Error in PATCH /api/staff/contrats/[id]/salaires-par-date:", error);
    return NextResponse.json(
      { error: "Erreur interne du serveur" },
      { status: 500 }
    );
  }
}
