# Models

## The DataSourceShippingOptionResponse object

```json
{"openapi":"3.0.0","info":{"title":"Shippings API","version":"1.0.0"},"components":{"schemas":{"DataSourceShippingOptionResponse":{"type":"object","description":"Shipping option available for a specific data source","properties":{"pk":{"type":"integer","description":"Unique identifier for the shipping option"},"name":{"type":"string","description":"Display name of the shipping option"},"data_source":{"type":"integer","description":"Unique identifier of the associated data source"},"description":{"type":"string","nullable":true,"description":"Optional description providing additional details about the shipping option"}}}}}}
```

## The EasyReturnAppointmentDateRequest object

```json
{"openapi":"3.0.0","info":{"title":"Shippings API","version":"1.0.0"},"components":{"schemas":{"EasyReturnAppointmentDateRequest":{"type":"object","description":"Request payload for retrieving available appointment dates","required":["shipping_company","pickup_address","start_datetime","end_datetime"],"properties":{"shipping_company":{"type":"integer","description":"Unique identifier of the shipping company to use for the return.\nMust be an active easy return shipping company configured for\nuser-selected appointments.\n"},"pickup_address":{"type":"integer","description":"Unique identifier of the pickup address. Must be an active customer\naddress belonging to the authenticated user.\n"},"start_datetime":{"type":"string","format":"date","description":"Start date of the date range to search for available appointments.\nMust be today or a future date.\n"},"end_datetime":{"type":"string","format":"date","description":"End date of the date range to search for available appointments.\nMust be after the start date and must be today or a future date.\n"}}}}}}
```

## The AppointmentDateResponse object

```json
{"openapi":"3.0.0","info":{"title":"Shippings API","version":"1.0.0"},"components":{"schemas":{"AppointmentDateResponse":{"type":"object","description":"Available appointment date with time slots","properties":{"date":{"type":"string","format":"date","description":"The appointment date"},"hour_ranges":{"type":"array","description":"Available time slots for this date","items":{"$ref":"#/components/schemas/HourRange"}}}},"HourRange":{"type":"object","description":"Time range available for appointment scheduling","properties":{"start":{"type":"string","description":"Start time in HH:MM format (24-hour)"},"end":{"type":"string","description":"End time in HH:MM format (24-hour)"}}}}}}
```

## The HourRange object

```json
{"openapi":"3.0.0","info":{"title":"Shippings API","version":"1.0.0"},"components":{"schemas":{"HourRange":{"type":"object","description":"Time range available for appointment scheduling","properties":{"start":{"type":"string","description":"Start time in HH:MM format (24-hour)"},"end":{"type":"string","description":"End time in HH:MM format (24-hour)"}}}}}}
```

## The Error object

```json
{"openapi":"3.0.0","info":{"title":"Shippings API","version":"1.0.0"},"components":{"schemas":{"Error":{"type":"object","description":"Standard error response","properties":{"detail":{"type":"string","description":"Error message describing what went wrong"}}}}}}
```

## The ValidationError object

```json
{"openapi":"3.0.0","info":{"title":"Shippings API","version":"1.0.0"},"components":{"schemas":{"ValidationError":{"type":"object","description":"Validation error response","properties":{"detail":{"type":"string","description":"General validation error message"}},"additionalProperties":{"type":"array","items":{"type":"string"},"description":"Field-specific validation errors"}}}}}
```
