import { STRIPE_SECRET_KEY, STRIPE_PUBLISHABLE_KEY, STRIPE_CONNECT_CLIENT_ID, STRIPE_WEBHOOK_SECRET } from "./environment";
import Stripe from "stripe";

export const STRIPE_API_VERSION = "2026-01-28.clover" as const;

export const stripeConfig = {
  secretKey: STRIPE_SECRET_KEY,
  publishableKey: STRIPE_PUBLISHABLE_KEY,
  connectClientId: STRIPE_CONNECT_CLIENT_ID,
  webhookSecret: STRIPE_WEBHOOK_SECRET,
};

let stripeClient: Stripe | null = null;

export function getStripe(): Stripe {
  if (!stripeConfig.secretKey) {
    throw new Error("STRIPE_SECRET_KEY is not set");
  }
  if (!stripeClient) {
    stripeClient = new Stripe(stripeConfig.secretKey, {
      apiVersion: STRIPE_API_VERSION,
    });
  }
  return stripeClient;
}
