# Models

## The ErrorMessage object

```json
{"openapi":"3.0.0","info":{"title":"Delivery Service","version":"0.0.1"},"components":{"schemas":{"ErrorMessage":{"required":["message"],"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"_embedded":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"path":{"type":"string"}}}}}}}}}}}
```

## The PlanRouteResponse object

```json
{"openapi":"3.0.0","info":{"title":"Delivery Service","version":"0.0.1"},"components":{"schemas":{"PlanRouteResponse":{"type":"object","properties":{"orderId":{"type":"string"},"deliveryProvider":{"type":"string"},"errorMessage":{"type":"string"}}}}}}
```

## The PlanRouteCommand object

```json
{"openapi":"3.0.0","info":{"title":"Delivery Service","version":"0.0.1"},"components":{"schemas":{"PlanRouteCommand":{"type":"object","properties":{"orderStatus":{"$ref":"#/components/schemas/OrderStatus"},"siteCode":{"type":"string"},"orderIds":{"$ref":"#/components/schemas/OrderIdList"}},"required":["siteCode"]},"OrderStatus":{"type":"string","enum":["IN_CHECKOUT","CREATED","CONFIRMED","DECLINED","SHIPPED","COMPLETED"]},"OrderIdList":{"type":"array","items":{"type":"string"}}}}}
```

## The OrderDTOList object

```json
{"openapi":"3.0.0","info":{"title":"Delivery Service","version":"0.0.1"},"components":{"schemas":{"OrderDTOList":{"type":"array","items":{"$ref":"#/components/schemas/OrderDTO"}},"OrderDTO":{"type":"object","properties":{"id":{"type":"string"},"siteCode":{"type":"string"},"task":{"$ref":"#/components/schemas/Task"},"taskId":{"type":"string"},"contactPhone":{"type":"string"},"mobilePhone":{"type":"string"},"orderStatus":{"$ref":"#/components/schemas/OrderStatus"},"orderNumber":{"type":"string"},"hint":{"type":"string"},"deliveryTime":{"$ref":"#/components/schemas/DeliveryTime"},"pickup":{"type":"boolean"},"pickupAddress":{"$ref":"#/components/schemas/PickupAddress"},"shippingAddress":{"$ref":"#/components/schemas/ShippingAddress"},"deliveryHoldingTime":{"type":"number"},"personalHandover":{"type":"boolean"}}},"Task":{"type":"object","properties":{"taskId":{"type":"string"},"trackingURL":{"type":"string"},"deliveryProvider":{"$ref":"#/components/schemas/DeliveryProvider"},"status":{"type":"string","enum":["CREATED","CANCELLED"]}}},"DeliveryProvider":{"type":"string","enum":["VELOCE","ONFLEET"]},"OrderStatus":{"type":"string","enum":["IN_CHECKOUT","CREATED","CONFIRMED","DECLINED","SHIPPED","COMPLETED"]},"DeliveryTime":{"type":"object","properties":{"deliveryDate":{"type":"string","format":"date"},"deliveryTimeFrom":{"type":"string","format":"time"},"deliveryTimeTo":{"type":"string","format":"time"},"deliveryCosts":{"type":"number"},"pickupSettings":{"type":"string"}}},"PickupAddress":{"type":"object","properties":{"id":{"type":"string"},"street":{"type":"string"},"streetNumber":{"type":"string"},"city":{"type":"string"},"zipCode":{"type":"string"},"companyName":{"type":"string"},"country":{"type":"string"},"addressName":{"type":"string"},"description":{"type":"string"},"addressTag":{"type":"string"}}},"ShippingAddress":{"type":"object","properties":{"contactName":{"type":"string"},"companyName":{"type":"string"},"street":{"type":"string"},"streetNumber":{"type":"string"},"streetAppendix":{"type":"string"},"extraLine1":{"type":"string"},"extraLine2":{"type":"string"},"extraLine3":{"type":"string"},"extraLine4":{"type":"string"},"zipCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"state":{"type":"string"},"contactPhone":{"type":"string"},"mixins":{"type":"object","additionalProperties":true}}}}}}
```

## The OrderDTO object

