import { NextRequest } from "next/server";
import { fail, ok } from "@/server/http";
import { requireUser } from "@/server/security/auth";
import { cancelCryptoWithdrawal } from "@/server/crypto/payments";

export const dynamic = "force-dynamic";

export async function DELETE(request: NextRequest, { params }: { params: Promise<{ id: string }> }) {
  try {
    const { id } = await params;
    const { user } = await requireUser(request);
    const withdrawal = await cancelCryptoWithdrawal({ userId: user.id, withdrawalId: id });

    return ok({
      withdrawal: {
        id: withdrawal.id,
        status: withdrawal.status,
        reviewedAt: withdrawal.reviewedAt,
        reviewReason: withdrawal.reviewReason
      }
    });
  } catch (error) {
    return fail(error);
  }
}
