class Base::ClassAssignment < ApplicationRecord
  include Castable

  self.table_name = 'ClassAssignments'
  self.primary_key = 'CAID'

  cast_as_boolean :dropbox

  alias_attribute :id, :CAID
  alias_attribute :class_assignment_group_id, :CAGID
  alias_attribute :school_id, :SchoolID
  alias_attribute :class_id, :ClassID
  alias_attribute :class_subject_id, :ClassSubjectID
  alias_attribute :unit_number, :UnitNumber
  alias_attribute :date_assigned, :DateAssigned
  alias_attribute :due_date, :DateDue
  alias_attribute :quarter, :Quarter
  alias_attribute :name, :Title
  alias_attribute :description, :Description
  alias_attribute :possible, :Possible
  # alias_attribute :avg, :Average
  alias_attribute :weight, :Weight
  alias_attribute :class_grade_category_id, :CGCID
  alias_attribute :status, :Status
  alias_attribute :viewable, :Viewable
  alias_attribute :dropbox, :DropBox
  # alias_attribute :partialstudent, :PartialStudent

  before_save :set_defaults

  private
    def set_defaults
      self.CAGID = 0 unless self.CAGID
      self.ClassSubjectID = 0 unless self.ClassSubjectID
      self.UnitNumber = 0 unless self.UnitNumber
      self.DateAssigned = '0000-00-00' unless self.DateAssigned
      self.DateDue = '0000-00-00' unless self.DateDue
      self.Quarter = 0 unless self.Quarter
      self.Title = '' unless self.Title
      self.Description = '' unless self.Description
      self.Possible = 0 unless self.Possible
      self.Average = 0 unless self.Average
      self.Weight = 0 unless self.Weight
      self.CGCID = 0 unless self.CGCID
      self.Status = 0 unless self.Status
      self.Viewable = 0 unless self.Viewable
      self.DropBox = 0 unless self.DropBox
      self.PartialStudent = 0 unless self.PartialStudent
    end
end
