class SycamoreStorageAttachment < ApplicationRecord
  include Fileable

  belongs_to :school
  belongs_to :associate, polymorphic: true, optional: true

  def attach(value)
    return unless value

    self.file = value
    self.updated_at = Time.zone.now
  end

  def dir_path
    school.dir_path.join(
      self.class.table_name,
      associated_object.class.table_name,
      associated_id.to_s
    )
  end

  private
    def associated_object
      associated_type.constantize.find(associated_id)
    end
end
