import { getStoredLocale } from "@/lib/getLocale";
import axios from "axios";

export async function getSubscriptions(token: string): Promise<any> {
  try {
    const locale = getStoredLocale();
    const url = `${process.env.NEXT_PUBLIC_API_URL}/tiers`;
    const headers: Record<string, string> = {
      "Content-Type": "application/json",
      Authorization: `Bearer ${token}`,
      "Accept-Language": locale,
    };

    const response = await axios.get(url, { headers });
    const result = response?.data?.data?.data;
    const subscription = response?.data?.data?.subscription;
    return {
      success: true,
      message: "Tiers Fetch Successfully!",
      tierData: result,
      subscription
    };
  } catch (error: any) {
    throw error;
  }
}


export async function subscribeOrUpdateTier(
  token: string,
  tierId: string,
  payment?: {
    amount: number;
    currency: string;
    paymentBrand: string;
    card_number: string;
    holder: string;
    expiryMonth: string;
    expiryYear: string;
    cvv: string;
  }): Promise<any> {
  try {
    const locale = getStoredLocale();
    const url = `${process.env.NEXT_PUBLIC_API_URL}/tier/store-or-Update`;

    const headers: Record<string, string> = {
      "Content-Type": "application/json",
      Authorization: `Bearer ${token}`,
      "Accept-Language": locale,
    };
    const payload: any = { tierId };
    if (payment) {
      payload.payment = payment;
    }

    const response = await axios.post(url, payload, { headers });
    const result = response?.data?.data?.userTier;

    return {
      success: true,
      message: "Tier Subscribed Successfully!",
      tierData: result,
    };
  } catch (error: any) {
    throw error;
  }
}

