Interfaces para gerenciar um sistema complexo de pedidos
TypeScript
Hard
interfaces
Tarefa «Interfaces para gerenciar um sistema complexo de pedidos»
Desenvolva um sistema de tipos e interfaces em TypeScript para processar pedidos em uma loja online com suporte a diferentes formas de pagamento, entrega e descontos. Implemente a função processOrder, que recebe um objeto de pedido e retorna o valor total com todas as regras aplicadas. O pedido contém uma lista de itens (cada um com preço e quantidade), forma de pagamento (card, cash, crypto) e forma de entrega (pickup, courier, post). Para pagamento com cartão e criptomoeda, há um desconto de 5%; para retirada no local, desconto de 10%; para entrega por courier, acréscimo de 15%; para correio, custo fixo de 300. Descontos e acréscimos são aplicados sequencialmente: primeiro o desconto no pagamento, depois o desconto/acréscimo na entrega. O valor total é arredondado para duas casas decimais.
Formato de Entrada
Primeira linha: quantidade de itens N (1 ≤ N ≤ 100). Em seguida, N linhas: nome do item (string sem espaços), preço (número de ponto flutuante), quantidade (número inteiro). Próxima linha: forma de pagamento (card, cash, crypto). Última linha: forma de entrega (pickup, courier, post).
Formato de Saída
Um número — o valor total com duas casas decimais.
Exemplos
Exemplo 1
ENTRADA
5
5 4 3 2 1
SAÍDA
1 2 3 4 5
10
main.ts