2023-03-07 17:35:21 +01:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
# Allows to set booking limits on some resources, per plan.
|
|
|
|
class PlanLimitation < ApplicationRecord
|
|
|
|
belongs_to :plan
|
|
|
|
|
|
|
|
belongs_to :limitable, polymorphic: true
|
|
|
|
belongs_to :machine, foreign_type: 'Machine', foreign_key: 'limitable_id', inverse_of: :plan_limitations
|
|
|
|
belongs_to :machine_category, foreign_type: 'MachineCategory', foreign_key: 'limitable_id', inverse_of: :plan_limitations
|
|
|
|
|
2023-03-09 16:57:03 +01:00
|
|
|
validates :limitable_id, :limitable_type, :limit, :plan_id, presence: true
|
2023-03-10 14:13:00 +01:00
|
|
|
validates :limitable_id, uniqueness: { scope: %i[limitable_type plan_id] }
|
2023-03-07 17:35:21 +01:00
|
|
|
end
|