class TencentCloud::Common::AbstractModel

common model

def self.format_params(prefix = nil, params)

def self.format_params(prefix = nil, params)
  d = {}
  case params
  when Hash
    params.each do |k, v|
      key = prefix ? "#{prefix}.#{k}" : k.to_s
      d.update(format_params(key, v))
    end
  when Array
    params.each_with_index do |v, i|
      key = prefix ? "#{prefix}.#{i}" : i.to_s
      d.update(format_params(key, v))
    end
  else
    d[prefix] = params
  end
  d
end

def flat(obj)

def flat(obj)
  case obj
  when AbstractModel
    params = nil
    keys = obj.instance_variables
    keys.each do |k|
      value = obj.instance_variable_get k
      key = k.to_s.split('@').at 1
      next unless value
      r = flat(value)
      unless r.nil?
        params ||= {}
        params[key] = r
      end
    end
    params
  when Array
    arr = nil
    obj.each do |v|
      r = flat(v)
      unless r.nil?
        arr ||= []
        arr << r
      end
    end
    arr
  else
    obj
  end
end

def serialize

def serialize
  flat(self)
end