Schnittstellen zur Verwaltung eines komplexen Bestellsystems

TypeScript Hard interfaces

Aufgabe «Schnittstellen zur Verwaltung eines komplexen Bestellsystems»

Entwickeln Sie ein System aus Typen und Schnittstellen in TypeScript zur Verarbeitung von Bestellungen in einem Online-Shop mit Unterstützung für verschiedene Zahlungsarten, Lieferoptionen und Rabatte. Implementieren Sie die Funktion processOrder, die ein Bestellobjekt entgegennimmt und den Endbetrag unter Berücksichtigung aller angewendeten Regeln zurückgibt. Die Bestellung enthält eine Liste von Artikeln (jeweils mit Preis und Menge), eine Zahlungsart (card, cash, crypto) und eine Lieferart (pickup, courier, post). Für Zahlung mit Karte und Kryptowährung gilt ein Rabatt von 5%, für Selbstabholung ein Rabatt von 10%, für Kurierlieferung ein Aufschlag von 15% und für Post eine Festgebühr von 300. Rabatte und Aufschläge werden nacheinander angewendet: zuerst der Rabatt auf die Zahlung, dann der Rabatt/Aufschlag auf die Lieferung. Der Endbetrag wird auf zwei Nachkommastellen gerundet.

Eingabeformat

Erste Zeile: Anzahl der Artikel N (1 ≤ N ≤ 100). Dann N Zeilen: Artikelname (Zeichenkette ohne Leerzeichen), Preis (Gleitkommazahl), Menge (ganze Zahl). Nächste Zeile: Zahlungsart (card, cash, crypto). Letzte Zeile: Lieferart (pickup, courier, post).

Ausgabeformat

Eine Zahl — der Endbetrag mit zwei Nachkommastellen.

Beispiele

Beispiel 1

EINGABE
5 5 4 3 2 1
AUSGABE
1 2 3 4 5 10
main.ts