class ZuoraConnect::AppInstanceBase

def save_data(session = Hash.new)

def save_data(session = Hash.new)
  self.logins.each do |key, login|
    if login.tenant_type == "Zuora"
      if login.available_entities.size > 1 && Rails.application.config.session_store != ActionDispatch::Session::CookieStore
        login.available_entities.each do |entity_key|
          session["#{self.id}::#{key}::#{entity_key}:session"] = login.client(entity_key).current_session
        end
      else
        session["#{self.id}::#{key}:session"] = login.client.current_session
      end
    end
  end
  session["#{self.id}::task_data"] = self.task_data
  #Redis is not defined strip out old data
  if !defined?(Redis.current)
    session["#{self.id}::task_data"].delete('applications')
    session["#{self.id}::task_data"].select {|k,v| k.include?('login') && v['tenant_type'] == 'Zuora'}.each do |login_key, login_data|
      session["#{self.id}::task_data"][login_key]['entities'] = (login_data.dig('entities') || []).map {|entity| entity.slice('id', 'tenantId')}
    end
  end
  session["#{self.id}::last_refresh"] = self.last_refresh
  session["appInstance"] = self.id
  return session
end