class Subscription < ApplicationRecord STATUSES = %w[active trialing past_due canceled incomplete].freeze ACTIVE_STATUSES = %w[active trialing].freeze belongs_to :club belongs_to :plan 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 end