Temos dois tipos de usuários: usuários regulares e lojista. Ambos possuem uma carteira com fundos. No entanto, a transferência só é permitida se o pagador não for lojista.
- PHP 8.1.
- Laravel 10.10
- Docker (MYSQL) com Laravel Sail.
- Swagger.
- Postman.
- Eloquent ORM.
- Routes | Todas as rotas possuem prefixo v1, garantia de segurança se precisar de uma grande atualização.
- Requests | Contém todas as regras de validações.
- Controllers | Responsável por receber parâmetros, validar, chamar os Services e retornar uma resposta. Além disso, também podemos filtrar a consulta e/ou especificar quais atributos quero de retorno.
- Services | Responsável pelas regras de negócio.
- Repositories | Responsável em lidar com a MODEL.
- Interfaces | Interfaces aplicadas nos dois métodos abstratos para Service e Repositories.
- Jobs | foram criados 3 Jobs para garantir uma boa performace da API (Transação, Email Pagador e Email Recebedor.
- ACID para as transações | Atomicidade, Consistência, Isolamento e Durabilidade das transações.
Ao executar o projeto, acesse a rota http://localhost/api/documentation e visualize de forma simplificada todos os endpoints da aplicação.