API construída com .NET CORE. Utilizando Entity Framework Core como ORM e o banco de dados relacional SQL Server. Foi utilizado o conceito de Database First ao invés do Code First, com isso, focando na geração de script das entidades via SQL Server.
Entidades do projeto:
Cliente => Representa o cliente da Target;
Endereco => Representa o endereço do cliente, isto é, uma tabela com informações do cliente;
Plano => Representa os planos da Target.
Obs. 1: A tabela de Endereço só permite que o cliente tenha somente um endereço.
Obs. 2: A tabela Plano foi criada para atender uma possível alteração no futuro. Caso a target tenha interesse em criar novos planos com outros valores, essa tabela salvará e a tabela Cliente possui uma coluna de PlanoId para definir o plano. Evitando uma coluna plano vip em cliente para evitar futura refatoração.
Para fazer requisições:
Adicionar no Header da requisição => "API-KEY" com valor de "pgH7QzFHJx4w46fI~5Uzi4RvtTwlEXp". (sem as aspas)
Endpoints:
Cliente:
POST => api/cliente/ => Criação do cliente.
POST => api/cliente/{id}/vip => Aplica VIP no Id do cliente.
GET => api/cliente/periodo/{dataInicio}/{dataFim} => Lista clientes através de um período de data início e data fim.
GET => api/cliente/renda/{valor} => Lista Clientes com valor igual ou superior.
GET => api/cliente/{id}/endereco => Apresenta o endereço do cliente.
PUT => api/cliente/1/endereco => Atualiza endereço do cliente.
GET = > api/cliente/podemvip => Lista todos os clientes que podem virar VIP
Plano:
GET => api/plano/vip => Mostra detalhes do plano VIP.
IBGE:
GET => api/ibge/estados => Lista estados do Brasil.
GET => api/ibge/municipios/{UF} => Lista municipios através da UF.
Obs: Esse endpoint IBGE está consultando a API do IBGE.