Interfaces para gestionar un sistema complejo de pedidos
TypeScript
Hard
interfaces
Tarea «Interfaces para gestionar un sistema complejo de pedidos»
Desarrolle un sistema de tipos e interfaces en TypeScript para procesar pedidos en una tienda en línea con soporte para diferentes métodos de pago, entrega y descuentos. Implemente la función processOrder, que recibe un objeto de pedido y devuelve el monto total considerando todas las reglas aplicadas. El pedido contiene una lista de productos (cada uno con precio y cantidad), método de pago (card, cash, crypto) y método de entrega (pickup, courier, post). Para el pago con tarjeta y criptomoneda se aplica un descuento del 5%, para la recogida en tienda un descuento del 10%, para la entrega por mensajería un recargo del 15%, y para el envío postal un costo fijo de 300. Los descuentos y recargos se aplican secuencialmente: primero el descuento por pago, luego el descuento/recargo por entrega. El monto total se redondea a dos decimales.
Formato de entrada
Primera línea: cantidad de productos N (1 ≤ N ≤ 100). Luego N líneas: nombre del producto (cadena sin espacios), precio (número de punto flotante), cantidad (número entero). Siguiente línea: método de pago (card, cash, crypto). Última línea: método de entrega (pickup, courier, post).
Formato de salida
Un número — el monto total con dos decimales.
Ejemplos
Ejemplo 1
ENTRADA
5
5 4 3 2 1
SALIDA
1 2 3 4 5
10
main.ts