module Base::School
  extend ActiveSupport::Concern

  included do
    self.table_name = 'Schools'
    self.primary_key = 'SchoolID'

    alias_attribute :id, :SchoolID
    alias_attribute :active, :Active
    alias_attribute :name, :Name
    alias_attribute :support_id, :SupportID
    alias_attribute :short_name, :ShortName
    alias_attribute :address, :Address1
    alias_attribute :address_ext, :Address2
    alias_attribute :city, :City
    alias_attribute :state, :State
    alias_attribute :zip, :ZIP
    # alias_attribute :longitude, :Longitude
    # alias_attribute :latitude, :Latitude
    alias_attribute :weather_id, :WeatherID
    alias_attribute :weather_format, :WeatherFormat
    alias_attribute :legacy_state_id, :SchoolCode
    alias_attribute :district_code, :DistrictCode
    alias_attribute :federal_code, :FederalCode
    alias_attribute :phone, :Phone1
    alias_attribute :phone_2, :Phone2
    # alias_attribute :us_phone_format, :USPhoneFormat
    alias_attribute :color, :Color
    # alias_attribute :font_family, :FontFamily
    # alias_attribute :font_size, :FontSize
    alias_attribute :contact_email, :ContactEmail
    alias_attribute :fax_number, :Fax
    # alias_attribute :fax_service, :FaxService
    # alias_attribute :fax_from, :FaxFrom
    # alias_attribute :code, :Code
    alias_attribute :motto, :Motto
    alias_attribute :family_code, :FamilyCode
    # alias_attribute :contact_number, :ContactNumber
    # alias_attribute :donor_number, :DonorNumber
    alias_attribute :admin_user_id, :PrincipalUID
    alias_attribute :admin_email, :AdminEmail
    # alias_attribute :billing_email, :BillingEmail
    alias_attribute :website, :WebSite
    # alias_attribute :ssa_site, :SSASite
    alias_attribute :logout_redirect, :LogOutRedirect
    alias_attribute :attendance_type, :AttendanceType
    alias_attribute :classroom_hours, :ClassRoomHours
    alias_attribute :last_grade_offered, :LastGradeOffered
    alias_attribute :first_grade_offered, :FirstGradeOffered
    alias_attribute :school_type, :SchoolType
    alias_attribute :site_type, :SiteType
    # alias_attribute :tz, :TZ
    alias_attribute :time_zone, :TimeZone
    # alias_attribute :language_encoding, :LanguageEncoding
    # alias_attribute :family_enrollment_group, :FamilyEnrollmentGroup
    # alias_attribute :student_enrollment_group, :StudentEnrollmentGroup
    # alias_attribute :trailer, :Trailer
    # alias_attribute :ticket, :Ticket
    # alias_attribute :invoice_number, :InvoiceNumber
    # alias_attribute :per_user, :PerUser
    # alias_attribute :flat_rate, :FlatRate
    # alias_attribute :max_users, :MaxUsers
    # alias_attribute :billing_type, :BillingType
    # alias_attribute :expire_on, :ExpireOn
    # alias_attribute :disk_space, :DiskSpace
    # alias_attribute :signature, :Signature
    alias_attribute :catholic_school, :CatholicSchool
    alias_attribute :catholic_diocese_office, :CatholicDioceseOffice
    alias_attribute :school_district_office, :SchoolDistrictOffice
    # alias_attribute :school_state_office, :SchoolStateOffice
    alias_attribute :ed_fi_system, :EdFi
    alias_attribute :us_department_of_education, :US_School
    # alias_attribute :sgid, :SGID
    # alias_attribute :home_page_view, :HomePageView
    # alias_attribute :widget_order, :WidgetOrder
    alias_attribute :county, :County
    alias_attribute :student_address_opt, :StudentAddressOpt

    before_create :set_defaults

    private
      def set_defaults
        self.SupportID = 0 unless self.SupportID
        self.City = '' unless self.City
        self.Country = '' unless self.Country
        self.Longitude = '' unless self.Longitude
        self.Latitude = '' unless self.Latitude
        self.FederalCode = 0 unless self.FederalCode
        self.FamilyCode = 1000 unless self.FamilyCode
        self.BillingEmail = '' unless self.BillingEmail
        self.FBSite = '' unless self.FBSite
        self.TWSite = '' unless self.TWSite
        self.YTSite = '' unless self.YTSite
        self.SSASite = '' unless self.SSASite
        self.PintSite = '' unless self.PintSite
        self.TimeZone = '' unless self.TimeZone
        self.LanguageEncoding = '' unless self.LanguageEncoding
        self.Signature = '' unless self.Signature
        self.SchoolDistrictOffice = 0 unless self.SchoolDistrictOffice
        self.SchoolStateOffice = 0 unless self.SchoolStateOffice
        self.EdFi = '' unless self.EdFi
        self.WidgetOrder = '' unless self.WidgetOrder
        self.County = '' unless self.County
      end
  end
end
