import { NextRequest, NextResponse } from "next/server"; import { prisma } from "@/lib/db"; import { servicioCatalogoSchema } from "@/lib/schemas"; export async function GET() { try { const servicios = await prisma.servicioCatalogo.findMany({ orderBy: [{ fase: "asc" }, { orden: "asc" }], }); return NextResponse.json(servicios); } catch (error: unknown) { const msg = error instanceof Error ? error.message : "Error interno"; return NextResponse.json({ error: msg }, { status: 500 }); } } export async function POST(request: NextRequest) { try { const body = await request.json(); const parsed = servicioCatalogoSchema.safeParse(body); if (!parsed.success) { return NextResponse.json( { error: parsed.error.issues.map((i) => i.message).join(", ") }, { status: 400 } ); } const servicio = await prisma.servicioCatalogo.create({ data: { nombre: parsed.data.nombre, descripcion: parsed.data.descripcion, fase: parsed.data.fase, tipoPago: parsed.data.tipoPago, precioBase: parsed.data.precioBase, tiempoEntrega: parsed.data.tiempoEntrega, entregablesDefault: parsed.data.entregablesDefault, categoriaId: parsed.data.categoriaId, variante: parsed.data.variante, activo: true, orden: parsed.data.orden, }, }); return NextResponse.json(servicio, { status: 201 }); } catch (error: unknown) { const msg = error instanceof Error ? error.message : "Error interno"; return NextResponse.json({ error: msg }, { status: 500 }); } }