import Stripe from "stripe"

/**
 * Une clé Stripe est valide si elle est présente, commence par "sk_"
 * et n'est pas une valeur placeholder. Fonction pure, testable.
 */
export function isStripeKeyValid(key: string | undefined): boolean {
  return !!key && key.startsWith("sk_") && !key.includes("placeholder")
}

const key = process.env.STRIPE_SECRET_KEY

/**
 * Stripe est optionnel tant que les paiements ne sont pas activés.
 * `stripe` vaut null si aucune clé n'est configurée (ou clé placeholder).
 * Vérifie `isStripeEnabled` avant d'utiliser `stripe`.
 */
export const isStripeEnabled = isStripeKeyValid(key)

export const stripe = isStripeEnabled
  ? new Stripe(key!, { apiVersion: "2026-05-27.dahlia", typescript: true })
  : null
