class Covid::Temperature < ApplicationRecord
  audited

  belongs_to :student

  validates :recorded_at, :recorded_by, :temperature, presence: true

  scope :by_date_range, ->(range) { where(recorded_at: range) if range.present? }
  scope :by_date, ->(date) { where(recorded_at: date.to_date.all_day) if date }

  scope :by_grades, ->(grades) do
    joins(:student).where(Students: { Grade: grades }) if grades.present?
  end

  scope :by_classroom, ->(classroom) do
    return if classroom.nil?

    joins(:student).merge(Student.by_classroom(classroom))
  end
end
