واجهات لإدارة نظام طلبات معقد
TypeScript
Hard
interfaces
مهمة «واجهات لإدارة نظام طلبات معقد»
```html
طور نظام أنواع وواجهات في TypeScript لمعالجة الطلبات في متجر إلكتروني مع دعم طرق الدفع والتوصيل والخصومات المختلفة. نفذ الدالة processOrder التي تستقبل كائن الطلب وتعيد المبلغ الإجمالي مع مراعاة جميع القواعد المطبقة. يحتوي الطلب على قائمة بالمنتجات (كل منها بسعر وكمية)، وطريقة الدفع (card, cash, crypto)، وطريقة التوصيل (pickup, courier, post). للدفع بالبطاقة والعملات الرقمية خصم 5%، للاستلام الذاتي خصم 10%، للتوصيل بالبريد السريع رسوم إضافية 15%، للبريد تكلفة ثابتة 300. تُطبق الخصومات والرسوم الإضافية بالتسلسل: أولاً خصم الدفع، ثم خصم/رسوم التوصيل. يُقرب المبلغ الإجمالي إلى منزلتين عشريتين.
```
طور نظام أنواع وواجهات في TypeScript لمعالجة الطلبات في متجر إلكتروني مع دعم طرق الدفع والتوصيل والخصومات المختلفة. نفذ الدالة processOrder التي تستقبل كائن الطلب وتعيد المبلغ الإجمالي مع مراعاة جميع القواعد المطبقة. يحتوي الطلب على قائمة بالمنتجات (كل منها بسعر وكمية)، وطريقة الدفع (card, cash, crypto)، وطريقة التوصيل (pickup, courier, post). للدفع بالبطاقة والعملات الرقمية خصم 5%، للاستلام الذاتي خصم 10%، للتوصيل بالبريد السريع رسوم إضافية 15%، للبريد تكلفة ثابتة 300. تُطبق الخصومات والرسوم الإضافية بالتسلسل: أولاً خصم الدفع، ثم خصم/رسوم التوصيل. يُقرب المبلغ الإجمالي إلى منزلتين عشريتين.
```
تنسيق الإدخال
السطر الأول: عدد المنتجات N (1 ≤ N ≤ 100). ثم N سطر: اسم المنتج (سلسلة نصية بدون مسافات)، السعر (رقم عشري)، الكمية (عدد صحيح). ثم سطر: طريقة الدفع (card, cash, crypto). السطر الأخير: طريقة التوصيل (pickup, courier, post).
تنسيق الإخراج
رقم واحد — المجموع النهائي مع منزلتين عشريتين.
أمثلة
مثال 1
الإدخال
5
5 4 3 2 1
الإخراج
1 2 3 4 5
10
main.ts