# frozen_string_literal: true class PurgeDomainService < BaseService def call(domain) @domain = domain purge_relationship_severance_events! purge_accounts! purge_emojis! Instance.refresh end def purge_relationship_severance_events! RelationshipSeveranceEvent.where(type: [:domain_block, :user_domain_block], target_name: @domain).in_batches.update_all(purged: true) end def purge_accounts! Account.remote.where(domain: @domain).reorder(nil).find_each do |account| DeleteAccountService.new.call(account, reserve_username: false, skip_side_effects: true) end end def purge_emojis! CustomEmoji.remote.where(domain: @domain).reorder(nil).find_each(&:destroy) end end