class Avmtrf1::Oracle::Objects

def first(options = {})

def first(options = {})
  self.class.row_to_object(
    connection,
    connection.first_row_hash(sql(options))
  )
end

def list(options = {})

def list(options = {})
  ::Avmtrf1::Oracle::Objects::Relation.new(connection, sql(options))
end

def row_to_attributes(row)

def row_to_attributes(row)
  return nil if row.blank?
  COLUMNS_TO_ATTRIBUTES.map do |column, attribute| # rubocop:disable Style/MapToHash
    [attribute, row.fetch(column.to_s.upcase)]
  end.to_h
end

def row_to_object(connection, row)

def row_to_object(connection, row)
  ::Avmtrf1::Oracle::Object.factory_get(
    connection,
    row_to_attributes(row)
  )
end

def sql(options)

def sql(options)
  ::Avmtrf1::Oracle::Objects::SqlBuilder.new(options).sql
end