Interfaces pour la gestion d’un système complexe de commandes
TypeScript
Hard
interfaces
Tâche «Interfaces pour la gestion d’un système complexe de commandes»
Développez un système de types et d’interfaces en TypeScript pour traiter les commandes dans une boutique en ligne avec prise en charge de différents modes de paiement, de livraison et de réductions. Implémentez la fonction processOrder, qui prend un objet de commande et retourne le montant total en tenant compte de toutes les règles appliquées. La commande contient une liste d’articles (chacun avec un prix et une quantité), un mode de paiement (card, cash, crypto) et un mode de livraison (pickup, courier, post). Pour le paiement par carte et par crypto-monnaie, une réduction de 5 % s’applique, pour le retrait sur place — une réduction de 10 %, pour la livraison par coursier — une majoration de 15 %, pour la poste — un coût fixe de 300. Les réductions et majorations sont appliquées successivement : d’abord la réduction sur le paiement, puis la réduction/majoration sur la livraison. Le montant total est arrondi à deux décimales.
Format d\ entrée
Première ligne : nombre d’articles N (1 ≤ N ≤ 100). Ensuite N lignes : nom de l’article (chaîne sans espaces), prix (nombre à virgule flottante), quantité (nombre entier). Ligne suivante : mode de paiement (card, cash, crypto). Dernière ligne : mode de livraison (pickup, courier, post).
Format de sortie
Un seul nombre — le montant total avec deux décimales.
Exemples
Exemple 1
ENTRÉE
5
5 4 3 2 1
SORTIE
1 2 3 4 5
10
main.ts