require 'sidekiq-scheduler'

class FileStorageJob
  include Sidekiq::Worker

  def perform
    schools.each do |school|
      path = "school/#{school.id}/file_storage"
      $redis.del(path)
      $redis.set(path, areas(school))
    end
  end

  private
    def schools
      School.by_active(true).decorate
    end

    def current_date
      @current_date ||= Time.zone.today
    end

    def areas(school)
      {
        school_documents: school.school_documents,
        school_photos: school.school_photos,
        class_documents: school.class_documents,
        class_photos: school.class_photos,
        student_profile_documents: school.student_profile_documents,
        employee_profile_documents: school.employee_profile_documents,
        user_documents: school.user_documents,
        updated_at: current_date
      }.to_json
    end
end
