import { NextResponse } from "next/server";
import { db } from "@/lib/db";

export async function GET() {
  try {
    // 1. Obtenemos todas las campañas incluyendo INSTRUCTIONS (Añadido)
    const [campaigns]: any = await db.query(
      `SELECT 
        id, 
        title, 
        message_text, 
        instructions, 
        image_url_1, 
        image_url_2, 
        image_url_3, 
        scope, 
        created_at 
      FROM digital_campaigns 
      ORDER BY created_at DESC`
    );

    // 2. Procesamos el seguimiento (trackers) para cada campaña
    const history = await Promise.all(campaigns.map(async (camp: any) => {
      const [trackers]: any = await db.query(
        `SELECT 
            t.is_read, 
            t.is_disseminated, 
            u.full_name as user_name 
         FROM campaign_tracking t 
         JOIN users u ON t.user_id = u.id 
         WHERE t.campaign_id = ?`,
        [camp.id]
      );

      return {
        ...camp,
        pending: trackers.filter((t: any) => !t.is_read).length,
        trackers: trackers 
      };
    }));

    return NextResponse.json(history);
  } catch (error) {
    console.error("HISTORY_ERROR_DETAILED:", error);
    return NextResponse.json(
      { error: "Error al sincronizar el historial de misiones" }, 
      { status: 500 }
    );
  }
}