---
# System prepended metadata

title: Tabelas QL

---

# Tabelas QL

Existem duas collections utilizadas para a geração do produto de qualificador de leads. Estas collections (equivalente à uma tabela em um banco relacional) encontram-se em um banco de dados não relacional, mongoDB, com endereço **sandbox-general.7xq04.mongodb.net**, no database **icarros-database**.

A collection qualificador_leads_hist contém todo o histórico de atualização, para todos os anunciantes do icarros. Já a collection qualificador_leads possui apenas os dados que deverão ser atualizados no site no dia atual, considerando apenas os anunciantes que estão com o produto contratado.

1. qualificador_leads_hist
![](https://i.imgur.com/mhuBH4u.png)
    - _id: hash(str([usuario, modelo_id, anunciante, date]]))
    hash é uma função do python que identifica unicamente um objeto com um número inteiro.
    - usuario: id do usuário
    - modelo_id: id do modelo do carro
    - date: data de atualização
    - perfil: id do nível de interesse do usuário <usuario> no modelo <modelo_id>
    - anunciante: id do anunciante
    - top_interest: top interesses do usuário <usuario> nos últimos três meses, partindo da data <date>, para as seguintes características:
        - ano do modelo
        - cidade do anúncio
        - modelo
        - categoria
        - classe
        - marca
        - km
    - tempo: tempo para o processamento do perfil <perfil>
    - afiniddade_estoque: lista de carros no estoque do anunciante <anunciante> que podem interessar o usuário <usuario>, ordenada por nível de interesse. Cada item da lista contém:
        - versao: versão do carro
        - modelo: modelo do carro
        - rating: nível de interesse do usuário <usuario>
        
2. qualificador_leads
![](https://i.imgur.com/olL3lbt.png)
    Os itens que já se encontram na collection qualificador_leads_hist são cópias, sendo assim possuem o mesmo significado. 
    - notificacao: Se houve mudança no perfil <perfil> desde a última atualizaação.

## Fluxo de atualização
    
### qualificador_leads_hist
- frequência: diária
- modo de atualização: append
- casos de atualização:
    - O usuário <usuario> fez um primeiro lead para o modelo <modelo_id>, **em um anúncio do anunciante <anunciante>**.
    - O usuário fez um detalhe ou tentativa de financiamento para o modelo <modelo_id>, em um anúncio do anunciante <anunciante>, sendo que já existia (<usuario>, <modelo_id>, <anunciante>) em algum documento (equivalente à uma linha em uma tabela de um banco de dados relacional) da collection qualificador_leads_hist.
    
### qualificador_leads
- frequência: diária
- modo de atualização: overwrite
- etapas:
    1. Primeiro filtramos os dados (<_id>, <usuario>, <modelo_id>, <perfil>, <top_interest>, <anunciante> e <afinidade_estoque>) da collection qualificador_leads_hist que
        - Estão na data de atualização
        - Possuem anunciantes com o produto de qualificador de leads contratado
    2. casos de atualização:
        - Se é o primeiro lead do usuário <usuario> para o modelo <modelo_id> dentro de um anúncio do anunciante <anunciante>, então definimos <notificacao>=false. 
        Caso contrário:
        - Se o perfil do usuário não se modificou da última atualização para a atual, então definimos <notificacao>=false.
        Caso contrário:
        - Definimos <notificacao>=true
        - Se o perfil do usuário foi alterado para 1, modificamos esse perfil mapeando qual foi a mudança (ou 2 $\to$ 1, ou 3 $\to$ 1, ...). Além do mais, trocamos os valores de <top_interest> e <afinidade_estoque> para os valores da última atualização.
        **Obs:** Esse caso merece esse processamento especial pois ele ocorre quando o usuário volta ter uma interação com o site depois de um tempo inativo.