class Base::SchoolConfig < ApplicationRecord
  include Castable

  self.table_name = 'SchoolConfig'
  self.primary_key = 'CoCID'

  cast_as_boolean :classroom
  cast_as_boolean :admissions
  cast_as_boolean :family_pan
  cast_as_boolean :student_pan
  cast_as_boolean :service_logs
  cast_as_boolean :Accounting
  cast_as_boolean :Cafeteria
  cast_as_boolean :Daycare
  cast_as_boolean :Donor
  cast_as_boolean :TimeTracker
  cast_as_boolean :Discipline
  cast_as_boolean :Family_Discipline
  cast_as_boolean :Student_Discipline, true
  cast_as_boolean :FamilyMedical
  cast_as_boolean :Doc_Uploaded
  cast_as_boolean :Doc_ReportCards
  cast_as_boolean :Doc_Transcripts
  cast_as_boolean :Doc_Attendance
  cast_as_boolean :Doc_Medical
  cast_as_boolean :Doc_Service
  cast_as_boolean :Doc_Discipline

  alias_attribute :id, :CoCID
  alias_attribute :school_id, :SchoolID
  # alias_attribute :updated, :Updated
  alias_attribute :intro_banner, :IntroBanner
  alias_attribute :school_menu, :SchoolMenu
  # alias_attribute :home_page_view, :HomePageView
  alias_attribute :organization, :Organization
  alias_attribute :contacts, :Contacts
  alias_attribute :projects, :Projects
  # alias_attribute :sales, :Sales
  alias_attribute :members, :Members
  alias_attribute :work_flow, :WorkFlow
  alias_attribute :online_forms, :OnlineForms
  alias_attribute :knowledge, :Knowledge
  alias_attribute :database, :DB
  alias_attribute :break_room, :BreakRoom
  alias_attribute :time_card, :TimeTracker
  alias_attribute :accounting, :Accounting
  alias_attribute :library, :Library
  alias_attribute :my_organizer, :MyOrganizer
  alias_attribute :family_pan, :Family_PassANotes
  alias_attribute :student_pan, :Student_PassANotes
  alias_attribute :family_schedules, :Family_Schedules
  alias_attribute :student_schedules, :Student_Schedules
  alias_attribute :student_admissions_schedule, :Student_AdmissionSchedule
  alias_attribute :email, :Email
  alias_attribute :email_pop, :Email_POP
  alias_attribute :email_imap, :Email_IMAP
  alias_attribute :signature, :Signature
  alias_attribute :color, :AppColor
  # alias_attribute :force_ssl, :ForceSSL
  alias_attribute :idle_logout, :IdleLogout
  alias_attribute :front_desk, :FrontDesk
  # alias_attribute :daycare_secure, :DaycareSecure
  alias_attribute :family_directory, :FamilyDirectory
  alias_attribute :employee_directory, :EmployeeDirectory
  # alias_attribute :family_blogging, :FamilyBlogging
  # alias_attribute :family_discussions, :FamilyDiscussions
  # alias_attribute :family_chatrooms, :FamilyChatrooms
  alias_attribute :upload_docs, :Doc_Uploaded
  alias_attribute :report_card_docs, :Doc_ReportCards
  alias_attribute :transcript_docs, :Doc_Transcripts
  alias_attribute :attendance_docs, :Doc_Attendance
  alias_attribute :discipline_docs, :Doc_Discipline
  alias_attribute :medical_docs, :Doc_Medical
  alias_attribute :service_docs, :Doc_Service
  alias_attribute :information_center, :InfoCenter
  alias_attribute :communication_center, :CommCenter
  alias_attribute :event, :Event
  alias_attribute :assets, :Assets
  alias_attribute :nurse, :Nurse
  alias_attribute :conference, :Conference
  alias_attribute :discipline, :Discipline
  alias_attribute :student_discipline, :Student_Discipline
  alias_attribute :family_discipline, :Family_Discipline
  alias_attribute :iep, :IEP
  alias_attribute :service_logs, :Service
  alias_attribute :contact_log, :ContactLog
  alias_attribute :volunteer, :Volunteer
  alias_attribute :course, :Course
  alias_attribute :college_decreases, :CollegeDecreases
  alias_attribute :college_credits, :CollegeCredits
  alias_attribute :classroom, :Classroom
  alias_attribute :lesson_plan, :LessonPlan
  alias_attribute :cafeteria, :Cafeteria
  alias_attribute :daycare, :Daycare
  alias_attribute :admissions, :Admissions
  alias_attribute :athletic, :Athletic
  alias_attribute :donor, :Donor
  alias_attribute :auction, :Auction
  alias_attribute :user_forums, :UForums
  alias_attribute :spirit_store, :SpiritStore
  alias_attribute :transportation, :Transport
  # alias_attribute :class_1, :Class1
  # alias_attribute :class_2, :Class2
  # alias_attribute :class_3, :Class3
  # alias_attribute :class_4, :Class4
  # alias_attribute :featured_tab, :FeaturedTab
  # alias_attribute :dob_staff, :DOBStaff
  # alias_attribute :dob_student, :DOBStudent
  alias_attribute :school_year_type, :SchoolYearType
  alias_attribute :admissions_portal, :AdmissionsPortal
  alias_attribute :pei, :PEI
  alias_attribute :period_attendance, :PeriodAttendance
  alias_attribute :homeroom_attendance, :HomeroomAttendance
  # alias_attribute :no_pan_text, :NoPANText
  # alias_attribute :pan_forward, :PanForward
  # alias_attribute :pan_email, :PanEmail
  # alias_attribute :ncea_sch_type, :NCEASchType
  # alias_attribute :ncea_location, :NCEALocation
  # alias_attribute :ncea_sponsor, :NCEASponsor
  # alias_attribute :ncea_gender, :NCEAGender
  alias_attribute :ed_fi_type, :EdFiType
  # alias_attribute :notify_time, :NotifyTime
  alias_attribute :family_medical, :FamilyMedical

  before_create :set_defaults

  private
    def set_defaults
      self.intro_banner = 1
      self.school_menu = 63
      self.contacts = 1
      self.projects = 1
      self.members = 1
      self.time_card = false
      self.accounting = false
      self.library = 0
      self.my_organizer = 1
      self.family_pan = 1
      self.student_pan = 1
      self.email_pop = 0
      self.email_imap = 1
      self.signature = ''
      self.color = '000063' unless color
      self.front_desk = 1
      self.employee_directory = 7
      self.transcript_docs = 0
      self.information_center = 1
      self.communication_center = 1
      self.event = 0
      self.assets = 0
      self.nurse = 1
      self.discipline = false
      self.iep = 0
      self.service_logs = 0
      self.contact_log = 0
      self.volunteer = 0
      self.course = 0
      self.college_credits = 0
      self.classroom = 0
      self.cafeteria = false
      self.daycare = false
      self.admissions = 0
      self.donor = false
      self.transportation = 0
      self.pei = 0
      self.ed_fi_type = 0
      self.lesson_plan = 0
      self.online_forms = 0
      self.athletic = 0
      self.conference = 0
    end
end
