import { NextResponse } from "next/server";
import { db } from "../../../../lib/db";

export async function GET(
  req: Request,
  { params }: { params: Promise<{ item_id: string; location_id: string }> }
) {
  try {
    const {item_id, location_id} = await params;
    // const item_id = Number(params.item_id);
    // const location_id = Number(params.location_id);
    console.log("itemId:", item_id, "locationId:", location_id);
    const itemId = Number(item_id);
    const locationId = Number(location_id);
    // if (isNaN(item_id) || isNaN(location_id)) {
    if (isNaN(itemId) || isNaN(locationId)) {
      return NextResponse.json(
        { message: "Invalid params" },
        { status: 400 }
      );
    }

    /* ================= INVENTORY ================= */
    const [rows]: any = await db.query(
      `
      SELECT 
        inv.*,
        i.name,
        i.sku,
        i.unit,
        c.name as category,
        l.name as location_name
      FROM inventories inv
      JOIN items i ON i.id = inv.item_id
      LEFT JOIN categories c ON c.id = i.category_id
      JOIN locations l ON l.id = inv.location_id
      WHERE inv.item_id = ?
      AND inv.location_id = ?
      LIMIT 1
      `,
      [item_id, location_id]
    );

    if (!rows.length) {
      return NextResponse.json(
        { message: "Data tidak ditemukan" },
        { status: 404 }
      );
    }

    /* ================= BARCODES ================= */
    const [barcodes]: any = await db.query(
      `SELECT * FROM item_barcodes WHERE item_id = ?`,
      [item_id]
    );

    return NextResponse.json({
      inventory: rows[0],
      barcodes,
    });

  } catch (err: any) {
    return NextResponse.json(
      { message: "Server error", error: err.message },
      { status: 500 }
    );
  }
}