import { jsonError } from '@/lib/server/http'; import { requireAuthenticatedSession } from '@/lib/server/auth-session'; import { withStore } from '@/lib/server/store'; type Context = { params: Promise<{ id: string }>; }; export async function DELETE(_request: Request, context: Context) { const { session, response } = await requireAuthenticatedSession(); if (response) { return response; } const userId = session.user.id; const { id } = await context.params; const numericId = Number(id); if (!Number.isInteger(numericId) || numericId <= 0) { return jsonError('Invalid watchlist id', 400); } let removed = false; await withStore((store) => { const next = store.watchlist.filter((item) => !(item.id === numericId && item.user_id === userId)); removed = next.length !== store.watchlist.length; store.watchlist = next; }); if (!removed) { return jsonError('Watchlist item not found', 404); } return Response.json({ success: true }); }