# Error Codes

### General

| ErrorCode | ErrorEnum                 | Meaning                                               |
| --------- | ------------------------- | ----------------------------------------------------- |
| `1001`    | `NotFound`                | The specified entity is not found                     |
| `1002`    | `ArgumentNullOrEmpty`     | A required parameter has been omitted.                |
| `1003`    | `BadArgumentException`    | A required parameter is malformed.                    |
| `1004`    | `ConfigurationException`  | An invalid Configuration has been referenced.         |
| `1005`    | `NotImplementedException` | A requested resource or action has no implementation. |

### Orders and catalogs

| ErrorCode | ErrorEnum                  | Meaning                                                                                          |
| --------- | -------------------------- | ------------------------------------------------------------------------------------------------ |
| `2001`    | `PriceInvalid`             | The supplied price is malformed, or inconsistent.                                                |
| `2002`    | `DateTimeInvalid`          | The supplied datetime is malformed, or inconsistent.                                             |
| `2003`    | `PaymentCannotBeProcessed` | The payment cannot be processed. More information is provided as part of the message in context. |

### Flights, cities and airports

| ErrorCode | ErrorEnum                  | Meaning                                                                                                                   |
| --------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `3001`    | `OriginDestinationInvalid` | The requested origin, or destination of the flight is malformed or non existent.                                          |
| `3002`    | `IataInvalid`              | The supplied [IATA code ](https://www.nationsonline.org/oneworld/IATA_Codes/IATA_Code_A.htm)is malformed or non existent. |
| `3003`    | `GeoLocationInvalid`       | The geography supplied is malformed.                                                                                      |
| `3004`    | `FlightsInThePast`         | The requested flight exists in the past. Only present and future flights are available.                                   |
| `3005`    | `FlightNumberInvalid`      | The supplied flight number is malformed.                                                                                  |

### Users

| ErrorCode | ErrorEnum      | Meaning                                                              |
| --------- | -------------- | -------------------------------------------------------------------- |
| `4001`    | `EmailInvalid` | The provided email is malformed.                                     |
| `4002`    | `UserExists`   | An attempt was made to create a user already existing in the system. |
