Billing upgrade/downgrade, inviti in app e diretta YouTube da mobile.

Upgrade Stripe con addebito immediato; downgrade programmato a fine periodo.
UX billing più sobria con box info; icone piani. API inviti e OAuth YouTube
per staff trasmissione; deep link join; scelta partita programmata o nuova.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-02 22:15:27 +02:00
parent 2cb267f991
commit 566104aff4
49 changed files with 1615 additions and 173 deletions

View File

@@ -14,7 +14,11 @@ module Billing
when "checkout.session.completed"
CheckoutSync.from_session(@event.data.object)
when "customer.subscription.updated", "customer.subscription.created"
CheckoutSync.from_subscription(@event.data.object)
stripe_sub = @event.data.object
CheckoutSync.from_subscription(stripe_sub)
club = Club.joins(:subscription)
.find_by(subscriptions: { stripe_subscription_id: stripe_sub.id })
ApplyPendingPlan.call(club: club) if club
when "customer.subscription.deleted"
downgrade_to_free(@event.data.object)
when "invoice.payment_failed"