# frozen_string_literal: true

module Jobs

  class CleanUpUnmatchedIPs < Jobs::Scheduled
    every 1.day

    def execute(args)
      # roll-up IP addresses first
      ScreenedIpAddress.roll_up

      last_match_threshold = SiteSetting.max_age_unmatched_ips.days.ago

      # remove old unmatched IP addresses
      ScreenedIpAddress.where(action_type: ScreenedIpAddress.actions[:block])
        .where("last_match_at < ? OR (last_match_at IS NULL AND created_at < ?)", last_match_threshold, last_match_threshold)
        .destroy_all
    end

  end

end