require 'sidekiq-scheduler'

class Freshdesk::ContactJob
  include Sidekiq::Worker

  def perform(all: false)
    employees = all ? employees_with_support_id : employees_updated_in_last_day
    employees.each do |employee|
      Freshdesk::ContactService.new(employee).update
    end
  end

  private
    def employees_with_support_id
      employee.where.not(support_id: [nil, '', 0])
    end

    def employees_updated_in_last_day
      employees_with_support_id.where(updated_at: 1.day.ago.beginning_of_day..Float::INFINITY)
    end
end
