Files
MatchLiveTv/backend/app/models/subscription.rb
Emiliano Frascaro 82ff1972a0 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>
2026-06-02 22:26:19 +02:00

39 lines
804 B
Ruby

class Subscription < ApplicationRecord
STATUSES = %w[active trialing past_due canceled incomplete].freeze
ACTIVE_STATUSES = %w[active trialing].freeze
belongs_to :club
belongs_to :plan
belongs_to :pending_plan, class_name: "Plan", optional: true
belongs_to :admin_comped_by, class_name: "AdminAccount", optional: true
validates :status, inclusion: { in: STATUSES }
validates :club_id, uniqueness: true
scope :active, -> { where(status: ACTIVE_STATUSES) }
def active?
status.in?(ACTIVE_STATUSES)
end
def premium?
active? && plan.premium?
end
def premium_full?
active? && plan.slug == "premium_full"
end
def free?
plan.slug == "free"
end
def plan_change_pending?
pending_plan_id.present?
end
def admin_comped?
admin_comped
end
end