# Documentação Resgates
## Índice
- [Integrações externas](#integrações-externas)
- [LTM](#ltm)
- O que é LTM
- Sonar da LTM *(in progress)*
- Epay *(in progress)*
- Integração com Epay
- Integrações internas *(in progress)*
- Tower of Pisa
- Pentagon
- [Provider](#provider)
- [Roles](#roles)
- Categoria
- Produto
- Descrição, explicar relacionamentos como categoria, sku, imagens e variação
- Autenticação de usuário
- JS+
- LTM
- [Catálogo](#catálogo)
- [Exibição do Catálogo](#exibição-do-catálogo)
- Mudança de Perfil
- [Resgate de Produtos](#resgate-de-produtos)
- [Tipos de produtos](#tipos-de-produtos)
- [Página de Detalhe de Produto](#página-de-detalhe-de-produto)
- Página de Carrinho
- Página de Checkout
- Carrinho
- Frete
- Pedido
- Order
- Suborder
- Fluxos
- Pagamentos - integração com pentagon
- Motor de pontos
- Fluxo de cadastro de produto - Vindo da LTM e todo o fluxo de cadastro
- Resgate de produtos
- Resgate de serviços
- Fluxo de atualização de dados cadastrais do usuário na LTM
---
### Integrações Externas
#### LTM
[LTM](https://ltmfidelidade.com.br/) é a empresa parceira que fornece o serviço completo de catálogo. A LTM é um serviço de marketplace de fidelidade, que permite que os participantes acessem o catálogo de produtos e serviço para resgate, e façam pedidos de acordo com sua pontuação acumulada.
Portanto, as empresas que possuem os prêmios (Ifood, Americanas, Ponto Frio, etc.) são parceiras da LTM, e disponibilizam seus catálogos de prêmios. A JS+ tem uma integração com a LTM, que cuida de toda a parte de entrega, frete, e acompanhamento do pedido.
O catálogo de produtos da LTM é importado diariamente para a base do Shalu. A documentação desse fluxo de importação de pedidos pode ser consultada [aqui](https://votorantimindustrial.sharepoint.com/:u:/r/sites/juntos_somos_mais/Documentos%20Compartilhados/Tecnologia/Loyalty/5-%20BURN/5.1%20Resgate%20de%20item%20do%20cat%C3%A1logo/resgate-de-item-do-catalogo_fluxo_importacao_produtos_ltm.drawio?csf=1&web=1&e=odCXUs).
---
### Provider
#### O que é um provider (fornecedor)
`Provider` é o fornecedor de produtos ou serviços que são integrados nos sitemas de resgate, o fornecedor para o Shalu tem os seguintes atributos:
|campo|descrição|exemplo| | |
|---|---|---|---|---|
|name|Nome que representa o provider nas integrações|LTM| | |
|slug|É o nome do fornecedor sem caracteres especiais ou espaços|ltm| | |
|image url|Imagem de representação do fornecedor|http://fake-image.juntossomosmais.com.br| | |
|identifier|É o prefixo para identificar a origem do pedido nos sistemas|LTM -> L220211 Epay -> E220211| | |
|use_points_engine|Habilita o [motor de pontos](##motor-de-pontos) para o fornecedor|Verdeiro ou falso| | |
---
### Roles
#### O que são roles (perfis de usuário)
O Varejo possui tipos de usuários hoje:
- Profissional de obra (**professional**)
- Qualquer profissional que atue ativamente na Balconistrução, reparo ou planejamento de obras, participante do Programa de Fidelidade da Juntos Somos Mais.
- Possíveis ocupações: Marceneiro, Montador de móveis, Técnico de ar condicionado, Vidraceiro, Gesseiro, Eletricista, Arquiteto, Pedreiro, Ajudante de pedreiro, Mestre de Obras, Construtor, Empreiteiro, Engenheiro, Pintor, Encanador, Azulejista, Telhadista, Armador, Serralheiro, Instalador de gás, Instalador de portas e janelas, Instalador de pisos e revestimentos, Marmorista, Designer de Interiores, Projetista, Técnico em Edificações.
- Balconista (**employee**)
- Balconista de uma das lojas participantes do Programa de Fidelidade da Juntos Somos mais.
- Gerente (**manager**)
- Gerente de uma das lojas participantes do Programa de Fidelidade da Juntos Somos mais.
- Proprietário de loja (**owner**)
- Proprietário de uma das lojas participantes do Programa de Fidelidade da Juntos Somos mais.
- Vendedor/Representante da Indústria (**industry-seller**)
---
### Catálogo
#### Exibição do catálogo
Os produtos exibidos para o usuário dependem de seu perfil (role). Atualmente, para o provider LTM, temos dois tipos de catálogo diferentes: o de Varejo, e o de Profissionais.
Podemos consultar os diferentes catálogos cadastrados pelo admin do Shalu, na tabela de `ProviderCatalog`. Esses diferentes catálogos correspondem aqueles cadastrados na LTM.
*OBS: note que todas as diferentes ocupações que correspondem ao perfil de **Profissional** têm o mesmo catálogo.*
- ***Mudança de Perfil ou Catálogo***
A mudança de perfil de um usuário é bloqueada no front-end da aplicação: o usuário deve contatar nossa Central de Atendimento e requisitar essa mudança. Como o catálogo é vinculado ao perfil, essa mudança deve ser feita no provider LTM para que o usuário tenha acesso ao catálogo correto.
Atualmente, a central faz a mudança a partir de um endpoint do Ishtar-gate (`https://ishtar-gate.juntossomosmaisi.com.br/api/v1/users/update-user/`), que sinaliza essa informação para todas as aplicações que possuem informações do usuário. A documentação do fluxo completo de mudança de perfil pode ser consultada em (COLOCAR LINK DO SHAREPOINT DA DOC DO FLUXO -- excalidraw cj?)
---
### Resgate de Produtos
Com os pontos acumulados com o Programa de Fidelidade, os membros podem resgatar produtos de diferentes tipos em nosso [catálogo de prêmios](%28https://www.juntossomosmais.com.br/user/catalogo-de-premios%29). No fluxo de um resgate, o usuário passa por três páginas principais além da página principal do catálogo: Detalhe de um produto; carrinho e checkout.
O fluxo completo de um resgate bem sucedido pode ser consultado em nossa documentação (LINK DA IMAGEM DO DENILSON); aqui iremos nos atentar a algumas particularidades e regras de negócio aplicadas em cada uma dessas páginas.
#### Tipos de produtos
A partir de nossos providers, fornecemos aos nossos usuários quatro tipos de produtos e serviços que podem ser resgatados:
1. **Produtos Físicos** -- LTM
São produtos físicos resgatados dos parceiros de *ecommerce* da LTM (ou vendors), como a Magalu, Netshoes, Funstock, Casas Bahia, etc. Esses parceiros são responsáveis pela entrega dos produtos, que pode ser monitorada na integração com a LTM.
2. **Vouchers Virtuais** -- LTM
Vouchers disponibilizados pelos parceiros (vendors), que são utilizados de maneira *virtual*. Ou seja, o usuário que faz o resgate receberá um código em seu e-mail, que pode ser utilizado como voucher nas plataformas correspondentes. Entre os vouchers mais resgatados estão cartões presente do Ifood Virtual, Americanas, Uber e Carrefour Virtual.
3. **Vouchers Físicos** -- LTM
Assim como os vouchers virtuais, com o voucher físico o usuário pode trocar seus pontos por produtos nos parceiros, mas ele recebe em casa um cartão físico que usará para essa troca. Entre os mais resgatados, temos os vouchers do Multicash e do Outback.
4. **Recarga de Celular** -- EPay
A recarga de celular é atualmente nosso único serviço do catálogo integrado ao parceiro EPay. O usuário pode fazer recargas para seu telefone celular registrado nos dados do programa, de acordo com a conversão de pontos de sua operadora.
#### Página de Detalhe de Produto
- URL da página -- https://www.juntossomosmais.com.br/user/catalogo-de-premios/premio/{{product_id}}
Quando o usuário clica em um produto específico do catálogo, ele é levado para a página de detalhe daquele produto, onde ele pode visualizar informações e descrições do produto, e colocá-lo em seu carrinho de compras.
Para que o usuário consiga colocar o produto no carrinho, algumas **validações** são feitas:
- É feita uma consulta ao *preço e disponibilidade* (COLOCAR LINK DA DOC DO FLUXO?) daquele produto, onde são checados:
- Preço do produto para o perfil daquele usuário;
- Disponibilidade de entrega do produto para o CEP de entrega informado (se não for informado, será utilizado o CEP registrado para o usuário);
- Se o produto não foi indisponibilizado via Admin do Shalu (método utilizado pela equipe de negócios para retirar alguns produtos do catálogo).
- O usuário precisa ter pontos suficientes para resgatar o produto para colocá-lo no carrinho.
É também na página de detalhe de produtos em que o usuário escolhe as especifidades do produto que deseja. Portanto, para produtos que possuem variações, ele deve escolher entre as opções disponíveis para atributos como tamanho e cor. As combinações que se encontram indisponíveis não podem ser selecionadas para continuarem para o carrinho.
*Observação:* A página de Detalhe de Produto é diferente para as recargas de celular, que têm uma página específica em que o usuário pode selecionar a operadora e valor da recarga para o telefone cadastrado, e já finalizar o resgate. Exemplos das diferentes páginas de detalhe podem ser encontrados em nosso fluxo de resgate (LINK DENILSON)
---
In progress:
**Página de Detalhe de Produto**
**Página de Carrinho**
## Página de Checkout
A tela de checkout é a etapa final onde o usuário irá concluir o resgate. Ao entrar na tela é feito algumas validações nas informações do usuário. Essas informações inicialmente são preenchidas com os dados do perfil do usuário e caso falte alguma informação obrigatória é retornado um feedback claro de que o usuário precisa preencher. Ao tentar concluir o resgate e o backend retornar que algum campo está inválido também é mostrado o feedback de qual campo está invalido
**Campos obrigatórios e validações:**
- Nome do campo
- validações
#### Dados pessoais
- Nome Completo
- Pelo menos duas palavras
- Sem caracteres especiais
- Apenas letras
- Máximo de 100 caracteres
- Data de nascimento
- Máscara de data: *00/00/0000*
- Apenas números
- Telefone celular
- Máscara de número de telefone: *(DDD) 90000-0000*
- Apenas números
- Email
- Máscara de email: *email@contato.com*
#### Endereço de entrega
- CEP
- Máscara de CEP: *00000-000*
- Apenas números
- Endereço
- Máximo de 100 caracteres
- Número
- Máximo de 20 caracteres
- Estado
- Cidade
- Máximo de 100 caracteres
- Bairro
- Máximo de 100 caracteres
Caso o usuário tenha alterado o campo de CEP nas etapas anteriores, para um CEP diferente do que está no perfil do usuário. Ao entrar na tela de checkout será mostrado que o usuário precisa preencher os seguintes campos: Endereço, Número, Cidade, Bairro, Estado.