import { NextResponse } from "next/server";
import {
  applyWishlistCookie,
  removeWishlistItem,
} from "@/lib/storefront-wishlist";

interface WishlistItemRouteContext {
  params: Promise<{
    id: string;
  }>;
}

export async function DELETE(
  _request: Request,
  context: WishlistItemRouteContext,
) {
  try {
    const { id } = await context.params;
    const itemId = Number(id);

    if (!Number.isInteger(itemId) || itemId < 1) {
      return NextResponse.json(
        { message: "Neispravan proizvod za uklanjanje." },
        { status: 400 },
      );
    }

    const wishlist = await removeWishlistItem(itemId);
    const response = NextResponse.json(wishlist);

    applyWishlistCookie(response, wishlist);

    return response;
  } catch (error) {
    return NextResponse.json(
      {
        message:
          error instanceof Error
            ? error.message
            : "Uklanjanje iz liste želja nije uspjelo.",
      },
      { status: 500 },
    );
  }
}
