import { auth } from "@/lib/auth";
import { db } from "@/lib/db";
import { servicios } from "@/lib/schema";
import { eq } from "drizzle-orm";

export async function GET() {
  const session = await auth();
  if (!session) return Response.json({ error: "Unauthorized" }, { status: 401 });

  const rows = await db.select().from(servicios).where(eq(servicios.activo, 1));
  return Response.json(rows);
}

export async function POST(req: Request) {
  const session = await auth();
  if (!session) return Response.json({ error: "Unauthorized" }, { status: 401 });
  if (session.user.role !== "admin") return Response.json({ error: "Forbidden" }, { status: 403 });
  const body = await req.json();
  const { nombre, porcentaje, color } = body;

  if (!nombre || typeof nombre !== "string" || nombre.trim().length === 0) {
    return Response.json({ error: "Nombre es requerido" }, { status: 400 });
  }
  if (porcentaje !== undefined && (typeof porcentaje !== "number" || porcentaje < 0 || porcentaje > 100)) {
    return Response.json({ error: "Porcentaje debe ser entre 0 y 100" }, { status: 400 });
  }

  const [newServicio] = await db.insert(servicios).values({
    nombre,
    porcentaje: porcentaje || 45,
    color: color || "#64748b",
  }).returning();

  return Response.json(newServicio, { status: 201 });
}
