Aggiunge abbonamenti omaggio admin per sponsor e promozioni.
Gli admin possono concedere o revocare Premium Light/Full senza Stripe; il piano omaggio ha priorità sui webhook e la società vede un messaggio dedicato. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -18,6 +18,7 @@ module Billing
|
||||
raise "Stripe non configurato" unless MatchLiveTv.stripe_enabled?
|
||||
raise "Piano non valido" unless VALID_PLANS.include?(@plan_slug)
|
||||
|
||||
raise "Abbonamento omaggio: contatta il supporto per cambiare piano a pagamento" if @sub&.admin_comped?
|
||||
raise "Nessun abbonamento Stripe attivo" if @sub.blank? || @sub.stripe_subscription_id.blank?
|
||||
|
||||
interval = resolve_interval(@sub)
|
||||
|
||||
@@ -70,6 +70,8 @@ module Billing
|
||||
PriceCatalog::DEFAULT_INTERVAL
|
||||
|
||||
sub = club.subscription
|
||||
return sub if sub&.admin_comped?
|
||||
|
||||
clear_pending = sub&.pending_plan_id.present? &&
|
||||
(sub.pending_plan.slug == plan.slug || infer_plan_slug_from_price(stripe_sub) == sub.pending_plan.slug)
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ module Billing
|
||||
sub = @club.subscription
|
||||
return false unless sub&.stripe_subscription_id.present?
|
||||
return false if sub.free?
|
||||
return false if sub.admin_comped?
|
||||
|
||||
stripe_sub = ::Stripe::Subscription.retrieve(sub.stripe_subscription_id)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user