Documentação API Clientes e-Ticons

API para consulta de dados clientes e-Ticons

1. Autenticação

O módulo de autenticação do projeto Eticons Clientes é responsável por gerenciar o acesso dos usuários ao sistema, garantindo a segurança e a integridade dos dados. Ele utiliza o sistema de autenticação padrão OAuth 2.0.

1.1. Gerenciamento de Usuários

Os usuários podem ser gerenciados através de uma interface administrativa, onde é possível visualizar, cadastrar e desabilitar contas de usuário. A funcionalidade de desabilitação permite que administradores controlem o acesso sem a necessidade de excluir permanentemente um registro, mantendo o histórico de atividades.

1.2. Credenciais de API

O sistema oferece um mecanismo para a geração e gerenciamento de credenciais de API, utilizando Access Tokens. Isso permite que aplicações externas interajam com o sistema de forma segura.

1.3. Access Tokens

Assim que acessar o sistema navegue até a sessão Minha Conta > API Client, lá você irá encontrar o seu Client ID e Client Secret, que serão necessários para gerar o seu Access Token.


Com o Client ID e Client Secret, você irá disparar uma requisição para o Endpoint:

https://www.clientes.eticons.com/api/v1/auth/token POST

Essa autenticação deve possuir uma estrutura com Body

{
    "name": "Sistema de Licitações",
    "client_id": "eti_xxxxxxx",
    "client_secret": "eti_xxxxxxx"
}

Escopos:

"name" : Obrigatório, indica a finalidade que aquele token vai ter;

"client_id": Obrigatório, inidica a chave pública associada ao usuário; 

"client_secret": Obrigatório; inifica a chave privada associada ao usuário;

2. Clientes

O módulo de
Clientes é o coração do sistema, responsável por armazenar e gerenciar todas as informações relacionadas aos clientes da Eticons. Ele permite o cadastro detalhado de instituições, incluindo dados de contato, localização e associação com sistemas específicos.

2.1. Cadastro e Edição de Clientes

O cadastro de clientes é abrangente, incluindo informações como nome, CNPJ, unidade gestora, tipo de instituição, data de implantação, contatos e endereço completo. A edição permite a atualização de todos esses dados.

2.2. Exclusão de Clientes

O sistema suporta a exclusão de clientes, tanto individualmente quanto em massa. Esta funcionalidade é controlada pelo ClientesController e pela view clientes.blade.php, garantindo que os registros possam ser removidos quando necessário.

2.3. Associação de Sistemas

Uma funcionalidade crucial é a associação de sistemas a clientes. Um cliente pode ter múltiplos sistemas associados, e cada associação pode ter um status (Ativo/Bloqueado). Esta relação é gerenciada através de uma tabela pivot (cliente_sistema).
Backend de Associação: O ClientesController foi atualizado com o método AssociarSistemas para gerenciar esta relação. Ele recebe os IDs dos sistemas e seus respectivos status, sincronizando-os com o cliente. Isso permite que o sistema registre quais sistemas um cliente utiliza e se estão ativos ou bloqueados para aquele cliente específico.

3. Sistemas

O módulo de Sistemas gerencia os diferentes sistemas ou serviços que a Eticons oferece aos seus clientes. Ele permite o cadastro de sistemas, categorização e controle de sua situação.

3.1. Cadastro e Edição de Sistemas

É possível cadastrar novos sistemas com detalhes como nome, descrição e situação (ativo/inativo). A edição permite a atualização dessas informações.

3.2. Exclusão de Sistemas

Similar ao módulo de Clientes, o módulo de Sistemas permite a exclusão de registros, tanto individualmente quanto em massa. Esta funcionalidade é implementada no SistemasController e na view sistemas.blade.php, garantindo a remoção eficiente de sistemas não mais relevantes.

3.3. Categorias de Sistemas

Os sistemas podem ser organizados por categorias, facilitando a gestão e a visualização. O sistema suporta o cadastro, edição e exclusão de categorias de sistemas, mantendo a organização do portfólio de serviços.

3.4. Dashboard BI

O projeto inclui uma tela de Dashboard BI (bi.blade.php e BIController) que oferece uma visão geral e intuitiva dos dados de clientes e sistemas. O dashboard apresenta gráficos e métricas importantes, como:
Total de Clientes: Número total de clientes cadastrados.
Clientes Ativos/Inativos: Distribuição de clientes por situação.
Crescimento Mensal de Clientes: Gráfico mostrando a evolução do número de clientes ao longo do tempo.
Clientes por Tipo de Instituição: Distribuição de clientes por categoria de instituição (e.g., Prefeitura, Câmara Municipal).
Esses gráficos são gerados utilizando ApexCharts, proporcionando uma visualização clara e interativa dos dados para auxiliar na tomada de decisões.