```json
{"openapi":"3.0.0","info":{"title":"Delivery Service","version":"0.0.1"},"components":{"schemas":{"OrderDTO":{"type":"object","properties":{"id":{"type":"string"},"siteCode":{"type":"string"},"task":{"$ref":"#/components/schemas/Task"},"taskId":{"type":"string"},"contactPhone":{"type":"string"},"mobilePhone":{"type":"string"},"orderStatus":{"$ref":"#/components/schemas/OrderStatus"},"orderNumber":{"type":"string"},"hint":{"type":"string"},"deliveryTime":{"$ref":"#/components/schemas/DeliveryTime"},"pickup":{"type":"boolean"},"pickupAddress":{"$ref":"#/components/schemas/PickupAddress"},"shippingAddress":{"$ref":"#/components/schemas/ShippingAddress"},"deliveryHoldingTime":{"type":"number"},"personalHandover":{"type":"boolean"}}},"Task":{"type":"object","properties":{"taskId":{"type":"string"},"trackingURL":{"type":"string"},"deliveryProvider":{"$ref":"#/components/schemas/DeliveryProvider"},"status":{"type":"string","enum":["CREATED","CANCELLED"]}}},"DeliveryProvider":{"type":"string","enum":["VELOCE","ONFLEET"]},"OrderStatus":{"type":"string","enum":["IN_CHECKOUT","CREATED","CONFIRMED","DECLINED","SHIPPED","COMPLETED"]},"DeliveryTime":{"type":"object","properties":{"deliveryDate":{"type":"string","format":"date"},"deliveryTimeFrom":{"type":"string","format":"time"},"deliveryTimeTo":{"type":"string","format":"time"},"deliveryCosts":{"type":"number"},"pickupSettings":{"type":"string"}}},"PickupAddress":{"type":"object","properties":{"id":{"type":"string"},"street":{"type":"string"},"streetNumber":{"type":"string"},"city":{"type":"string"},"zipCode":{"type":"string"},"companyName":{"type":"string"},"country":{"type":"string"},"addressName":{"type":"string"},"description":{"type":"string"},"addressTag":{"type":"string"}}},"ShippingAddress":{"type":"object","properties":{"contactName":{"type":"string"},"companyName":{"type":"string"},"street":{"type":"string"},"streetNumber":{"type":"string"},"streetAppendix":{"type":"string"},"extraLine1":{"type":"string"},"extraLine2":{"type":"string"},"extraLine3":{"type":"string"},"extraLine4":{"type":"string"},"zipCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"state":{"type":"string"},"contactPhone":{"type":"string"},"mixins":{"type":"object","additionalProperties":true}}}}}}
```

## The ShippingAddress object

```json
{"openapi":"3.0.0","info":{"title":"Delivery Service","version":"0.0.1"},"components":{"schemas":{"ShippingAddress":{"type":"object","properties":{"contactName":{"type":"string"},"companyName":{"type":"string"},"street":{"type":"string"},"streetNumber":{"type":"string"},"streetAppendix":{"type":"string"},"extraLine1":{"type":"string"},"extraLine2":{"type":"string"},"extraLine3":{"type":"string"},"extraLine4":{"type":"string"},"zipCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"state":{"type":"string"},"contactPhone":{"type":"string"},"mixins":{"type":"object","additionalProperties":true}}}}}}
```

## The PickupAddress object

```json
{"openapi":"3.0.0","info":{"title":"Delivery Service","version":"0.0.1"},"components":{"schemas":{"PickupAddress":{"type":"object","properties":{"id":{"type":"string"},"street":{"type":"string"},"streetNumber":{"type":"string"},"city":{"type":"string"},"zipCode":{"type":"string"},"companyName":{"type":"string"},"country":{"type":"string"},"addressName":{"type":"string"},"description":{"type":"string"},"addressTag":{"type":"string"}}}}}}
```

## The DeliveryTime object

```json
{"openapi":"3.0.0","info":{"title":"Delivery Service","version":"0.0.1"},"components":{"schemas":{"DeliveryTime":{"type":"object","properties":{"deliveryDate":{"type":"string","format":"date"},"deliveryTimeFrom":{"type":"string","format":"time"},"deliveryTimeTo":{"type":"string","format":"time"},"deliveryCosts":{"type":"number"},"pickupSettings":{"type":"string"}}}}}}
```

## The Task object

```json
{"openapi":"3.0.0","info":{"title":"Delivery Service","version":"0.0.1"},"components":{"schemas":{"Task":{"type":"object","properties":{"taskId":{"type":"string"},"trackingURL":{"type":"string"},"deliveryProvider":{"$ref":"#/components/schemas/DeliveryProvider"},"status":{"type":"string","enum":["CREATED","CANCELLED"]}}},"DeliveryProvider":{"type":"string","enum":["VELOCE","ONFLEET"]}}}}
```

## The OrderIdList object

```json
{"openapi":"3.0.0","info":{"title":"Delivery Service","version":"0.0.1"},"components":{"schemas":{"OrderIdList":{"type":"array","items":{"type":"string"}}}}}
```

## The DeliveryProvider object

```json
{"openapi":"3.0.0","info":{"title":"Delivery Service","version":"0.0.1"},"components":{"schemas":{"DeliveryProvider":{"type":"string","enum":["VELOCE","ONFLEET"]}}}}
```

## The OrderStatus object

```json
{"openapi":"3.0.0","info":{"title":"Delivery Service","version":"0.0.1"},"components":{"schemas":{"OrderStatus":{"type":"string","enum":["IN_CHECKOUT","CREATED","CONFIRMED","DECLINED","SHIPPED","COMPLETED"]}}}}
```
