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>
13 lines
352 B
Ruby
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
|