const RAZORPAY_SDK_URL = "https://checkout.razorpay.com/v1/checkout.js";

let cached: Promise<boolean> | null = null;

export const loadRazorpay = (): Promise<boolean> => {
  if (cached) return cached;

  cached = new Promise<boolean>((resolve) => {
    if (typeof window === "undefined") {
      resolve(false);
      return;
    }
    if (window.Razorpay) {
      resolve(true);
      return;
    }

    const script = document.createElement("script");
    script.src = RAZORPAY_SDK_URL;
    script.async = true;
    script.onload = () => resolve(true);
    script.onerror = () => {
      cached = null;
      resolve(false);
    };
    document.body.appendChild(script);
  });

  return cached;
};
