import { Modello, PrismaClient } from "@/generated/prisma";

export async function GET(request: Request) {
  const prisma = new PrismaClient();

  const clients = await prisma.cliente.findMany({
    include: {
      registratori: {
        include: {
          interventi: true,
        },
      },
    },
  });

  return Response.json({ clients });
}

function extractLatLonFromGmapsUrl(url: string) {
  // Usa una regex per cercare la latitudine e la longitudine nell'URL
  const regex = /@(-?\d+\.\d+),(-?\d+\.\d+)/;
  const match = url.match(regex);

  if (match) {
    const lat = parseFloat(match[1]);
    const lon = parseFloat(match[2]);
    return [lat, lon]; // Restituisce un array con latitudine e longitudine
  } else {
    return [0, 0]; // Se non trova latitudine e longitudine
  }
}

export async function POST(request: Request) {
  const prisma = new PrismaClient();
  const data = await request.json();
  const [lat, lon] = extractLatLonFromGmapsUrl(data.sede_url);

  await prisma.cliente.create({
    data: {
      contratto: data.contratto,
      email: data.email,
      partita_iva: data.partita_iva,
      ragione_sociale: data.ragione_sociale,
      sede: data.sede,
      sede_url: data.sede_url,
      telefono: data.telefono,
      lat: lat,
      lon: lon,
      /*registratori: {
        create: {
          id: "80E1758414",
          modello: Modello.FORM100,
          interventi: {
            create: {
              data: new Date("2025-10-30"),
              fattura: true,
              lavoro: "Boh, cazzeggiato tutto il tempo",
            },
          },
        },
        },*/
    },
  });

  return Response.json({ message: "fatto bastardo" });
}
