Complete the requirements of the test

A short description of what i did:
- Encapsulate some logic in small services to avoid fat Controllers and respect SRP
- Used strategy design pattern to implement the different logics for pricing calculation
- Used basic http authentication for the private API (could done better if had more time, by providing a persistent authentication with tokens on session, something like that)