Skip to content

rob-ec/tic-hub-12-a02

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Atividade - Aula 02 - Typescript

Projeto criado para a Aula 02 do Programa TIC-HUB 12 Full Stack.

Rodando o projeto

Instalação

npm install

Execução

npm run start

Requisitos

Classes/Interfaces

As classes/interfaces devem ter

  • Category: id, name.
  • Product: id, name, price, category (do tipo Category).
  • User: id, username, email.
  • Role: Deve ser estritamente "ADMIN" ou "CUSTOMER".

🛒 Carrinho

O carrinho deve implementar funções equivalentes a:

  • getTotalItems(): Retorna a quantidade total de unidades (soma das quantidades) no carrinho.
  • getFinalPrice(): Retorna o valor monetário total da compra.

🔥 Desafio

Seção Desafio. Refatoração com High-Order Functions.

  • Método addItem(product, quantity): Utilize .some() para verificar se o produto já existe no carrinho. Se existir, apenas aumente a quantidade; se não, adicione o novo item.
  • Método getTotalItems(): Substitua o laço for ou forEach pelo método .reduce().
  • Método getFinalPrice(): Refatore o cálculo do valor total utilizando também o método .reduce().

✅ Critérios para considerar a atividade como feita

  • Tipagem Completa: O código não deve conter o uso de any.
  • Integridade da Role: O sistema deve impedir (em tempo de compilação) a atribuição de papéis diferentes de ADMIN ou CUSTOMER.
  • Lógica de Acúmulo: O carrinho deve ser capaz de somar quantidades de produtos repetidos sem duplicar as entradas no array.
  • Uso de HOF: (Para quem optar pelo desafio) O uso de .reduce() e .some() deve estar implementado corretamente.

About

Exercício da Aula 02 do Programa TIC-HUB 12 – Full Stack

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors