class LunchDay < Base::LunchDay
  belongs_to :school_year, foreign_key: 'SchoolYearID', inverse_of: :lunch_days

  has_many :student_lunch_orders, dependent: :destroy
  has_many :student_item_orders, dependent: :destroy

  delegate :school, to: :school_year

  scope :by_date, ->(date) { where(date: date) if date }
  scope :has_meals, -> {
    query = (1..5).to_a.map { |id| "Meal#{id}Id != 0" }.join(' OR ')
    where(query)
  }
  scope :has_meals_or_ala_carte, -> do
    query = (1..5).to_a.map { |id| "Meal#{id}Id != 0" }.join(' OR ')
    where(query).or(where(ala_carte: true))
  end

  def meals
    array = []
    array << school.lunch_meals.find_by(id: meal_1_id) unless meal_1_id.zero?
    array << school.lunch_meals.find_by(id: meal_2_id) unless meal_2_id.zero?
    array << school.lunch_meals.find_by(id: meal_3_id) unless meal_3_id.zero?
    array << school.lunch_meals.find_by(id: meal_4_id) unless meal_4_id.zero?
    array << school.lunch_meals.find_by(id: meal_5_id) unless meal_5_id.zero?
    array
  end
end
