class Base::Document < ApplicationRecord
  include Castable

  self.table_name = 'Documents'
  self.primary_key = 'DocumentID'

  cast_as_boolean :internal

  alias_attribute :id, :DocumentID
  alias_attribute :school_id, :SchoolID
  alias_attribute :class_id, :ClassID
  alias_attribute :name, :FileName
  alias_attribute :filename, :UFileName
  # alias_attribute :datetime, :DateTime
  # alias_attribute :size, :Size
  # alias_attribute :description, :Comments
  # alias_attribute :location, :Location
  alias_attribute :type, :Type
  alias_attribute :internal, :Internal
  # alias_attribute :public, :Public
  # alias_attribute :author, :Author
  # alias_attribute :user_id, :AuthorUID
  # alias_attribute :schooldocument, :SchoolDocument
  # alias_attribute :approved, :Approved
  alias_attribute :document_folder_id, :FolderID
  # alias_attribute :online, :Online
  # alias_attribute :alert, :Alert
  # alias_attribute :secureid, :SecureID
  # alias_attribute :virusscan, :VirusScan
  # alias_attribute :virusscanresults, :VirusScanResults
  # alias_attribute :mergeable, :Mergeable
  # alias_attribute :enroll, :Enroll
  # alias_attribute :parentdocumentid, :ParentDocumentID
  # alias_attribute :customercare, :CustomerCare
  # alias_attribute :starred, :Starred
  alias_attribute :google_id, :GoogleID
  # alias_attribute :googlesize, :GoogleSize
  # alias_attribute :googleshared, :GoogleShared
  # alias_attribute :googleowner, :GoogleOwner
  # alias_attribute :googlepermissions, :GooglePermissions
  # alias_attribute :googlefolderid, :GoogleFolderID
  alias_attribute :google_download_url, :GoogleDownloadURL
  alias_attribute :google_edit_url, :GoogleEditURL

  before_create :set_defaults

  private
    def set_defaults
      self.ClassID = 0 unless self.ClassID
      self.UFileName = '' unless self.UFileName
      self.Size = 0 unless self.Size
      self.Comments = '' unless self.Comments
      self.Location = '' unless self.Location
      self.Type = '' unless self.Type
      self.Internal = 0 unless self.Internal
      self.Public = 0 unless self.Public
      self.Author = '' unless self.Author
      self.AuthorUID = 0 unless self.AuthorUID
      self.SchoolDocument = 0 unless self.SchoolDocument
      self.Approved = 0 unless self.Approved
      self.FolderID = 0 unless self.FolderID
      self.Online = 0 unless self.Online
      self.Alert = 0 unless self.Alert
      self.SecureID = 0 unless self.SecureID
      self.VirusScan = 0 unless self.VirusScan
      self.VirusScanResults = '' unless self.VirusScanResults
      self.Mergeable = 0 unless self.Mergeable
      self.Enroll = 0 unless self.Enroll
      self.ParentDocumentID = 0 unless self.ParentDocumentID
      self.CustomerCare = 0 unless self.CustomerCare
      self.Starred = 0 unless self.Starred
      self.GoogleID = '' unless self.GoogleID
      self.GoogleSize = 0 unless self.GoogleSize
      self.GoogleShared = 0 unless self.GoogleShared
      self.GoogleOwner = '' unless self.GoogleOwner
      self.GooglePermissions = 0 unless self.GooglePermissions
      self.GoogleFolderID = '' unless self.GoogleFolderID
      self.GoogleDownloadURL = '' unless self.GoogleDownloadURL
      self.GoogleEditURL = '' unless self.GoogleEditURL
    end
end
