Dicionário de Dados
Documento de identificação de tabelas e campos para utilização pelo time de Inteligência de Mercado:
Dados Gerais
|
|
Produto: Novo Clube Duratex | Dicionário de Dados |
Responsável pelo Dicionário: Mario Klein |
Participantes
Participantes | Empresa |
Márcio D. Gonçalves | Base Digital |
Informações Globais
Informações |
Todas as tabelas possuem o campo id que corresponde ao identificador do registro. Esse campo também é utilizado para a definição de chaves estrangeiras (foreign key) quando necessário. |
Todas as tabelas possuem os campos de data de criação e atualização dos registros. Campos created_at e updated_at respectivamente. |
Todos os campos que estiverem com o tipo de dados Timestamp (data e hora) estão com o horário de Brasília convertido para GMT-0 |
Schema private_clube_duratex
Tabela: user (armazena os dados de perfil do usuário)
● auth_id – identificador do usuário no sistema de Auth Dexco
● external_id – identificador do usuário para o sistema de Auth Dexco
● name – primeiro nome
● surname – sobrenome
● birth_date – data de nascimento
● profile_image – nome do arquivo da foto de perfil do usuário – sem conter o diretório de armazenamento no S3
● wood_work_related – indicador booleano se a profissão do usuário está relacionada com marcenaria
● cpf – número do CPF (somente números)
● email – endereço de e-mail do usuário
● phone_number_prefix – DDD do telefone
● phone_number – número do telefone (somente números)
● gender – gênero do usuário – enum (MALE','FEMALE','OTHER')
● cep – CEP do endereço
● address – endereço (logradouro)
● number – número do endereço (campo livre, pois existem siglas nos números)
● complement – complemento do endereço (campo livre)
● district – bairro
● career_id – identificador da profissão do usuário – relacionamento com a tabela carrer
● state_id – identificador do estado do usuário – relacionamento com a tabela state
● city_id – identificador da cidade do usuário – relacionamento com a tabela city
● recaptcha_required – indicador se no próximo login do usuário é obrigatório informar o captcha – ver regras do captcha na documentação de escopo
● accept_use_terms – indicador se o usuário aceitou os termos de uso
● accept_email_communications – indicador se o usuário aceitou receber comunicações por e-mail (exceto as transacionais)
● accept_message_communications – indicador se o usuário aceitou receber comunicações por SMS e WhatsApp (exceto as transacionais)
● accept_privacy_policy – indicador se o usuário aceitou a política de privacidade
● latest_login_attempt – data da última tentativa de login do usuário (com sucesso ou falha)
● phone_number_prefix_to_be_confirmated – DDD de telefone informado quando o usuário deseja trocar o telefone, porém ainda não confirmou a troca através do código recebido por SMS
● phone_number_to_be_confirmated – número de telefone informado quando o usuário deseja trocar o telefone, porém ainda não confirmou a troca através do código recebido por SMS
● email_to_be_confirmated – endereço de e-mail informado quando o usuário deseja trocar o e-mail, porém ainda não confirmou a troca através do código recebido por e-mail no “novo endereço” (email_to_be_confirmated)
● confirmation_code – código geado quano usuário deseja trocar o telefone e/ou endereço de e-mail e que será enviado para o respectivo SMS ou e-mail.
● premmiar_id – identificador do usuário no sistema de integração Premmiar
● email_confirmation_token – token de confirmação do endereço de e-mail gerado quando o usuário realiza o cadastro no clube ou solicita novo código. Esse token é enviado através de um link para o e-mail do usuário.
● has_confirmed_email – indicador se o usuário confirmou o endereço de e-mail informado
● legacy_id – identificador do usuário no Clube Duratex legado
Tabela: user_wood_work (armazena os dados de marcenaria informados pelo usuário no perfil do Clube)
● user_id – identificador do usuário – relacionamento com a tabela user
● cnpj – CNPJ da marcenaria
● corporate_name – nome da marcenaria
● fantasy_name – nome fantasia da marcenaria
● cep – CEP do endereço
● address – endereço (logradouro)
● number – número do endereço (campo livre, pois existem siglas nos números)
● complement – complemento do endereço (campo livre)
● district – bairro
● state_id – identificador do estado do usuário – relacionamento com a tabela state
● city_id – identificador da cidade do usuário – relacionamento com a tabela city
● instagram_url – endereço de url do instagram da marcenaria (campo livre)
● facebook_url – endereço de url do facebook da marcenaria (campo livre)
● site_url – endereço web da marcenaria (campo livre)
Tabela: user_password_token (armazena os tokens – códigos – gerados quando o usuário deseja alterar a senha)
● user_id – identificador do usuário – relacionamento com a tabela user
● token - código geado quando usuário deseja trocar a senha e que será enviado para o respectivo SMS ou e-mail
● expires_in – data de expiração do código gerado
● target – indicador para onde o código foi enviado – enum(‘SMS’, ‘EMAIL’)
Tabela: invoice (armazena as notas fiscais enviadas para o Clube)
● user_id – identificador do usuário – relacionamento com a tabela user
● invoice_file_url – nome do arquivo XML armazenado no S3 sem o diretório – tanto o diretório como o nome do arquivo mudam conforme o status de processamento.
● received_at – data e hora de recebimento da nota no sistema
● invoice_identifier – identificador (chave) da nota fiscal eletrônica – só é armazenado depois de processado o XML.
● status – status de processamento da nota. Enum com os seguintes valores:
o RECEIVED – recebida (status inicial)
o EXTRACTING – extraindo dados do XML através do sistema de processamento da DEXCO
o EXTRACTED – dados da nota extraídos (nesse momento gera dados na tabela invoice_content, invoice_raw_content, invoice_product)
o AUTO_CLASSIFYING – durante o processamento da classificação automática (IA)
o MANUAL_CLASSIFYING – enquanto está pendente de classificação manual (humano)
o CLASSIFIED – após a confirmação da classificação de todos os itens da nota
o REFUSED – nota recusada para o Clube – justificativa no campo refused_reason
o SCORED – pontuação de todos os itens que se encaixam em campanha (item “válido”) calculada – somente se houver ao menos um item válido
o APPROVED – quando a pontuação de todos os itens foi integrada (com sucesso ou não) o sistema de pontuação (Premmiar)
o REVIEW_REQUESTED – quando uma solicitação de revisão de algum item foi realizada através do suporte
o REVIEW_EXECUTED – quando a solicitação de revisão do item foi executada
o REVIEW_CONFIRMED – quando a solicitação de revisão do item foi aprovada pelo usuário administrador
o REVIEW_SCORED – quando a solicitação de revisão do item teve os pontos recalculados
● refused_reason – justificativa de recusa de uma NF. Enum com os seguintes valores:
o INVOICE_DUPLICATED – nota fiscal enviada em duplicidade
o MONTHLY_SCORE_ACHIEVED – limite de pontuação mensal do usuário atingida
o XML_ERROR – erro ao ler o arquivo XML
o INTERNAL_ERROR – erro interno de processamento
o INVOICE_ISSUED_OUT_OF_TIME_FRAME – nota fiscal enviada fora do prazo de aceite para o Clube – ver parâmetros do sistema
o INVOICE_WITHOUT_CAMPAIGN_PRODUCTS – nota sem itens que se encaixem em alugma campanha.
Tabela: invoice_content (armazena dados do conteúdo – cabeçalho – das notas fiscais)
● invoice_id – identificador da nota fiscal – referência para a tabela invoice
issue_date – data de emissão da nota
● issuer_name – empresa emissora da nota
● issuer_document – documento – CNPJ – da emissora da nota
● issuer_zip_code – CEP do emissor da nota
● issuer_address – endereço completo do emissor da nota
● issuer_district – bairro do emissor da nota
● issuer_city_id – identificador da cidade do emissor da nota – referência para a tabela city
● issuer_state_id – identificador do estado do emissor da nota – referência para a tabela city
● recipient_name – nome do cliente da nota
● recipient_document – documento do cliente da nota – CPF ou CNPJ
● recipient_zip_code – CEP do emissor da nota
● recipient_address – endereço completo do emissor da nota
● recipient_district – bairro do emissor da nota
● recipient_city_id – identificador da cidade do emissor da nota – referência para a tabela city
● recipient_state_id – identificador do estado do emissor da nota – referência para a tabela city
● invoice_number – número da nota fiscal no emissor – para identificação do usuário em tela
● total – valor total em moeda da nota
Tabela: invoice_raw_content (armazena dados do conteúdo aberto – JSON – das notas fiscais como retornadas pelo sistema de extração da DEXCO)
● invoice_id – identificador da nota fiscal – referência para a tabela invoice
● content – conteúdo do JSON (em formato texto) retornado do sistema de extração DEXCO
Tabela: invoice_content_product (armazena dados dos itensdas notas fiscais)
● invoice_content_id – identificador de um item da nota fiscal – referência para a tabela invoice
● order – ordem do produto na Nota Fiscal
● name – nome do produto
● description – descrição do produto (geralmente igual ao nome)
● quantity – quantidade de itens
● unity – unidade de medida da quantidade de itens informada
● value – valor em reais do total do item.
● status - status de processamento do item. Enum com os seguintes valores:
o EXTRACTED – item extraído do sistema DEXCO (status inicial)
o AUTO_CLASSIFYING – item em classificação automática (IA)
o MANUAL_CLASSIFYING – item em classificação manual (humano)
o CLASSIFIED – classificação do item confirmada
o REFUSED – item recusado para o Clube – justificativa no campo refused_reason
o SCORED – pontuação do item calculada com base nas campanhas que ele se encaixe
o SCORE_INTEGRATED – pontuação do item integrada com o sistema parceiro (Premmiar)
o SCORE_INTEGRATION_ERROR – erro de integração da pontuação do com o sistema parceiro – precisa entrar em review para voltar para o processo normal
o REVIEW_REQUESTED – quando uma solicitação de revisão do item foi realizada através do suporte
o REVIEW_EXECUTED – quando a solicitação de revisão do item foi realizada através do suporte
o REVIEW_CONFIRMED – quando a solicitação de revisão do item foi aprovada pelo usuário administrador
o REVIEW_SCORED – quando a solicitação de revisão do item teve os pontos recalculados
● is_panel – indicador se o item é ou não chapa
● wood_brand_id – marca (fabricante) da chapa – referência para a tabela wood_brand do schema manager_clube_duratex
● line_id – linha da chapa – referência para a tabela line do schema manager_clube_duratex
● pattern_id – padrão da chapa – referência para a tabela pattern do schema manager_clube_duratex
● dimension_id – dimensão da chapa – referência para a tabela dimension do schema manager_clube_duratex
● thickness_id – espessura da chapa – referência para a tabela thickness do schema manager_clube_duratex
● faces – número de faces da chapa
● classifications – JSON com as classificações do item realizadas conforme os status (classificação automática – IA, classificação manual e reclassificação). Formato do JSON:
{
"prediction": { // objeto que contem a predição realizada pela IA – quando for
"itemProba": 0.92720764875412, // probabilidade de certeza do conjunto marca, linha e padrão
"facesProba": 0.999997854232788, // probabilidade de certeza do número de faces
"dimensionProba": 0.9999295473098756, // probabilidade de certeza da dimensão
"itemPrediction": "DURATEX-ORIGINAL-BRANCO ARTICO", // predição de marca, linha e padrão
"thicknessProba": 0.9985489249229432, // probabilidade de certeza da espessura
"facesPrediction": "2FC", // predição de número de faces
"dimensionPrediction": "2750X1840", // predição da dimensão
"thicknessPrediction": "15.0MM" // predição da espessura
},
"autoClassification": { // objeto que contem a classificação realizada pela IA – quando for
"faces": 2, // número de faces
“lineId”: 14, // identificador da linha – tabela line
"patternId": 48, // identificador do padrão – tabela pattern
"dimensionId": 1, // identificador da dimensão – tabela dimension
"thicknessId": 2, // identificador da espessura – tabela thickness
"woodBrandId": 3, // identificador da marca – tabela wood_brand
"isPanel": true // indicador se o item é painel
},
"manualClassification":{<igual autoClassification>}, // objeto que contem a classificação manual
"manualReclassification": [{<igual>}] // pode não ter ou ter vários - reclassificação
}
● refused_reason: – justificativa de recusa do item. Enum com os seguintes valores:
o PRODUCT_WITHOUT_CAMPAIGN – item não se encaixa em nenhuma campanha válida
o MONTHLY_SCORE_ACHIEVED – quantidade de pontos máxima atingida – pontos não são calculados
o INVOICE_ISSUED_OUT_OF_TIME_FRAME – nota enviada fora do período aceito para notas do Clube
Tabela: user_score (armazena os pontos – Duracoins – calculados para o usuário)
● user_id – identificador do usuário – relacionamento com a tabela user
● campaign_item_id – quando a pontuação está relacionada com uma campanha do Clube, é uma referência para a tabela do item da campanha (padrão DEXCO na Campanha) – relacionamento com a tabela campaign_item
● promotion_id – quando a pontuação está relacionada com uma promoção do Clube, é uma referência para a tabela de promoções – relacionamento com a tabela promotion do schema manager_clube_duratex
● invoice_content_product_id – quando a origem da pontuação é um produto de uma nota fiscal , é uma referência para a tabela de produtos – relacionamento com a tabela invoice_content_product
● points_received – quantidade de pontos recebidos no cálculo – pode divergir do calculado quando o usuário atinge o limite de pontuação mensal ou quando se trata de um ajuste de pontuação gerado por uma revisão da classificação.
● points_calculated – quantidade de pontos calculados
● type – tipo de pontuação – enum com os possíveis valores:
o PROMOTION – pontuação gerada para uma promoção
o CAMPAIGN – pontuação gerada por uma campanha válida do Clube
o RECLASSIFIED_CAMPAIGN – pontuação gerada no caso de uma solicitação de reclassificação
o EXPIRED – não utilizado
o REDEEM – não utilizado
o OPENING_BALANCE – pontuação inicial (migração do Clube legado)
● pointed_at – data que originou a pontuação (no caso de campanhas, a data é a emissão da NF)
● description – descrição interna para rastreabilidade da pontuação
● invoice_id – quando a origem da pontuação é um produto de uma nota fiscal , é uma referência para a tabela de notas fiscais – relacionamento com a tabela invoice
● external_id – identificador da pontuação no sistema do parceiro de pontos (Premmiar)
● error_message – quando ocorre algum erro no processo, uma descrição do erro quando for possível obter
● status – status da pontuação – enum contendo os seguintes valores:
o SCORED – pontuação calculada (status inicial)
o SCORE_INTEGRATED – pontuação integrada com sucesso no parceiro
o SCORE_INTEGRATION_ERROR – erro de integração da pontuação no parceiro
Schema manager_clube_duratex
Tabela: campaign (armazena as campanhas do Clube)
● title – título
● description – descrição
● rules – regras
● notes – anotações internas
● status – status da capanha – enum DRAFT (rascunho) ou PUBLISHED (publicada)
● is_canceled – indicador se a campanha está cancelada
● is_default – indicador se é uma campanha padrão ou customizada (segmentada)
● replaces_capaign_id – identificador da campanha que é substituída por esta – auto relacionamento com a tabela campaign
● starts_at – dia de início da campanha
● ends_at – dia de término da campanha (quando campanha padrão, a corrente não possui data de término até a publicação, mesmo que futura, de uma nova campanha)
● slug – para acesso no front
● expiration_days – dias de expiração para os pontos calculados para a campanha
Tabela: campaign_item (armazena os itens das campanhas do Clube)
● campaign_id – identificador da campanha – relacionamento com a tabela campaign
● pattern_id – identificador do padrão (item da campanha) – relacionamento com a tabela pattern
● points – quantidade de pontos que será calculada para cada unidade de chapa com o padrão
Tabela: campaign_seller (armazena os distribuidores das campanhas customizadas do Clube – quando segmentadas por distribuidor)
● campaign_id – identificador da campanha – relacionamento com a tabela campaign
● seller_id – identificador do distribuidor – relacionamento com a tabela seller
Tabela: campaign_state (armazena os estados das campanhas customizadas do Clube – quando segmentadas por estado)
● campaign_id – identificador da campanha – relacionamento com a tabela campaign
● state_id – identificador do estado – relacionamento com a tabela state
Tabela: promotion (armazena as promoções do Clube)
● title – título da promoção
● description – descrição da promoção
● complement – complemento da promoção
● rules – regras da promoção
● banner_image – nome do arquivo de imagem para web do banner da promoção
● banner_image_mobile – nome do arquivo de imagem para mobile do banner da promoção
● card_image – nome do arquivo de imagem do card para web da promoção
● card_image_mobile – nome do arquivo de imagem do card para mobile da promoção
● type – tipo de promoção (ainda em desenvolvimento)
● starts_at – dia de início da promoção
● ends_at – dia de término da promoção
● status – status da promoção – enum DRAFT (rascunho) ou PUBLISHED (publicada)
● points – quantidade de pontos que será calculada para os usuários que participarem da promoção
Autor do Dicionário: Mário Klein (versão março/22) - Precisa atualizar