import { NextResponse } from "next/server";
import { db } from "@/lib/db";
import { cookies } from "next/headers";
import { verifyToken } from "@/lib/auth";

export async function POST(req: Request) {
  try {
    const cookieStore = await cookies();
    const token = cookieStore.get("token")?.value;
    const decoded: any = verifyToken(token || "");

    if (!decoded || decoded.role !== 'admin') {
      return NextResponse.json({ error: "No autorizado" }, { status: 401 });
    }

    const { title, message_text, images } = await req.json();

    // 1. Guardar campaña
    const [result]: any = await db.query(
      "INSERT INTO digital_campaigns (admin_id, title, message_text, image_url_1, image_url_2, image_url_3) VALUES (?, ?, ?, ?, ?, ?)",
      [decoded.id, title, message_text, images[0] || null, images[1] || null, images[2] || null]
    );

    const campaignId = result.insertId;

    // 2. Notificar a todos los LÍDERES
    const [leaders]: any = await db.query("SELECT id FROM users WHERE role = 'leader' AND active = 1");

    if (leaders.length > 0) {
      const trackingData = leaders.map((l: any) => [campaignId, l.id]);
      await db.query("INSERT INTO campaign_tracking (campaign_id, user_id) VALUES ?", [trackingData]);
    }

    return NextResponse.json({ ok: true });
  } catch (error) {
    return NextResponse.json({ error: "Error interno" }, { status: 500 });
  }
}