Integração com Billing
O serviço Billing, é responsável por interagir com a API de faturamento para obter e formatar dados de clientes, especialmente informações relacionadas a assinaturas e planos de produtos (como RDSM e RDCRM). A seguir, está a explicação detalhada de suas funções:
1. Recuperação de Informações de Faturamento
A função principal desse serviço é buscar informações de faturamento associadas a um usuário (cliente ou potencial cliente) usando o e-mail. Para isso:
- É realizada uma requisição GET à API de Billing, utilizando o e-mail do usuário como parâmetro. A URL faz referência a um endpoint que retorna informações detalhadas do cliente.
- As informações retornadas pela API são então convertidas para um formato específico e retornadas para uso posterior no fluxo da aplicação.
2. Construção de Dados de Marketing
Uma das funcionalidades principais do serviço é processar os dados relacionados ao plano de marketing (RDSM) do cliente, caso o cliente tenha um plano de marketing ativo.
- Determinação do Status do Cliente:
- Verifica se o cliente é atual (
is_customer), ex-cliente (was_customer) ou nunca foi cliente. - O status é definido como
current,exounever.
- Verifica se o cliente é atual (
- Extração e Formatação de Informações do Plano:
- Extrai o nome do plano (
plan_name) e o processa para padronização. - Verifica se o cliente possui um plano premium (
is_premium). - Verifica se está em um plano entry level (
is_entry_level).
- Extrai o nome do plano (
- Verificação de Parceria:
- Determina se o cliente é um parceiro (
is_partner).
- Determina se o cliente é um parceiro (
- Resultado:
- Retorna um objeto
ProductRelationcontendo informações sobre o status, estágio, plano, se é premium, se está em entry level, e se é parceiro.
- Retorna um objeto
3. Construção de Dados de CRM
Similar à função de marketing, o serviço faz o mesmo processo, mas para os dados de CRM (RDSCRM) do cliente.
- Segue o mesmo fluxo da construção de dados de Marketing, aplicando aos dados de CRM.
- Verifica e extrai informações específicas ao CRM.
4. Determinação do Status do Cliente
Uma função é usada tanto nos dados de marketing quanto de CRM para determinar o status do cliente em relação a esses produtos. O status pode ser:
- Current (cliente atual),
- Ex (ex-cliente), ou
- Never (nunca foi cliente).
Esse status é fundamental para categorizar o cliente de acordo com seu histórico de uso dos produtos da empresa.
5. Formatação dos Dados de Faturamento
O serviço é responsável por agregar e formatar os dados de faturamento do cliente.
- Recebe os dados brutos de faturamento.
- Se houver dados de Marketing, chama
buildMarketingDatapara processá-los. - Se houver dados de CRM, chama
buildCrmDatapara processá-los. - Combina as informações em um objeto
BillingFormattedData(subscriptions), organizando os dados sobre as assinaturas do cliente para os dois produtos. - Retorna esse objeto formatado, que é utilizado posteriormente na aplicação para exibir ou manipular as informações de faturamento do cliente.
Funções Disponíveis pelo Serviço
O serviço retorna duas funções principais:
- find: Faz a requisição à API de Billing para buscar os dados de um cliente com base no e-mail fornecido.
- mountData: Processa e formata os dados brutos de faturamento, organizando informações sobre as assinaturas de Marketing e CRM.