module Public module BillingHelper def plan_billing_action(current_slug:, target_plan:, stripe_subscription_active:) return { kind: :current, label: "Piano attuale" } if current_slug == target_plan.slug if target_plan.slug == "free" return { kind: :contact, label: "Contatta il supporto per downgrade." } end unless MatchLiveTv.stripe_enabled? return { kind: :disabled, label: "Stripe non configurato" } end if current_slug == "free" || !stripe_subscription_active return { kind: :checkout, label: "Attiva #{target_plan.name}" } end if Plan.tier(target_plan.slug) > Plan.tier(current_slug) { kind: :change, label: "Passa a #{target_plan.name}" } else { kind: :change, label: "Passa a #{target_plan.name}" } end end def stripe_subscription_active?(subscription) subscription&.stripe_subscription_id.present? && subscription.active? end end end