import { NextRequest, NextResponse } from "next/server";

const API_BASE = "https://api.astrology.togwe.com/api";

export async function POST(request: NextRequest) {
  try {
    const authorization = request.headers.get("authorization");
    if (!authorization) {
      return NextResponse.json({ status: false, message: "Authorization token is required" }, { status: 401 });
    }

    const body = await request.json();
    const response = await fetch(`${API_BASE}/astrologer/wallet/withdraw`, {
      method: "POST",
      headers: {
        Accept: "application/json",
        "Content-Type": "application/json",
        Authorization: authorization,
      },
      body: JSON.stringify(body),
      cache: "no-store",
    });

    const text = await response.text();
    if (!text.trim()) {
      return NextResponse.json(
        { status: false, message: `Withdraw API returned an empty response (HTTP ${response.status}).` },
        { status: response.status || 502 }
      );
    }

    try {
      return NextResponse.json(JSON.parse(text), { status: response.status });
    } catch {
      return NextResponse.json(
        { status: false, message: "Withdraw API returned invalid JSON.", upstream_status: response.status },
        { status: 502 }
      );
    }
  } catch (error) {
    console.error("Withdraw proxy error:", error);
    return NextResponse.json({ status: false, message: "Unable to connect to withdraw API." }, { status: 500 });
  }
}
