Files
MatchLiveTv/backend/app/services/billing/assign_plan.rb
Emiliano Frascaro 4083bc5dee Club come entità principale, branding e fix infrastruttura streaming.
Introduce clubs con abbonamento, branding Active Storage e flusso registrazione società; corregge healthcheck MediaMTX (immagine distroless) e allinea dominio produzione matchlivetv.it.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-27 09:16:24 +02:00

13 lines
352 B
Ruby

module Billing
class AssignPlan
def self.call(club:, plan_slug:, status: "active", stripe_attrs: {})
plan = Plan[plan_slug]
sub = club.subscription || club.build_subscription
attrs = { plan: plan, status: status }.merge(stripe_attrs.symbolize_keys)
sub.assign_attributes(attrs)
sub.save!
sub
end
end
end