1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-01 12:24:28 +01:00
fab-manager/app/models/concerns/user_ressources_concern.rb

45 lines
1.1 KiB
Ruby

# frozen_string_literal: true
# Add resources-related functionalities to the user model (eg. Reservation, Subscription, Project, etc.)
module UserRessourcesConcern
extend ActiveSupport::Concern
included do
def training_machine?(machine)
return true if admin? || manager?
trainings.map(&:machines).flatten.uniq.include?(machine)
end
def packs?(item)
return true if admin?
PrepaidPackService.user_packs(self, item).count.positive?
end
def next_training_reservation_by_machine(machine)
reservations.where(reservable_type: 'Training', reservable_id: machine.trainings.map(&:id))
.includes(:slots)
.where('slots.start_at>= ?', Time.current)
.order('slots.start_at': :asc)
.references(:slots)
.limit(1)
.first
end
def subscribed_plan
return nil if subscription.nil? || subscription.expired_at < Time.current
subscription.plan
end
def subscription
subscriptions.order(:created_at).last
end
def all_projects
my_projects.to_a.concat projects
end
end
end