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

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

const allowedTypes = ["one-card", "three-card", "love", "yes-no"];

export async function POST(
  request: NextRequest,
  context: { params: Promise<{ type: string }> },
) {
  try {
    const { type } = await context.params;

    if (!allowedTypes.includes(type)) {
      return NextResponse.json(
        { status: false, message: "Invalid tarot reading type." },
        { status: 400 },
      );
    }

    const body = await request.json();

    const authorization = request.headers.get("authorization");

    if (!authorization) {
      return NextResponse.json(
        { status: false, message: "Authentication token is required." },
        { status: 401 },
      );
    }

    const response = await fetch(`${API_BASE}/${type}`, {
      method: "POST",

      headers: {
        "Content-Type": "application/json",
        Accept: "application/json",
        Authorization: authorization,
      },

      body: JSON.stringify(body),

      cache: "no-store",
    });

    const data = await response.json();

    return NextResponse.json(data, { status: response.status });
  } catch (error) {
    console.error("Tarot reading proxy error:", error);

    return NextResponse.json(
      { status: false, message: "Unable to connect to tarot API." },
      { status: 500 },
    );
  }
}
