jam-cloud/ruby/lib/jam_ruby/models/rsvp_slot.rb

44 lines
1.4 KiB
Ruby

module JamRuby
class RsvpSlot < ActiveRecord::Base
belongs_to :instrument, :class_name => "JamRuby::Instrument"
belongs_to :music_session, :class_name => "JamRuby::MusicSession"
has_many :rsvp_requests_rsvp_slots, :class_name => "JamRuby::RsvpRequestRsvpSlot", :foreign_key => "rsvp_slot_id"
has_many :rsvp_requests, :class_name => "JamRuby::RsvpRequest", :through => :rsvp_requests_rsvp_slots
validates :instrument, presence: true, if: :is_not_unstructured_rsvp?
validates :is_unstructured_rsvp, :inclusion => {:in => [true, false]}
validates :proficiency_level, presence: true, if: :is_not_unstructured_rsvp?
attr_accessor :chosen, :proficiency_desc
class << self
@@proficiency_map = ["Any Skill Level", "Beg", "Beg/Int", "Int", "Int/Adv", "Adv"]
end
def is_not_unstructured_rsvp?
!is_unstructured_rsvp?
end
# TODO: validates :proficiency_level
def self.index(music_session)
RsvpSlot.where("music_session_id = ?", music_session.id)
end
def chosen
chosen_slots = RsvpRequestRsvpSlot.where("chosen = true AND rsvp_slot_id = ?", self.id)
!chosen_slots.blank?
end
def proficiency_desc
@@proficiency_map[self.proficiency_level]
end
# def has_rsvp_from_user(user)
# user_slot = RsvpRequest.joins(:rsvp_requests_rsvp_slots)
# .where(:rsvp_request_id => )
# .where(:user_id => user.id)
# end
end
end