Rails API, app Flutter, infrastruttura Docker/MediaMTX, sito marketing e documentazione di deploy. Co-authored-by: Cursor <cursoragent@cursor.com>
29 lines
560 B
Ruby
29 lines
560 B
Ruby
class Subscription < ApplicationRecord
|
|
STATUSES = %w[active trialing past_due canceled incomplete].freeze
|
|
ACTIVE_STATUSES = %w[active trialing].freeze
|
|
|
|
belongs_to :team
|
|
belongs_to :plan
|
|
|
|
validates :status, inclusion: { in: STATUSES }
|
|
validates :team_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
|