# typed: strict
class Domain::E621::Job::Base < Scraper::JobBase
  queue_as :e621

  sig { override.returns(Symbol) }
  def self.http_factory_method
    :get_e621_http_client
  end

  sig { returns(Domain::User::E621User) }
  def user_from_args!
    T.must(user_from_args)
  end

  sig { returns(T.nilable(Domain::User::E621User)) }
  def user_from_args
    T.cast(arguments[0][:user], T.nilable(Domain::User::E621User))
  end

  sig { returns(Domain::Post::E621Post) }
  def post_from_args!
    T.must(post_from_args)
  end

  sig { returns(T.nilable(Domain::Post::E621Post)) }
  def post_from_args
    T.cast(arguments[0][:post], T.nilable(Domain::Post::E621Post))
  end
end
