import pool from "@/lib/db";
import { getSession } from "@/lib/auth";
import { NextResponse } from "next/server";

export async function GET(
    request: Request,
    { params }: { params: Promise<{ id: string }> }
) {
    try {
        const session = await getSession();
        if (!session) {
            return NextResponse.json({ message: "No autorizado" }, { status: 401 });
        }

        const { id } = await params;

        // Consulta replicada de Delphi (DATOS.dfm -> qreciboscliente)
        const [rows]: any = await pool.execute(
            `SELECT * FROM recibos 
             WHERE idc = ? 
             ORDER BY fecharecibo DESC`,
            [id]
        );

        return NextResponse.json(rows);
    } catch (error) {
        console.error("Error fetching client receipts:", error);
        return NextResponse.json({ message: "Error interno" }, { status: 500 });
    }
}

export async function POST(
    request: Request,
    { params }: { params: Promise<{ id: string }> }
) {
    try {
        const session = await getSession();
        if (!session || session.user.tipo_acceso !== 1) {
            return NextResponse.json({ message: "No autorizado" }, { status: 401 });
        }

        const { id } = await params;
        const body = await request.json();

        // Lógica de inserción de recibo (Basada en campos Delphi)
        const [result]: any = await pool.execute(
            `INSERT INTO recibos (idc, ide, ida, idg, fecharecibo, concepto, importe, entrega, pagado, domiciliado) 
             VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
            [
                id,
                body.ide || 0,
                body.ida || 0,
                body.idg || 0,
                body.fecharecibo,
                body.concepto,
                body.importe,
                body.entrega || 0,
                body.pagado || 0,
                body.domiciliado || 0
            ]
        );

        return NextResponse.json({ id: result.insertId, message: "Recibo creado con éxito" });
    } catch (error) {
        console.error("Error creating receipt:", error);
        return NextResponse.json({ message: "Error interno" }, { status: 500 });
    }
}
