import { NextResponse } from "next/server";
import { db } from "../../lib/db";

export async function GET(req: Request) {
  try {
    const { searchParams } = new URL(req.url);

    const page = Number(searchParams.get("page") || 1);
    const limit = Number(searchParams.get("limit") || 20);
    const offset = (page - 1) * limit;

    const search = searchParams.get("search") || "";

    let where = "WHERE 1=1";

    if (search) {
      where += `
        AND (
          kode_barang LIKE '%${search}%' OR
          nama_barang LIKE '%${search}%' OR
          kategori_barang LIKE '%${search}%'
        )
      `;
    }

    /* ================= COUNT ================= */
    const [countRows]: any = await db.query(`
      SELECT COUNT(*) as total
      FROM staging_inventory_raw
      ${where}
    `);

    const total = countRows[0].total;

    /* ================= DATA ================= */
    const [rows]: any = await db.query(`
      SELECT *
      FROM staging_inventory_raw
      ${where}
      ORDER BY id DESC
      LIMIT ${limit} OFFSET ${offset}
    `);

    return NextResponse.json({
      data: rows,
      total,
      page,
      limit,
    });
  } catch (err: any) {
    return NextResponse.json(
      { message: "Failed load staging inventory", error: err.message },
      { status: 500 }
    );
  }
}