Você foi contratado para desenvolver um sistema para a empresa TechReads Emporium de e-commerce que vende livros e eletronicos.
Para isso, você planejou em organizar o sistema de forma a separar as responsabilidades facilitando a manutenção futura e organização geral do código.
Para isso, você criou os seguintes camadas:
Essa é a camada de apresentação ao usuário onde estará implementada a lógica que interagirá com o usuário.
Receberá as requisições vindas da camada de visualização e repassará a classe responsável. O controller não terá nenhum tipo de lógica, mas serve para escolher o caminho correto da operação.
Nessa camada as regras de negócio são efetivamente implementadas
Nesta camada estarão todo os modelos que representam as entidades do sistema
Sabendo disso e considerando os diagramas e classes/interfaces fornecidos, implemente um sistema que contenha as seguintes operações:
- Listar todos o produtos de determinada categoria
- Adicionar produto ao carrinho (informando sku e a quantidade)
- Remover produto do carrinho (informando o sku)
- Realizar uma compra
A lista de produtos (livros e eletrônicos) está fornecida nos arquivos books.csv e eletronics.csv. O seu programa deverá ler esses arquivos ao iniciar para compor o estoque da loja.
Observe a documentação das interfaces e implementea/altere as classes necessárias para o correto funcionamento do programa. O programa poderá ter uma interface simples em modo texto.
- Ao realizar uma compra, as seguintes oeprações devem ser realizadas:
- Verificar disponibilidade no estoque
- Remover os produtos do estoque
- Zerar o carrinho de compras
- Os pagamentos são obviamente simulações. Implemente simulação de dois tipos de métodos de pagamento: pix e cartão. Você poderá adicionar novos campos nessas classes para melhorar a representação.


