import { NextRequest, NextResponse } from 'next/server';
import { createSbServer } from '@/lib/supabaseServer';

export async function GET(
  request: NextRequest,
  { params }: { params: { id: string } }
) {
  console.log('=== API Organizations Details ===');
  
  try {
    const supabase = await createSbServer();
    const { data: { user } } = await supabase.auth.getUser();
    
    if (!user) {
      return NextResponse.json({ error: 'Non authentifié' }, { status: 401 });
    }

    const orgId = params.id;
    console.log('🏢 Récupération des détails pour org_id:', orgId);

    // Récupérer les informations de base de l'organisation
    const { data: organization, error: orgError } = await supabase
      .from('organizations')
      .select('name, structure_api')
      .eq('id', orgId)
      .single();

    if (orgError || !organization) {
      console.error('❌ Erreur lors de la récupération de l\'organisation:', orgError);
      return NextResponse.json(
        { error: 'Organisation non trouvée' },
        { status: 404 }
      );
    }

    // Récupérer les détails de l'organisation
    const { data: details, error: detailsError } = await supabase
      .from('organization_details')
      .select('*')
      .eq('org_id', orgId)
      .single();

    if (detailsError || !details) {
      console.error('❌ Erreur lors de la récupération des détails:', detailsError);
      return NextResponse.json(
        { error: 'Détails de l\'organisation non trouvés' },
        { status: 404 }
      );
    }

    // Construire la réponse avec les champs nécessaires pour la signature
    const response = {
      id: orgId,
      name: organization.name,
      structure: organization.structure_api,
      email_contact: details.email_contact,
      email_signature: details.email_signature, // Ajout de l'email de signature
      prenom_signataire: details.prenom_signataire,
      nom_signataire: details.nom_signataire,
      qualite_signataire: details.qualite_signataire,
      code_employeur: details.code_employeur,
      organization_name: organization.name, // Alias pour plus de clarté
      organization_code: details.code_employeur, // Alias pour plus de clarté
      // Ajout de la CCN pour le texte de répétition
      organization_details: {
        ccn: details.ccn,
        prenom_contact: details.prenom_contact,
        email_notifs: details.email_notifs,
        email_notifs_cc: details.email_notifs_cc,
        code_employeur: details.code_employeur
      },
      // Autres champs qui pourraient être utiles
      adresse: details.adresse,
      cp: details.cp,
      ville: details.ville,
      siret: details.siret,
      licence_spectacles: details.licence_spectacles
    };

    console.log('✅ Détails organisation récupérés:', response);
    return NextResponse.json(response);

  } catch (error) {
    console.error('💥 Erreur lors de la récupération des détails organisation:', error);
    return NextResponse.json(
      { 
        error: 'Erreur interne du serveur',
        details: error instanceof Error ? error.message : 'Erreur inconnue'
      },
      { status: 500 }
    );
  }
}