This code represents a subset of a well-known business domain, an online shop. Goal of the code is to calculate the total price of an order including multicurrency support and applying discounts. Your task is to refactor the code to the best of your knowledge having in mind the following aspects:
- Maintainability
- Simplicity
- Code quality (clean code)
Please publish the solution on your own github (or other) repository and provide us with the link.