From 701c6f4279486ff60e49d8e5670b0d99598b01f4 Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 6 Jun 2025 13:22:33 +0200 Subject: [PATCH] user zones --- angular/openapi.json | 2 +- angular/openapi.yaml | 477 +++++++++++++++ .../_abstract/abstract-data-form-component.ts | 7 +- .../app/_components/list/list.component.ts | 8 +- angular/src/app/_forms/apiForms.ts | 16 + .../user-zone-form.component.html | 58 ++ .../user-zone-form.component.scss | 0 .../user-zone-form.component.spec.ts | 23 + .../user-zone-form.component.ts | 194 +++++++ .../user-zone-list.component.html | 12 + .../user-zone-list.component.scss | 0 .../user-zone-list.component.spec.ts | 23 + .../user-zone-list.component.ts | 102 ++++ .../_views/user-zone/user-zone.component.html | 1 + .../_views/user-zone/user-zone.component.scss | 0 .../user-zone/user-zone.component.spec.ts | 23 + .../_views/user-zone/user-zone.component.ts | 10 + .../user-detail/user-detail.component.html | 5 + .../zone-detail/zone-detail.component.html | 16 +- angular/src/app/app.module.ts | 6 + .../app/core/api/v1/.openapi-generator/FILES | 4 + angular/src/app/core/api/v1/api/api.ts | 4 +- .../app/core/api/v1/api/userZone.service.ts | 541 ++++++++++++++++++ .../apiUserZonesGetCollection200Response.ts | 23 + angular/src/app/core/api/v1/model/models.ts | 3 + angular/src/app/core/api/v1/model/userZone.ts | 24 + .../app/core/api/v1/model/userZoneJsonld.ts | 29 + angular/src/assets/i18n/en.json | 5 +- httpdocs/migrations/Version20250605145642.php | 35 ++ httpdocs/migrations/Version20250606081404.php | 31 + httpdocs/src/ApiResource/UserZoneApi.php | 78 +++ httpdocs/src/Entity/UserZone.php | 47 ++ .../src/Mapper/UserZoneApiToEntityMapper.php | 58 ++ .../src/Mapper/UserZoneEntityToApiMapper.php | 48 ++ .../src/Repository/UserZoneRepository.php | 15 + 35 files changed, 1920 insertions(+), 8 deletions(-) create mode 100644 angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.html create mode 100644 angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.scss create mode 100644 angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.spec.ts create mode 100644 angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.ts create mode 100644 angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.html create mode 100644 angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.scss create mode 100644 angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.spec.ts create mode 100644 angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.ts create mode 100644 angular/src/app/_views/user-zone/user-zone.component.html create mode 100644 angular/src/app/_views/user-zone/user-zone.component.scss create mode 100644 angular/src/app/_views/user-zone/user-zone.component.spec.ts create mode 100644 angular/src/app/_views/user-zone/user-zone.component.ts create mode 100644 angular/src/app/core/api/v1/api/userZone.service.ts create mode 100644 angular/src/app/core/api/v1/model/apiUserZonesGetCollection200Response.ts create mode 100644 angular/src/app/core/api/v1/model/userZone.ts create mode 100644 angular/src/app/core/api/v1/model/userZoneJsonld.ts create mode 100644 httpdocs/migrations/Version20250605145642.php create mode 100644 httpdocs/migrations/Version20250606081404.php create mode 100644 httpdocs/src/ApiResource/UserZoneApi.php create mode 100644 httpdocs/src/Entity/UserZone.php create mode 100644 httpdocs/src/Mapper/UserZoneApiToEntityMapper.php create mode 100644 httpdocs/src/Mapper/UserZoneEntityToApiMapper.php create mode 100644 httpdocs/src/Repository/UserZoneRepository.php diff --git a/angular/openapi.json b/angular/openapi.json index 5bb80f3..a07610b 100644 --- a/angular/openapi.json +++ b/angular/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"Imaq Platform","description":"","version":"1.0.0"},"servers":[{"url":"\/","description":""}],"paths":{"\/api\/auth":{"post":{"operationId":"postCredentialsItem","tags":["Auth"],"responses":{"200":{"description":"Get JWT token","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AuthResponse"}}}}},"summary":"Get JWT token to login.","requestBody":{"description":"Generate new JWT Token","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Credentials"}}},"required":false},"security":[]}},"\/api\/events":{"get":{"operationId":"api_events_get_collection","tags":["Event"],"responses":{"200":{"description":"Event collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/Event.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of Event resources.","description":"Retrieves the collection of Event resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"name","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false}},"\/api\/events\/{id}":{"get":{"operationId":"api_events_id_get","tags":["Event"],"responses":{"200":{"description":"Event resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Event.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a Event resource.","description":"Retrieves a Event resource.","parameters":[{"name":"id","in":"path","description":"Event identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false}},"\/api\/locations":{"get":{"operationId":"api_locations_get_collection","tags":["Location"],"responses":{"200":{"description":"Location collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/Location.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of Location resources.","description":"Retrieves the collection of Location resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"locationNameCodeSearch","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_locations_post","tags":["Location"],"responses":{"201":{"description":"Location resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Location.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a Location resource.","description":"Creates a Location resource.","parameters":[],"requestBody":{"description":"The new Location resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Location.jsonld"}}},"required":true},"deprecated":false}},"\/api\/locations\/{id}":{"get":{"operationId":"api_locations_id_get","tags":["Location"],"responses":{"200":{"description":"Location resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Location.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a Location resource.","description":"Retrieves a Location resource.","parameters":[{"name":"id","in":"path","description":"Location identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_locations_id_delete","tags":["Location"],"responses":{"204":{"description":"Location resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the Location resource.","description":"Removes the Location resource.","parameters":[{"name":"id","in":"path","description":"Location identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_locations_id_patch","tags":["Location"],"responses":{"200":{"description":"Location resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Location.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the Location resource.","description":"Updates the Location resource.","parameters":[{"name":"id","in":"path","description":"Location identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated Location resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/Location"}}},"required":true},"deprecated":false}},"\/api\/media_objects":{"get":{"operationId":"api_media_objects_get_collection","tags":["MediaObject"],"responses":{"200":{"description":"MediaObject collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/MediaObject.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of MediaObject resources.","description":"Retrieves the collection of MediaObject resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_media_objects_post","tags":["MediaObject"],"responses":{"201":{"description":"MediaObject resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/MediaObject.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a MediaObject resource.","description":"Creates a MediaObject resource.","parameters":[],"requestBody":{"description":"The new MediaObject resource","content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}},"required":false},"deprecated":false}},"\/api\/media_objects\/{id}":{"get":{"operationId":"api_media_objects_id_get","tags":["MediaObject"],"responses":{"200":{"description":"MediaObject resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/MediaObject.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a MediaObject resource.","description":"Retrieves a MediaObject resource.","parameters":[{"name":"id","in":"path","description":"MediaObject identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_media_objects_id_delete","tags":["MediaObject"],"responses":{"204":{"description":"MediaObject resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the MediaObject resource.","description":"Removes the MediaObject resource.","parameters":[{"name":"id","in":"path","description":"MediaObject identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false}},"\/api\/shipping_companies":{"get":{"operationId":"api_shipping_companies_get_collection","tags":["ShippingCompany"],"responses":{"200":{"description":"ShippingCompany collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/ShippingCompany.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of ShippingCompany resources.","description":"Retrieves the collection of ShippingCompany resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"name","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_shipping_companies_post","tags":["ShippingCompany"],"responses":{"201":{"description":"ShippingCompany resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ShippingCompany.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a ShippingCompany resource.","description":"Creates a ShippingCompany resource.","parameters":[],"requestBody":{"description":"The new ShippingCompany resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ShippingCompany.jsonld"}}},"required":true},"deprecated":false}},"\/api\/shipping_companies\/{id}":{"get":{"operationId":"api_shipping_companies_id_get","tags":["ShippingCompany"],"responses":{"200":{"description":"ShippingCompany resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ShippingCompany.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a ShippingCompany resource.","description":"Retrieves a ShippingCompany resource.","parameters":[{"name":"id","in":"path","description":"ShippingCompany identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_shipping_companies_id_delete","tags":["ShippingCompany"],"responses":{"204":{"description":"ShippingCompany resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the ShippingCompany resource.","description":"Removes the ShippingCompany resource.","parameters":[{"name":"id","in":"path","description":"ShippingCompany identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_shipping_companies_id_patch","tags":["ShippingCompany"],"responses":{"200":{"description":"ShippingCompany resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ShippingCompany.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the ShippingCompany resource.","description":"Updates the ShippingCompany resource.","parameters":[{"name":"id","in":"path","description":"ShippingCompany identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated ShippingCompany resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/ShippingCompany"}}},"required":true},"deprecated":false}},"\/api\/trips":{"get":{"operationId":"api_trips_get_collection","tags":["Trip"],"responses":{"200":{"description":"Trip collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/Trip.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of Trip resources.","description":"Retrieves the collection of Trip resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"id","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"integer"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_trips_post","tags":["Trip"],"responses":{"201":{"description":"Trip resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Trip.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a Trip resource.","description":"Creates a Trip resource.","parameters":[],"requestBody":{"description":"The new Trip resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Trip.jsonld"}}},"required":true},"deprecated":false}},"\/api\/trips\/{id}":{"get":{"operationId":"api_trips_id_get","tags":["Trip"],"responses":{"200":{"description":"Trip resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Trip.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a Trip resource.","description":"Retrieves a Trip resource.","parameters":[{"name":"id","in":"path","description":"Trip identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_trips_id_delete","tags":["Trip"],"responses":{"204":{"description":"Trip resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the Trip resource.","description":"Removes the Trip resource.","parameters":[{"name":"id","in":"path","description":"Trip identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_trips_id_patch","tags":["Trip"],"responses":{"200":{"description":"Trip resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Trip.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the Trip resource.","description":"Updates the Trip resource.","parameters":[{"name":"id","in":"path","description":"Trip identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated Trip resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/Trip"}}},"required":true},"deprecated":false}},"\/api\/trip_locations":{"get":{"operationId":"api_trip_locations_get_collection","tags":["TripLocation"],"responses":{"200":{"description":"TripLocation collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/TripLocation.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of TripLocation resources.","description":"Retrieves the collection of TripLocation resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"trip","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"trip[]","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_trip_locations_post","tags":["TripLocation"],"responses":{"201":{"description":"TripLocation resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/TripLocation.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a TripLocation resource.","description":"Creates a TripLocation resource.","parameters":[],"requestBody":{"description":"The new TripLocation resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/TripLocation.jsonld"}}},"required":true},"deprecated":false}},"\/api\/trip_locations\/{id}":{"get":{"operationId":"api_trip_locations_id_get","tags":["TripLocation"],"responses":{"200":{"description":"TripLocation resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/TripLocation.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a TripLocation resource.","description":"Retrieves a TripLocation resource.","parameters":[{"name":"id","in":"path","description":"TripLocation identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_trip_locations_id_delete","tags":["TripLocation"],"responses":{"204":{"description":"TripLocation resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the TripLocation resource.","description":"Removes the TripLocation resource.","parameters":[{"name":"id","in":"path","description":"TripLocation identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_trip_locations_id_patch","tags":["TripLocation"],"responses":{"200":{"description":"TripLocation resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/TripLocation.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the TripLocation resource.","description":"Updates the TripLocation resource.","parameters":[{"name":"id","in":"path","description":"TripLocation identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated TripLocation resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/TripLocation"}}},"required":true},"deprecated":false}},"\/api\/users":{"get":{"operationId":"api_users_get_collection","tags":["User"],"responses":{"200":{"description":"User collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/User.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of User resources.","description":"Retrieves the collection of User resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"firstName","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"lastName","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"userNameSearch","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_users_post","tags":["User"],"responses":{"201":{"description":"User resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/User.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a User resource.","description":"Creates a User resource.","parameters":[],"requestBody":{"description":"The new User resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/User.jsonld"}}},"required":true},"deprecated":false}},"\/api\/users\/{id}":{"get":{"operationId":"api_users_id_get","tags":["User"],"responses":{"200":{"description":"User resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/User.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a User resource.","description":"Retrieves a User resource.","parameters":[{"name":"id","in":"path","description":"User identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_users_id_delete","tags":["User"],"responses":{"204":{"description":"User resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the User resource.","description":"Removes the User resource.","parameters":[{"name":"id","in":"path","description":"User identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_users_id_patch","tags":["User"],"responses":{"200":{"description":"User resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/User.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the User resource.","description":"Updates the User resource.","parameters":[{"name":"id","in":"path","description":"User identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated User resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/User"}}},"required":true},"deprecated":false}},"\/api\/user_trips":{"get":{"operationId":"api_user_trips_get_collection","tags":["UserTrip"],"responses":{"200":{"description":"UserTrip collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/UserTrip.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of UserTrip resources.","description":"Retrieves the collection of UserTrip resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"trip","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"trip[]","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true,"allowReserved":false},{"name":"user","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"user[]","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_user_trips_post","tags":["UserTrip"],"responses":{"201":{"description":"UserTrip resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTrip.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a UserTrip resource.","description":"Creates a UserTrip resource.","parameters":[],"requestBody":{"description":"The new UserTrip resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTrip.jsonld"}}},"required":true},"deprecated":false}},"\/api\/user_trips\/{id}":{"get":{"operationId":"api_user_trips_id_get","tags":["UserTrip"],"responses":{"200":{"description":"UserTrip resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTrip.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a UserTrip resource.","description":"Retrieves a UserTrip resource.","parameters":[{"name":"id","in":"path","description":"UserTrip identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_user_trips_id_delete","tags":["UserTrip"],"responses":{"204":{"description":"UserTrip resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the UserTrip resource.","description":"Removes the UserTrip resource.","parameters":[{"name":"id","in":"path","description":"UserTrip identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_user_trips_id_patch","tags":["UserTrip"],"responses":{"200":{"description":"UserTrip resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTrip.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the UserTrip resource.","description":"Updates the UserTrip resource.","parameters":[{"name":"id","in":"path","description":"UserTrip identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated UserTrip resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/UserTrip"}}},"required":true},"deprecated":false}},"\/api\/user_trip_events":{"get":{"operationId":"api_user_trip_events_get_collection","tags":["UserTripEvent"],"responses":{"200":{"description":"UserTripEvent collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/UserTripEvent.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of UserTripEvent resources.","description":"Retrieves the collection of UserTripEvent resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"userTrip","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"userTrip[]","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true,"allowReserved":false},{"name":"tripId","in":"query","description":"Filter UserTripEvents by Trip ID","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"integer"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_user_trip_events_post","tags":["UserTripEvent"],"responses":{"201":{"description":"UserTripEvent resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTripEvent.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a UserTripEvent resource.","description":"Creates a UserTripEvent resource.","parameters":[],"requestBody":{"description":"The new UserTripEvent resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTripEvent.jsonld"}}},"required":true},"deprecated":false}},"\/api\/user_trip_events\/{id}":{"get":{"operationId":"api_user_trip_events_id_get","tags":["UserTripEvent"],"responses":{"200":{"description":"UserTripEvent resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTripEvent.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a UserTripEvent resource.","description":"Retrieves a UserTripEvent resource.","parameters":[{"name":"id","in":"path","description":"UserTripEvent identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_user_trip_events_id_delete","tags":["UserTripEvent"],"responses":{"204":{"description":"UserTripEvent resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the UserTripEvent resource.","description":"Removes the UserTripEvent resource.","parameters":[{"name":"id","in":"path","description":"UserTripEvent identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_user_trip_events_id_patch","tags":["UserTripEvent"],"responses":{"200":{"description":"UserTripEvent resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTripEvent.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the UserTripEvent resource.","description":"Updates the UserTripEvent resource.","parameters":[{"name":"id","in":"path","description":"UserTripEvent identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated UserTripEvent resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/UserTripEvent"}}},"required":true},"deprecated":false}},"\/api\/vessels":{"get":{"operationId":"api_vessels_get_collection","tags":["Vessel"],"responses":{"200":{"description":"Vessel collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/Vessel.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of Vessel resources.","description":"Retrieves the collection of Vessel resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"name","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_vessels_post","tags":["Vessel"],"responses":{"201":{"description":"Vessel resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Vessel.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a Vessel resource.","description":"Creates a Vessel resource.","parameters":[],"requestBody":{"description":"The new Vessel resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Vessel.jsonld"}}},"required":true},"deprecated":false}},"\/api\/vessels\/{id}":{"get":{"operationId":"api_vessels_id_get","tags":["Vessel"],"responses":{"200":{"description":"Vessel resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Vessel.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a Vessel resource.","description":"Retrieves a Vessel resource.","parameters":[{"name":"id","in":"path","description":"Vessel identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_vessels_id_delete","tags":["Vessel"],"responses":{"204":{"description":"Vessel resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the Vessel resource.","description":"Removes the Vessel resource.","parameters":[{"name":"id","in":"path","description":"Vessel identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_vessels_id_patch","tags":["Vessel"],"responses":{"200":{"description":"Vessel resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Vessel.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the Vessel resource.","description":"Updates the Vessel resource.","parameters":[{"name":"id","in":"path","description":"Vessel identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated Vessel resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/Vessel"}}},"required":true},"deprecated":false}},"\/api\/zones":{"get":{"operationId":"api_zones_get_collection","tags":["Zone"],"responses":{"200":{"description":"Zone collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/Zone.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of Zone resources.","description":"Retrieves the collection of Zone resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"name","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_zones_post","tags":["Zone"],"responses":{"201":{"description":"Zone resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Zone.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a Zone resource.","description":"Creates a Zone resource.","parameters":[],"requestBody":{"description":"The new Zone resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Zone.jsonld"}}},"required":true},"deprecated":false}},"\/api\/zones\/{id}":{"get":{"operationId":"api_zones_id_get","tags":["Zone"],"responses":{"200":{"description":"Zone resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Zone.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a Zone resource.","description":"Retrieves a Zone resource.","parameters":[{"name":"id","in":"path","description":"Zone identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_zones_id_delete","tags":["Zone"],"responses":{"204":{"description":"Zone resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the Zone resource.","description":"Removes the Zone resource.","parameters":[{"name":"id","in":"path","description":"Zone identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_zones_id_patch","tags":["Zone"],"responses":{"200":{"description":"Zone resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Zone.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the Zone resource.","description":"Updates the Zone resource.","parameters":[{"name":"id","in":"path","description":"Zone identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated Zone resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/Zone"}}},"required":true},"deprecated":false}}},"components":{"schemas":{"ConstraintViolation-json":{"type":"object","description":"Unprocessable entity","deprecated":false,"properties":{"status":{"default":422,"example":422,"type":"integer"},"violations":{"type":"array","items":{"type":"object","properties":{"propertyPath":{"type":"string","description":"The property path of the violation"},"message":{"type":"string","description":"The message associated with the violation"}}}},"detail":{"readOnly":true,"type":"string"},"type":{"readOnly":true,"type":"string"},"title":{"readOnly":true,"type":["string","null"]},"instance":{"readOnly":true,"type":["string","null"]}}},"ConstraintViolation.jsonld-jsonld":{"type":"object","description":"Unprocessable entity","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"status":{"default":422,"example":422,"type":"integer"},"violations":{"type":"array","items":{"type":"object","properties":{"propertyPath":{"type":"string","description":"The property path of the violation"},"message":{"type":"string","description":"The message associated with the violation"}}}},"detail":{"readOnly":true,"type":"string"},"description":{"readOnly":true,"type":"string"},"type":{"readOnly":true,"type":"string"},"title":{"readOnly":true,"type":["string","null"]},"instance":{"readOnly":true,"type":["string","null"]}}},"Error":{"type":"object","description":"A representation of common errors.","deprecated":false,"properties":{"title":{"readOnly":true,"description":"A short, human-readable summary of the problem.","type":["string","null"]},"detail":{"readOnly":true,"description":"A human-readable explanation specific to this occurrence of the problem.","type":["string","null"]},"status":{"type":"number","example":404,"default":400},"instance":{"readOnly":true,"description":"A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.","type":["string","null"]},"type":{"readOnly":true,"description":"A URI reference that identifies the problem type","type":"string"}}},"Error.jsonld":{"type":"object","description":"A representation of common errors.","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"title":{"readOnly":true,"description":"A short, human-readable summary of the problem.","type":["string","null"]},"detail":{"readOnly":true,"description":"A human-readable explanation specific to this occurrence of the problem.","type":["string","null"]},"status":{"type":"number","example":404,"default":400},"instance":{"readOnly":true,"description":"A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.","type":["string","null"]},"type":{"readOnly":true,"description":"A URI reference that identifies the problem type","type":"string"},"description":{"readOnly":true,"type":["string","null"]}}},"Event.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"identifier":{"type":"string"},"sequence":{"type":"integer"},"mandatory":{"type":"boolean"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}}},"Location":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"zone":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"zoneIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"name":{"type":"string"},"code":{"type":"string"},"zoneName":{"readOnly":true,"type":"string"},"isZone":{"type":"boolean"},"isPlace":{"type":"boolean"},"isPort":{"type":"boolean"},"isStartEnd":{"type":"boolean"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["zoneIri","name","code"]},"Location.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"zone":{"readOnly":true,"$ref":"#\/components\/schemas\/Zone.jsonld"},"zoneIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"name":{"type":"string"},"code":{"type":"string"},"zoneName":{"readOnly":true,"type":"string"},"isZone":{"type":"boolean"},"isPlace":{"type":"boolean"},"isPort":{"type":"boolean"},"isStartEnd":{"type":"boolean"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["zoneIri","name","code"]},"MediaObject.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"contentUrl":{"externalDocs":{"url":"https:\/\/schema.org\/contentUrl"},"type":["string","null"]},"filePath":{"readOnly":true,"type":["string","null"]},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}}},"ShippingCompany":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"code":{"type":"string"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["name","code"]},"ShippingCompany.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"code":{"type":"string"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["name","code"]},"Trip":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"vessel":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"vesselIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"pilotageReference":{"readOnly":true,"type":["string","null"]},"startLocation":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"startLocationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"endLocation":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"endLocationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"startDate":{"type":"string","format":"date-time"},"endDate":{"type":"string","format":"date-time"},"note":{"type":["string","null"]},"completed":{"type":"boolean"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["vesselIri","startLocationIri","endLocationIri","startDate","endDate"]},"Trip.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"vessel":{"readOnly":true,"$ref":"#\/components\/schemas\/Vessel.jsonld"},"vesselIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"pilotageReference":{"readOnly":true,"type":["string","null"]},"startLocation":{"readOnly":true,"$ref":"#\/components\/schemas\/Location.jsonld"},"startLocationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"endLocation":{"readOnly":true,"$ref":"#\/components\/schemas\/Location.jsonld"},"endLocationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"startDate":{"type":"string","format":"date-time"},"endDate":{"type":"string","format":"date-time"},"note":{"type":["string","null"]},"completed":{"type":"boolean"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["vesselIri","startLocationIri","endLocationIri","startDate","endDate"]},"TripLocation":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"trip":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"tripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"location":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"locationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"arrivalDateTime":{"type":["string","null"],"format":"date-time"},"departureDateTime":{"type":["string","null"],"format":"date-time"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["tripIri","locationIri"]},"TripLocation.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"trip":{"readOnly":true,"$ref":"#\/components\/schemas\/Trip.jsonld"},"tripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"location":{"readOnly":true,"$ref":"#\/components\/schemas\/Location.jsonld"},"locationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"arrivalDateTime":{"type":["string","null"],"format":"date-time"},"departureDateTime":{"type":["string","null"],"format":"date-time"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["tripIri","locationIri"]},"User":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"email":{"format":"email","externalDocs":{"url":"https:\/\/schema.org\/email"},"type":"string"},"firstName":{"type":"string"},"referenceId":{"type":"string"},"lastName":{"type":"string"},"image":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"imageIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"imageUrl":{"readOnly":true,"type":["string","null"]},"fullName":{"readOnly":true,"type":["string","null"]},"password":{"writeOnly":true,"description":"The plaintext password when being set or changed.","type":["string","null"]},"isAdmin":{"type":"boolean"},"active":{"type":"boolean"},"isPilot":{"type":"boolean"},"roles":{"readOnly":true,"type":"array","items":{"type":"string"}},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["email","firstName","referenceId","lastName","isAdmin","active","isPilot"]},"User.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"email":{"format":"email","externalDocs":{"url":"https:\/\/schema.org\/email"},"type":"string"},"firstName":{"type":"string"},"referenceId":{"type":"string"},"lastName":{"type":"string"},"image":{"readOnly":true,"$ref":"#\/components\/schemas\/MediaObject.jsonld"},"imageIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"imageUrl":{"readOnly":true,"type":["string","null"]},"fullName":{"readOnly":true,"type":["string","null"]},"password":{"writeOnly":true,"description":"The plaintext password when being set or changed.","type":["string","null"]},"isAdmin":{"type":"boolean"},"active":{"type":"boolean"},"isPilot":{"type":"boolean"},"roles":{"readOnly":true,"type":"array","items":{"type":"string"}},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["email","firstName","referenceId","lastName","isAdmin","active","isPilot"]},"UserTrip":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"trip":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"tripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"user":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"userIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"captainName":{"type":["string","null"]},"completed":{"type":"boolean"},"approved":{"type":"boolean"},"signature":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"signatureIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"signatureUrl":{"readOnly":true,"type":["string","null"]},"completedDate":{"type":["string","null"],"format":"date-time"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["tripIri","userIri","completed","approved"]},"UserTrip.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"trip":{"readOnly":true,"$ref":"#\/components\/schemas\/Trip.jsonld"},"tripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"user":{"readOnly":true,"$ref":"#\/components\/schemas\/User.jsonld"},"userIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"captainName":{"type":["string","null"]},"completed":{"type":"boolean"},"approved":{"type":"boolean"},"signature":{"readOnly":true,"$ref":"#\/components\/schemas\/MediaObject.jsonld"},"signatureIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"signatureUrl":{"readOnly":true,"type":["string","null"]},"completedDate":{"type":["string","null"],"format":"date-time"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["tripIri","userIri","completed","approved"]},"UserTripEvent":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"userTrip":{"readOnly":true,"$ref":"#\/components\/schemas\/UserTrip"},"userTripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"event":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"eventIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"location":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"locationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"user":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"date":{"type":"string","format":"date-time"},"note":{"type":["string","null"]},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["userTripIri","eventIri","locationIri","date"]},"UserTripEvent.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"userTrip":{"readOnly":true,"$ref":"#\/components\/schemas\/UserTrip.jsonld"},"userTripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"event":{"readOnly":true,"$ref":"#\/components\/schemas\/Event.jsonld"},"eventIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"location":{"readOnly":true,"$ref":"#\/components\/schemas\/Location.jsonld"},"locationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"user":{"readOnly":true,"$ref":"#\/components\/schemas\/User.jsonld"},"date":{"type":"string","format":"date-time"},"note":{"type":["string","null"]},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["userTripIri","eventIri","locationIri","date"]},"Vessel":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"code":{"type":"string"},"company":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"companyIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"length":{"type":["number","null"]},"breadth":{"type":["number","null"]},"draft":{"type":["number","null"]},"grossTonnage":{"type":["number","null"]},"imoNo":{"type":["string","null"]},"callSign":{"type":["string","null"]},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["name","code","companyIri"]},"Vessel.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"code":{"type":"string"},"company":{"readOnly":true,"$ref":"#\/components\/schemas\/ShippingCompany.jsonld"},"companyIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"length":{"type":["number","null"]},"breadth":{"type":["number","null"]},"draft":{"type":["number","null"]},"grossTonnage":{"type":["number","null"]},"imoNo":{"type":["string","null"]},"callSign":{"type":["string","null"]},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["name","code","companyIri"]},"Zone":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["name"]},"Zone.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["name"]},"Credentials":{"type":"object","properties":{"email":{"type":"string","example":"user@example.com"},"password":{"type":"string","example":"password123"}}},"AuthResponse":{"type":"object","properties":{"@id":{"type":"string","example":"\/api\/users\/1"},"dbId":{"type":"integer","example":1},"token":{"type":"string","example":"JWT_TOKEN"}}}},"responses":{},"parameters":{},"examples":{},"requestBodies":{},"headers":{},"securitySchemes":{"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"security":[{"JWT":[]}],"tags":[{"name":"Event"},{"name":"Location"},{"name":"MediaObject"},{"name":"ShippingCompany"},{"name":"Trip"},{"name":"TripLocation"},{"name":"User"},{"name":"UserTrip"},{"name":"UserTripEvent"},{"name":"Vessel"},{"name":"Zone"}],"webhooks":{}} \ No newline at end of file +{"openapi":"3.1.0","info":{"title":"Imaq Platform","description":"","version":"1.0.0"},"servers":[{"url":"\/","description":""}],"paths":{"\/api\/auth":{"post":{"operationId":"postCredentialsItem","tags":["Auth"],"responses":{"200":{"description":"Get JWT token","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AuthResponse"}}}}},"summary":"Get JWT token to login.","requestBody":{"description":"Generate new JWT Token","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Credentials"}}},"required":false},"security":[]}},"\/api\/events":{"get":{"operationId":"api_events_get_collection","tags":["Event"],"responses":{"200":{"description":"Event collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/Event.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of Event resources.","description":"Retrieves the collection of Event resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"name","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false}},"\/api\/events\/{id}":{"get":{"operationId":"api_events_id_get","tags":["Event"],"responses":{"200":{"description":"Event resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Event.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a Event resource.","description":"Retrieves a Event resource.","parameters":[{"name":"id","in":"path","description":"Event identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false}},"\/api\/locations":{"get":{"operationId":"api_locations_get_collection","tags":["Location"],"responses":{"200":{"description":"Location collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/Location.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of Location resources.","description":"Retrieves the collection of Location resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"locationNameCodeSearch","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_locations_post","tags":["Location"],"responses":{"201":{"description":"Location resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Location.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a Location resource.","description":"Creates a Location resource.","parameters":[],"requestBody":{"description":"The new Location resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Location.jsonld"}}},"required":true},"deprecated":false}},"\/api\/locations\/{id}":{"get":{"operationId":"api_locations_id_get","tags":["Location"],"responses":{"200":{"description":"Location resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Location.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a Location resource.","description":"Retrieves a Location resource.","parameters":[{"name":"id","in":"path","description":"Location identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_locations_id_delete","tags":["Location"],"responses":{"204":{"description":"Location resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the Location resource.","description":"Removes the Location resource.","parameters":[{"name":"id","in":"path","description":"Location identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_locations_id_patch","tags":["Location"],"responses":{"200":{"description":"Location resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Location.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the Location resource.","description":"Updates the Location resource.","parameters":[{"name":"id","in":"path","description":"Location identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated Location resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/Location"}}},"required":true},"deprecated":false}},"\/api\/media_objects":{"get":{"operationId":"api_media_objects_get_collection","tags":["MediaObject"],"responses":{"200":{"description":"MediaObject collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/MediaObject.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of MediaObject resources.","description":"Retrieves the collection of MediaObject resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_media_objects_post","tags":["MediaObject"],"responses":{"201":{"description":"MediaObject resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/MediaObject.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a MediaObject resource.","description":"Creates a MediaObject resource.","parameters":[],"requestBody":{"description":"The new MediaObject resource","content":{"multipart\/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}},"required":false},"deprecated":false}},"\/api\/media_objects\/{id}":{"get":{"operationId":"api_media_objects_id_get","tags":["MediaObject"],"responses":{"200":{"description":"MediaObject resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/MediaObject.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a MediaObject resource.","description":"Retrieves a MediaObject resource.","parameters":[{"name":"id","in":"path","description":"MediaObject identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_media_objects_id_delete","tags":["MediaObject"],"responses":{"204":{"description":"MediaObject resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the MediaObject resource.","description":"Removes the MediaObject resource.","parameters":[{"name":"id","in":"path","description":"MediaObject identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false}},"\/api\/shipping_companies":{"get":{"operationId":"api_shipping_companies_get_collection","tags":["ShippingCompany"],"responses":{"200":{"description":"ShippingCompany collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/ShippingCompany.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of ShippingCompany resources.","description":"Retrieves the collection of ShippingCompany resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"name","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_shipping_companies_post","tags":["ShippingCompany"],"responses":{"201":{"description":"ShippingCompany resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ShippingCompany.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a ShippingCompany resource.","description":"Creates a ShippingCompany resource.","parameters":[],"requestBody":{"description":"The new ShippingCompany resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ShippingCompany.jsonld"}}},"required":true},"deprecated":false}},"\/api\/shipping_companies\/{id}":{"get":{"operationId":"api_shipping_companies_id_get","tags":["ShippingCompany"],"responses":{"200":{"description":"ShippingCompany resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ShippingCompany.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a ShippingCompany resource.","description":"Retrieves a ShippingCompany resource.","parameters":[{"name":"id","in":"path","description":"ShippingCompany identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_shipping_companies_id_delete","tags":["ShippingCompany"],"responses":{"204":{"description":"ShippingCompany resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the ShippingCompany resource.","description":"Removes the ShippingCompany resource.","parameters":[{"name":"id","in":"path","description":"ShippingCompany identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_shipping_companies_id_patch","tags":["ShippingCompany"],"responses":{"200":{"description":"ShippingCompany resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ShippingCompany.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the ShippingCompany resource.","description":"Updates the ShippingCompany resource.","parameters":[{"name":"id","in":"path","description":"ShippingCompany identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated ShippingCompany resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/ShippingCompany"}}},"required":true},"deprecated":false}},"\/api\/trips":{"get":{"operationId":"api_trips_get_collection","tags":["Trip"],"responses":{"200":{"description":"Trip collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/Trip.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of Trip resources.","description":"Retrieves the collection of Trip resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"id","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"integer"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_trips_post","tags":["Trip"],"responses":{"201":{"description":"Trip resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Trip.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a Trip resource.","description":"Creates a Trip resource.","parameters":[],"requestBody":{"description":"The new Trip resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Trip.jsonld"}}},"required":true},"deprecated":false}},"\/api\/trips\/{id}":{"get":{"operationId":"api_trips_id_get","tags":["Trip"],"responses":{"200":{"description":"Trip resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Trip.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a Trip resource.","description":"Retrieves a Trip resource.","parameters":[{"name":"id","in":"path","description":"Trip identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_trips_id_delete","tags":["Trip"],"responses":{"204":{"description":"Trip resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the Trip resource.","description":"Removes the Trip resource.","parameters":[{"name":"id","in":"path","description":"Trip identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_trips_id_patch","tags":["Trip"],"responses":{"200":{"description":"Trip resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Trip.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the Trip resource.","description":"Updates the Trip resource.","parameters":[{"name":"id","in":"path","description":"Trip identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated Trip resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/Trip"}}},"required":true},"deprecated":false}},"\/api\/trip_locations":{"get":{"operationId":"api_trip_locations_get_collection","tags":["TripLocation"],"responses":{"200":{"description":"TripLocation collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/TripLocation.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of TripLocation resources.","description":"Retrieves the collection of TripLocation resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"trip","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"trip[]","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_trip_locations_post","tags":["TripLocation"],"responses":{"201":{"description":"TripLocation resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/TripLocation.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a TripLocation resource.","description":"Creates a TripLocation resource.","parameters":[],"requestBody":{"description":"The new TripLocation resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/TripLocation.jsonld"}}},"required":true},"deprecated":false}},"\/api\/trip_locations\/{id}":{"get":{"operationId":"api_trip_locations_id_get","tags":["TripLocation"],"responses":{"200":{"description":"TripLocation resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/TripLocation.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a TripLocation resource.","description":"Retrieves a TripLocation resource.","parameters":[{"name":"id","in":"path","description":"TripLocation identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_trip_locations_id_delete","tags":["TripLocation"],"responses":{"204":{"description":"TripLocation resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the TripLocation resource.","description":"Removes the TripLocation resource.","parameters":[{"name":"id","in":"path","description":"TripLocation identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_trip_locations_id_patch","tags":["TripLocation"],"responses":{"200":{"description":"TripLocation resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/TripLocation.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the TripLocation resource.","description":"Updates the TripLocation resource.","parameters":[{"name":"id","in":"path","description":"TripLocation identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated TripLocation resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/TripLocation"}}},"required":true},"deprecated":false}},"\/api\/users":{"get":{"operationId":"api_users_get_collection","tags":["User"],"responses":{"200":{"description":"User collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/User.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of User resources.","description":"Retrieves the collection of User resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"firstName","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"lastName","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"userNameSearch","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_users_post","tags":["User"],"responses":{"201":{"description":"User resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/User.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a User resource.","description":"Creates a User resource.","parameters":[],"requestBody":{"description":"The new User resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/User.jsonld"}}},"required":true},"deprecated":false}},"\/api\/users\/{id}":{"get":{"operationId":"api_users_id_get","tags":["User"],"responses":{"200":{"description":"User resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/User.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a User resource.","description":"Retrieves a User resource.","parameters":[{"name":"id","in":"path","description":"User identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_users_id_delete","tags":["User"],"responses":{"204":{"description":"User resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the User resource.","description":"Removes the User resource.","parameters":[{"name":"id","in":"path","description":"User identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_users_id_patch","tags":["User"],"responses":{"200":{"description":"User resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/User.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the User resource.","description":"Updates the User resource.","parameters":[{"name":"id","in":"path","description":"User identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated User resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/User"}}},"required":true},"deprecated":false}},"\/api\/user_trips":{"get":{"operationId":"api_user_trips_get_collection","tags":["UserTrip"],"responses":{"200":{"description":"UserTrip collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/UserTrip.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of UserTrip resources.","description":"Retrieves the collection of UserTrip resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"trip","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"trip[]","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true,"allowReserved":false},{"name":"user","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"user[]","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_user_trips_post","tags":["UserTrip"],"responses":{"201":{"description":"UserTrip resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTrip.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a UserTrip resource.","description":"Creates a UserTrip resource.","parameters":[],"requestBody":{"description":"The new UserTrip resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTrip.jsonld"}}},"required":true},"deprecated":false}},"\/api\/user_trips\/{id}":{"get":{"operationId":"api_user_trips_id_get","tags":["UserTrip"],"responses":{"200":{"description":"UserTrip resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTrip.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a UserTrip resource.","description":"Retrieves a UserTrip resource.","parameters":[{"name":"id","in":"path","description":"UserTrip identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_user_trips_id_delete","tags":["UserTrip"],"responses":{"204":{"description":"UserTrip resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the UserTrip resource.","description":"Removes the UserTrip resource.","parameters":[{"name":"id","in":"path","description":"UserTrip identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_user_trips_id_patch","tags":["UserTrip"],"responses":{"200":{"description":"UserTrip resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTrip.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the UserTrip resource.","description":"Updates the UserTrip resource.","parameters":[{"name":"id","in":"path","description":"UserTrip identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated UserTrip resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/UserTrip"}}},"required":true},"deprecated":false}},"\/api\/user_trip_events":{"get":{"operationId":"api_user_trip_events_get_collection","tags":["UserTripEvent"],"responses":{"200":{"description":"UserTripEvent collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/UserTripEvent.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of UserTripEvent resources.","description":"Retrieves the collection of UserTripEvent resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"userTrip","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"userTrip[]","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true,"allowReserved":false},{"name":"tripId","in":"query","description":"Filter UserTripEvents by Trip ID","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"integer"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_user_trip_events_post","tags":["UserTripEvent"],"responses":{"201":{"description":"UserTripEvent resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTripEvent.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a UserTripEvent resource.","description":"Creates a UserTripEvent resource.","parameters":[],"requestBody":{"description":"The new UserTripEvent resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTripEvent.jsonld"}}},"required":true},"deprecated":false}},"\/api\/user_trip_events\/{id}":{"get":{"operationId":"api_user_trip_events_id_get","tags":["UserTripEvent"],"responses":{"200":{"description":"UserTripEvent resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTripEvent.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a UserTripEvent resource.","description":"Retrieves a UserTripEvent resource.","parameters":[{"name":"id","in":"path","description":"UserTripEvent identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_user_trip_events_id_delete","tags":["UserTripEvent"],"responses":{"204":{"description":"UserTripEvent resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the UserTripEvent resource.","description":"Removes the UserTripEvent resource.","parameters":[{"name":"id","in":"path","description":"UserTripEvent identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_user_trip_events_id_patch","tags":["UserTripEvent"],"responses":{"200":{"description":"UserTripEvent resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserTripEvent.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the UserTripEvent resource.","description":"Updates the UserTripEvent resource.","parameters":[{"name":"id","in":"path","description":"UserTripEvent identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated UserTripEvent resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/UserTripEvent"}}},"required":true},"deprecated":false}},"\/api\/user_zones":{"get":{"operationId":"api_user_zones_get_collection","tags":["UserZone"],"responses":{"200":{"description":"UserZone collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/UserZone.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of UserZone resources.","description":"Retrieves the collection of UserZone resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"user","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"user[]","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true,"allowReserved":false},{"name":"zone","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"zone[]","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"array","items":{"type":"string"}},"style":"form","explode":true,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_user_zones_post","tags":["UserZone"],"responses":{"201":{"description":"UserZone resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserZone.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a UserZone resource.","description":"Creates a UserZone resource.","parameters":[],"requestBody":{"description":"The new UserZone resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserZone.jsonld"}}},"required":true},"deprecated":false}},"\/api\/user_zones\/{id}":{"get":{"operationId":"api_user_zones_id_get","tags":["UserZone"],"responses":{"200":{"description":"UserZone resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserZone.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a UserZone resource.","description":"Retrieves a UserZone resource.","parameters":[{"name":"id","in":"path","description":"UserZone identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_user_zones_id_delete","tags":["UserZone"],"responses":{"204":{"description":"UserZone resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the UserZone resource.","description":"Removes the UserZone resource.","parameters":[{"name":"id","in":"path","description":"UserZone identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_user_zones_id_patch","tags":["UserZone"],"responses":{"200":{"description":"UserZone resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/UserZone.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the UserZone resource.","description":"Updates the UserZone resource.","parameters":[{"name":"id","in":"path","description":"UserZone identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated UserZone resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/UserZone"}}},"required":true},"deprecated":false}},"\/api\/vessels":{"get":{"operationId":"api_vessels_get_collection","tags":["Vessel"],"responses":{"200":{"description":"Vessel collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/Vessel.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of Vessel resources.","description":"Retrieves the collection of Vessel resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"name","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_vessels_post","tags":["Vessel"],"responses":{"201":{"description":"Vessel resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Vessel.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a Vessel resource.","description":"Creates a Vessel resource.","parameters":[],"requestBody":{"description":"The new Vessel resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Vessel.jsonld"}}},"required":true},"deprecated":false}},"\/api\/vessels\/{id}":{"get":{"operationId":"api_vessels_id_get","tags":["Vessel"],"responses":{"200":{"description":"Vessel resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Vessel.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a Vessel resource.","description":"Retrieves a Vessel resource.","parameters":[{"name":"id","in":"path","description":"Vessel identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_vessels_id_delete","tags":["Vessel"],"responses":{"204":{"description":"Vessel resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the Vessel resource.","description":"Removes the Vessel resource.","parameters":[{"name":"id","in":"path","description":"Vessel identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_vessels_id_patch","tags":["Vessel"],"responses":{"200":{"description":"Vessel resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Vessel.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the Vessel resource.","description":"Updates the Vessel resource.","parameters":[{"name":"id","in":"path","description":"Vessel identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated Vessel resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/Vessel"}}},"required":true},"deprecated":false}},"\/api\/zones":{"get":{"operationId":"api_zones_get_collection","tags":["Zone"],"responses":{"200":{"description":"Zone collection","content":{"application\/ld+json":{"schema":{"type":"object","properties":{"member":{"type":"array","items":{"$ref":"#\/components\/schemas\/Zone.jsonld"}},"totalItems":{"type":"integer","minimum":0},"view":{"type":"object","properties":{"@id":{"type":"string","format":"iri-reference"},"@type":{"type":"string"},"first":{"type":"string","format":"iri-reference"},"last":{"type":"string","format":"iri-reference"},"previous":{"type":"string","format":"iri-reference"},"next":{"type":"string","format":"iri-reference"}},"example":{"@id":"string","type":"string","first":"string","last":"string","previous":"string","next":"string"}},"search":{"type":"object","properties":{"@type":{"type":"string"},"template":{"type":"string"},"variableRepresentation":{"type":"string"},"mapping":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string"},"variable":{"type":"string"},"property":{"type":["string","null"]},"required":{"type":"boolean"}}}}}}},"required":["member"]}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves the collection of Zone resources.","description":"Retrieves the collection of Zone resources.","parameters":[{"name":"page","in":"query","description":"The collection page number","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":1},"style":"form","explode":false,"allowReserved":false},{"name":"itemsPerPage","in":"query","description":"The number of items per page","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"integer","default":50,"minimum":0,"maximum":200},"style":"form","explode":false,"allowReserved":false},{"name":"name","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_filter","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":true,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false}],"deprecated":false},"post":{"operationId":"api_zones_post","tags":["Zone"],"responses":{"201":{"description":"Zone resource created","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Zone.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Creates a Zone resource.","description":"Creates a Zone resource.","parameters":[],"requestBody":{"description":"The new Zone resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Zone.jsonld"}}},"required":true},"deprecated":false}},"\/api\/zones\/{id}":{"get":{"operationId":"api_zones_id_get","tags":["Zone"],"responses":{"200":{"description":"Zone resource","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Zone.jsonld"}}}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Retrieves a Zone resource.","description":"Retrieves a Zone resource.","parameters":[{"name":"id","in":"path","description":"Zone identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"delete":{"operationId":"api_zones_id_delete","tags":["Zone"],"responses":{"204":{"description":"Zone resource deleted"},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Removes the Zone resource.","description":"Removes the Zone resource.","parameters":[{"name":"id","in":"path","description":"Zone identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"deprecated":false},"patch":{"operationId":"api_zones_id_patch","tags":["Zone"],"responses":{"200":{"description":"Zone resource updated","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Zone.jsonld"}}},"links":{}},"400":{"description":"Invalid input","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"422":{"description":"An error occurred","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation.jsonld-jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ConstraintViolation-json"}}},"links":{}},"403":{"description":"Forbidden","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}},"404":{"description":"Not found","content":{"application\/ld+json":{"schema":{"$ref":"#\/components\/schemas\/Error.jsonld"}},"application\/problem+json":{"schema":{"$ref":"#\/components\/schemas\/Error"}},"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}},"links":{}}},"summary":"Updates the Zone resource.","description":"Updates the Zone resource.","parameters":[{"name":"id","in":"path","description":"Zone identifier","required":true,"deprecated":false,"allowEmptyValue":false,"schema":{"type":"string"},"style":"simple","explode":false,"allowReserved":false}],"requestBody":{"description":"The updated Zone resource","content":{"application\/merge-patch+json":{"schema":{"$ref":"#\/components\/schemas\/Zone"}}},"required":true},"deprecated":false}}},"components":{"schemas":{"ConstraintViolation-json":{"type":"object","description":"Unprocessable entity","deprecated":false,"properties":{"status":{"default":422,"example":422,"type":"integer"},"violations":{"type":"array","items":{"type":"object","properties":{"propertyPath":{"type":"string","description":"The property path of the violation"},"message":{"type":"string","description":"The message associated with the violation"}}}},"detail":{"readOnly":true,"type":"string"},"type":{"readOnly":true,"type":"string"},"title":{"readOnly":true,"type":["string","null"]},"instance":{"readOnly":true,"type":["string","null"]}}},"ConstraintViolation.jsonld-jsonld":{"type":"object","description":"Unprocessable entity","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"status":{"default":422,"example":422,"type":"integer"},"violations":{"type":"array","items":{"type":"object","properties":{"propertyPath":{"type":"string","description":"The property path of the violation"},"message":{"type":"string","description":"The message associated with the violation"}}}},"detail":{"readOnly":true,"type":"string"},"description":{"readOnly":true,"type":"string"},"type":{"readOnly":true,"type":"string"},"title":{"readOnly":true,"type":["string","null"]},"instance":{"readOnly":true,"type":["string","null"]}}},"Error":{"type":"object","description":"A representation of common errors.","deprecated":false,"properties":{"title":{"readOnly":true,"description":"A short, human-readable summary of the problem.","type":["string","null"]},"detail":{"readOnly":true,"description":"A human-readable explanation specific to this occurrence of the problem.","type":["string","null"]},"status":{"type":"number","example":404,"default":400},"instance":{"readOnly":true,"description":"A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.","type":["string","null"]},"type":{"readOnly":true,"description":"A URI reference that identifies the problem type","type":"string"}}},"Error.jsonld":{"type":"object","description":"A representation of common errors.","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"title":{"readOnly":true,"description":"A short, human-readable summary of the problem.","type":["string","null"]},"detail":{"readOnly":true,"description":"A human-readable explanation specific to this occurrence of the problem.","type":["string","null"]},"status":{"type":"number","example":404,"default":400},"instance":{"readOnly":true,"description":"A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.","type":["string","null"]},"type":{"readOnly":true,"description":"A URI reference that identifies the problem type","type":"string"},"description":{"readOnly":true,"type":["string","null"]}}},"Event.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"identifier":{"type":"string"},"sequence":{"type":"integer"},"mandatory":{"type":"boolean"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}}},"Location":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"zone":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"zoneIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"name":{"type":"string"},"code":{"type":"string"},"zoneName":{"readOnly":true,"type":"string"},"isZone":{"type":"boolean"},"isPlace":{"type":"boolean"},"isPort":{"type":"boolean"},"isStartEnd":{"type":"boolean"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["zoneIri","name","code"]},"Location.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"zone":{"readOnly":true,"$ref":"#\/components\/schemas\/Zone.jsonld"},"zoneIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"name":{"type":"string"},"code":{"type":"string"},"zoneName":{"readOnly":true,"type":"string"},"isZone":{"type":"boolean"},"isPlace":{"type":"boolean"},"isPort":{"type":"boolean"},"isStartEnd":{"type":"boolean"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["zoneIri","name","code"]},"MediaObject.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"contentUrl":{"externalDocs":{"url":"https:\/\/schema.org\/contentUrl"},"type":["string","null"]},"filePath":{"readOnly":true,"type":["string","null"]},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}}},"ShippingCompany":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"code":{"type":"string"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["name","code"]},"ShippingCompany.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"code":{"type":"string"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["name","code"]},"Trip":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"vessel":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"vesselIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"pilotageReference":{"readOnly":true,"type":["string","null"]},"startLocation":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"startLocationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"endLocation":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"endLocationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"startDate":{"type":"string","format":"date-time"},"endDate":{"type":"string","format":"date-time"},"note":{"type":["string","null"]},"completed":{"type":"boolean"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["vesselIri","startLocationIri","endLocationIri","startDate","endDate"]},"Trip.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"vessel":{"readOnly":true,"$ref":"#\/components\/schemas\/Vessel.jsonld"},"vesselIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"pilotageReference":{"readOnly":true,"type":["string","null"]},"startLocation":{"readOnly":true,"$ref":"#\/components\/schemas\/Location.jsonld"},"startLocationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"endLocation":{"readOnly":true,"$ref":"#\/components\/schemas\/Location.jsonld"},"endLocationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"startDate":{"type":"string","format":"date-time"},"endDate":{"type":"string","format":"date-time"},"note":{"type":["string","null"]},"completed":{"type":"boolean"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["vesselIri","startLocationIri","endLocationIri","startDate","endDate"]},"TripLocation":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"trip":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"tripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"location":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"locationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"arrivalDateTime":{"type":["string","null"],"format":"date-time"},"departureDateTime":{"type":["string","null"],"format":"date-time"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["tripIri","locationIri"]},"TripLocation.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"trip":{"readOnly":true,"$ref":"#\/components\/schemas\/Trip.jsonld"},"tripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"location":{"readOnly":true,"$ref":"#\/components\/schemas\/Location.jsonld"},"locationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"arrivalDateTime":{"type":["string","null"],"format":"date-time"},"departureDateTime":{"type":["string","null"],"format":"date-time"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["tripIri","locationIri"]},"User":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"email":{"format":"email","externalDocs":{"url":"https:\/\/schema.org\/email"},"type":"string"},"firstName":{"type":"string"},"referenceId":{"type":"string"},"lastName":{"type":"string"},"image":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"imageIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"imageUrl":{"readOnly":true,"type":["string","null"]},"fullName":{"readOnly":true,"type":["string","null"]},"password":{"writeOnly":true,"description":"The plaintext password when being set or changed.","type":["string","null"]},"isAdmin":{"type":"boolean"},"active":{"type":"boolean"},"isPilot":{"type":"boolean"},"roles":{"readOnly":true,"type":"array","items":{"type":"string"}},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["email","firstName","referenceId","lastName","isAdmin","active","isPilot"]},"User.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"email":{"format":"email","externalDocs":{"url":"https:\/\/schema.org\/email"},"type":"string"},"firstName":{"type":"string"},"referenceId":{"type":"string"},"lastName":{"type":"string"},"image":{"readOnly":true,"$ref":"#\/components\/schemas\/MediaObject.jsonld"},"imageIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"imageUrl":{"readOnly":true,"type":["string","null"]},"fullName":{"readOnly":true,"type":["string","null"]},"password":{"writeOnly":true,"description":"The plaintext password when being set or changed.","type":["string","null"]},"isAdmin":{"type":"boolean"},"active":{"type":"boolean"},"isPilot":{"type":"boolean"},"roles":{"readOnly":true,"type":"array","items":{"type":"string"}},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["email","firstName","referenceId","lastName","isAdmin","active","isPilot"]},"UserTrip":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"trip":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"tripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"user":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"userIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"captainName":{"type":["string","null"]},"completed":{"type":"boolean"},"approved":{"type":"boolean"},"signature":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"signatureIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"signatureUrl":{"readOnly":true,"type":["string","null"]},"completedDate":{"type":["string","null"],"format":"date-time"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["tripIri","userIri","completed","approved"]},"UserTrip.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"trip":{"readOnly":true,"$ref":"#\/components\/schemas\/Trip.jsonld"},"tripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"user":{"readOnly":true,"$ref":"#\/components\/schemas\/User.jsonld"},"userIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"captainName":{"type":["string","null"]},"completed":{"type":"boolean"},"approved":{"type":"boolean"},"signature":{"readOnly":true,"$ref":"#\/components\/schemas\/MediaObject.jsonld"},"signatureIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"signatureUrl":{"readOnly":true,"type":["string","null"]},"completedDate":{"type":["string","null"],"format":"date-time"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["tripIri","userIri","completed","approved"]},"UserTripEvent":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"userTrip":{"readOnly":true,"$ref":"#\/components\/schemas\/UserTrip"},"userTripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"event":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"eventIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"location":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"locationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"user":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"date":{"type":"string","format":"date-time"},"note":{"type":["string","null"]},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["userTripIri","eventIri","locationIri","date"]},"UserTripEvent.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"userTrip":{"readOnly":true,"$ref":"#\/components\/schemas\/UserTrip.jsonld"},"userTripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"event":{"readOnly":true,"$ref":"#\/components\/schemas\/Event.jsonld"},"eventIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"location":{"readOnly":true,"$ref":"#\/components\/schemas\/Location.jsonld"},"locationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"user":{"readOnly":true,"$ref":"#\/components\/schemas\/User.jsonld"},"date":{"type":"string","format":"date-time"},"note":{"type":["string","null"]},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["userTripIri","eventIri","locationIri","date"]},"UserZone":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"user":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"userIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"zone":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"zoneIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"}}},"UserZone.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"user":{"readOnly":true,"$ref":"#\/components\/schemas\/User.jsonld"},"userIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"zone":{"readOnly":true,"$ref":"#\/components\/schemas\/Zone.jsonld"},"zoneIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"}}},"Vessel":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"code":{"type":"string"},"company":{"readOnly":true,"type":"string","format":"iri-reference","example":"https:\/\/example.com\/"},"companyIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"length":{"type":["number","null"]},"breadth":{"type":["number","null"]},"draft":{"type":["number","null"]},"grossTonnage":{"type":["number","null"]},"imoNo":{"type":["string","null"]},"callSign":{"type":["string","null"]},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["name","code","companyIri"]},"Vessel.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"code":{"type":"string"},"company":{"readOnly":true,"$ref":"#\/components\/schemas\/ShippingCompany.jsonld"},"companyIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"length":{"type":["number","null"]},"breadth":{"type":["number","null"]},"draft":{"type":["number","null"]},"grossTonnage":{"type":["number","null"]},"imoNo":{"type":["string","null"]},"callSign":{"type":["string","null"]},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["name","code","companyIri"]},"Zone":{"type":"object","description":"","deprecated":false,"properties":{"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["name"]},"Zone.jsonld":{"type":"object","description":"","deprecated":false,"properties":{"@context":{"readOnly":true,"oneOf":[{"type":"string"},{"type":"object","properties":{"@vocab":{"type":"string"},"hydra":{"type":"string","enum":["http:\/\/www.w3.org\/ns\/hydra\/core#"]}},"required":["@vocab","hydra"],"additionalProperties":true}]},"@id":{"readOnly":true,"type":"string"},"@type":{"readOnly":true,"type":"string"},"dbId":{"readOnly":true,"type":["integer","null"]},"name":{"type":"string"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["name"]},"Credentials":{"type":"object","properties":{"email":{"type":"string","example":"user@example.com"},"password":{"type":"string","example":"password123"}}},"AuthResponse":{"type":"object","properties":{"@id":{"type":"string","example":"\/api\/users\/1"},"dbId":{"type":"integer","example":1},"token":{"type":"string","example":"JWT_TOKEN"}}}},"responses":{},"parameters":{},"examples":{},"requestBodies":{},"headers":{},"securitySchemes":{"JWT":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"security":[{"JWT":[]}],"tags":[{"name":"Event"},{"name":"Location"},{"name":"MediaObject"},{"name":"ShippingCompany"},{"name":"Trip"},{"name":"TripLocation"},{"name":"User"},{"name":"UserTrip"},{"name":"UserTripEvent"},{"name":"UserZone"},{"name":"Vessel"},{"name":"Zone"}],"webhooks":{}} \ No newline at end of file diff --git a/angular/openapi.yaml b/angular/openapi.yaml index 688fae2..66f2115 100644 --- a/angular/openapi.yaml +++ b/angular/openapi.yaml @@ -2984,6 +2984,398 @@ paths: $ref: '#/components/schemas/UserTripEvent' required: true deprecated: false + /api/user_zones: + get: + operationId: api_user_zones_get_collection + tags: + - UserZone + responses: + '200': + description: 'UserZone collection' + content: + application/ld+json: + schema: + type: object + properties: + member: { type: array, items: { $ref: '#/components/schemas/UserZone.jsonld' } } + totalItems: { type: integer, minimum: 0 } + view: { type: object, properties: { '@id': { type: string, format: iri-reference }, '@type': { type: string }, first: { type: string, format: iri-reference }, last: { type: string, format: iri-reference }, previous: { type: string, format: iri-reference }, next: { type: string, format: iri-reference } }, example: { '@id': string, type: string, first: string, last: string, previous: string, next: string } } + search: { type: object, properties: { '@type': { type: string }, template: { type: string }, variableRepresentation: { type: string }, mapping: { type: array, items: { type: object, properties: { '@type': { type: string }, variable: { type: string }, property: { type: [string, 'null'] }, required: { type: boolean } } } } } } + required: + - member + '403': + description: Forbidden + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + application/json: + schema: + $ref: '#/components/schemas/Error' + links: { } + summary: 'Retrieves the collection of UserZone resources.' + description: 'Retrieves the collection of UserZone resources.' + parameters: + - + name: page + in: query + description: 'The collection page number' + required: false + deprecated: false + allowEmptyValue: true + schema: + type: integer + default: 1 + style: form + explode: false + allowReserved: false + - + name: itemsPerPage + in: query + description: 'The number of items per page' + required: false + deprecated: false + allowEmptyValue: true + schema: + type: integer + default: 50 + minimum: 0 + maximum: 200 + style: form + explode: false + allowReserved: false + - + name: user + in: query + description: '' + required: false + deprecated: false + allowEmptyValue: false + schema: + type: string + style: form + explode: false + allowReserved: false + - + name: 'user[]' + in: query + description: '' + required: false + deprecated: false + allowEmptyValue: false + schema: + type: array + items: + type: string + style: form + explode: true + allowReserved: false + - + name: zone + in: query + description: '' + required: false + deprecated: false + allowEmptyValue: false + schema: + type: string + style: form + explode: false + allowReserved: false + - + name: 'zone[]' + in: query + description: '' + required: false + deprecated: false + allowEmptyValue: false + schema: + type: array + items: + type: string + style: form + explode: true + allowReserved: false + - + name: custom_json_filter + in: query + description: '' + required: false + deprecated: false + allowEmptyValue: false + schema: + type: string + style: form + explode: false + allowReserved: false + - + name: custom_json_order + in: query + description: '' + required: false + deprecated: false + allowEmptyValue: true + schema: + type: string + style: form + explode: false + allowReserved: false + deprecated: false + post: + operationId: api_user_zones_post + tags: + - UserZone + responses: + '201': + description: 'UserZone resource created' + content: + application/ld+json: + schema: + $ref: '#/components/schemas/UserZone.jsonld' + links: { } + '400': + description: 'Invalid input' + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + application/json: + schema: + $ref: '#/components/schemas/Error' + links: { } + '422': + description: 'An error occurred' + content: + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + links: { } + '403': + description: Forbidden + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + application/json: + schema: + $ref: '#/components/schemas/Error' + links: { } + summary: 'Creates a UserZone resource.' + description: 'Creates a UserZone resource.' + parameters: [] + requestBody: + description: 'The new UserZone resource' + content: + application/ld+json: + schema: + $ref: '#/components/schemas/UserZone.jsonld' + required: true + deprecated: false + '/api/user_zones/{id}': + get: + operationId: api_user_zones_id_get + tags: + - UserZone + responses: + '200': + description: 'UserZone resource' + content: + application/ld+json: + schema: + $ref: '#/components/schemas/UserZone.jsonld' + '403': + description: Forbidden + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + application/json: + schema: + $ref: '#/components/schemas/Error' + links: { } + '404': + description: 'Not found' + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + application/json: + schema: + $ref: '#/components/schemas/Error' + links: { } + summary: 'Retrieves a UserZone resource.' + description: 'Retrieves a UserZone resource.' + parameters: + - + name: id + in: path + description: 'UserZone identifier' + required: true + deprecated: false + allowEmptyValue: false + schema: + type: string + style: simple + explode: false + allowReserved: false + deprecated: false + delete: + operationId: api_user_zones_id_delete + tags: + - UserZone + responses: + '204': + description: 'UserZone resource deleted' + '403': + description: Forbidden + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + application/json: + schema: + $ref: '#/components/schemas/Error' + links: { } + '404': + description: 'Not found' + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + application/json: + schema: + $ref: '#/components/schemas/Error' + links: { } + summary: 'Removes the UserZone resource.' + description: 'Removes the UserZone resource.' + parameters: + - + name: id + in: path + description: 'UserZone identifier' + required: true + deprecated: false + allowEmptyValue: false + schema: + type: string + style: simple + explode: false + allowReserved: false + deprecated: false + patch: + operationId: api_user_zones_id_patch + tags: + - UserZone + responses: + '200': + description: 'UserZone resource updated' + content: + application/ld+json: + schema: + $ref: '#/components/schemas/UserZone.jsonld' + links: { } + '400': + description: 'Invalid input' + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + application/json: + schema: + $ref: '#/components/schemas/Error' + links: { } + '422': + description: 'An error occurred' + content: + application/ld+json: + schema: + $ref: '#/components/schemas/ConstraintViolation.jsonld-jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + application/json: + schema: + $ref: '#/components/schemas/ConstraintViolation-json' + links: { } + '403': + description: Forbidden + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + application/json: + schema: + $ref: '#/components/schemas/Error' + links: { } + '404': + description: 'Not found' + content: + application/ld+json: + schema: + $ref: '#/components/schemas/Error.jsonld' + application/problem+json: + schema: + $ref: '#/components/schemas/Error' + application/json: + schema: + $ref: '#/components/schemas/Error' + links: { } + summary: 'Updates the UserZone resource.' + description: 'Updates the UserZone resource.' + parameters: + - + name: id + in: path + description: 'UserZone identifier' + required: true + deprecated: false + allowEmptyValue: false + schema: + type: string + style: simple + explode: false + allowReserved: false + requestBody: + description: 'The updated UserZone resource' + content: + application/merge-patch+json: + schema: + $ref: '#/components/schemas/UserZone' + required: true + deprecated: false /api/vessels: get: operationId: api_vessels_get_collection @@ -4912,6 +5304,89 @@ components: - eventIri - locationIri - date + UserZone: + type: object + description: '' + deprecated: false + properties: + dbId: + readOnly: true + type: + - integer + - 'null' + user: + readOnly: true + type: string + format: iri-reference + example: 'https://example.com/' + userIri: + type: + - string + - 'null' + format: iri-reference + example: 'https://example.com/' + zone: + readOnly: true + type: string + format: iri-reference + example: 'https://example.com/' + zoneIri: + type: + - string + - 'null' + format: iri-reference + example: 'https://example.com/' + UserZone.jsonld: + type: object + description: '' + deprecated: false + properties: + '@context': + readOnly: true + oneOf: + - + type: string + - + type: object + properties: + '@vocab': + type: string + hydra: + type: string + enum: ['http://www.w3.org/ns/hydra/core#'] + required: + - '@vocab' + - hydra + additionalProperties: true + '@id': + readOnly: true + type: string + '@type': + readOnly: true + type: string + dbId: + readOnly: true + type: + - integer + - 'null' + user: + readOnly: true + $ref: '#/components/schemas/User.jsonld' + userIri: + type: + - string + - 'null' + format: iri-reference + example: 'https://example.com/' + zone: + readOnly: true + $ref: '#/components/schemas/Zone.jsonld' + zoneIri: + type: + - string + - 'null' + format: iri-reference + example: 'https://example.com/' Vessel: type: object description: '' @@ -5167,6 +5642,8 @@ tags: name: UserTrip - name: UserTripEvent + - + name: UserZone - name: Vessel - diff --git a/angular/src/app/_components/_abstract/abstract-data-form-component.ts b/angular/src/app/_components/_abstract/abstract-data-form-component.ts index d2faa16..96741f4 100644 --- a/angular/src/app/_components/_abstract/abstract-data-form-component.ts +++ b/angular/src/app/_components/_abstract/abstract-data-form-component.ts @@ -27,6 +27,7 @@ export abstract class AbstractDataFormComponent>(); @Output() deleted: EventEmitter = new EventEmitter(); + @Input() isInModal: boolean = false; protected id?: string; protected form!: FormGroup; @@ -99,7 +100,11 @@ export abstract class AbstractDataFormComponent { this.deleted.emit(); - if (this.redirectAfterDelete && this.router) { + this.submit.emit({ + status: ModalStatus.Submitted, + data: null + }); + if (!this.isInModal && this.redirectAfterDelete && this.router) { this.router.navigate([this.redirectAfterDelete]); } }, diff --git a/angular/src/app/_components/list/list.component.ts b/angular/src/app/_components/list/list.component.ts index 2431e0e..a50cf8a 100644 --- a/angular/src/app/_components/list/list.component.ts +++ b/angular/src/app/_components/list/list.component.ts @@ -434,6 +434,11 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { delete this.dataFormComponentData.data; } + this.dataFormComponentData = { + ...this.dataFormComponentData, + isInModal: true, + }; + this.appHelperService.openModal( this.dataFormComponent, this.dataFormComponentData, @@ -449,7 +454,8 @@ export class ListComponent implements OnInit, AfterViewInit, OnDestroy { // Create a new object instead of modifying the existing one this.dataFormComponentData = { ...this.dataFormComponentData, - data: element + data: element, + isInModal: true, }; this.appHelperService.openModal( this.dataFormComponent, diff --git a/angular/src/app/_forms/apiForms.ts b/angular/src/app/_forms/apiForms.ts index 8eb08d6..0553952 100644 --- a/angular/src/app/_forms/apiForms.ts +++ b/angular/src/app/_forms/apiForms.ts @@ -244,6 +244,22 @@ export const userTripEventJsonldForm = new FormGroup({ createdAt: new FormControl(null, []) }); +export const userZoneForm = new FormGroup({ + dbId: new FormControl(null, []), + user: new FormControl(null, []), + userIri: new FormControl(null, []), + zone: new FormControl(null, []), + zoneIri: new FormControl(null, []) +}); + +export const userZoneJsonldForm = new FormGroup({ + dbId: new FormControl(null, []), + user: new FormControl(null, []), + userIri: new FormControl(null, []), + zone: new FormControl(null, []), + zoneIri: new FormControl(null, []) +}); + export const vesselForm = new FormGroup({ dbId: new FormControl(null, []), name: new FormControl(null, [Validators.required]), diff --git a/angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.html b/angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.html new file mode 100644 index 0000000..68c61ca --- /dev/null +++ b/angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.html @@ -0,0 +1,58 @@ +
+
+ @if (data !== undefined) { +
+ @if (user) { +
{{ 'base_data.pilot' | translate }}: {{ user.fullName }}
+ } @else { +
+ + + + +
+ } + @if (zone) { +
{{ 'model.zone' | translate }}: {{ zone.name }}
+ } @else { +
+ + + + +
+ } +
+ } +
+ +
+
+ + + @if (isEditMode()) { + + } +
+
+
\ No newline at end of file diff --git a/angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.scss b/angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.spec.ts b/angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.spec.ts new file mode 100644 index 0000000..69e726f --- /dev/null +++ b/angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserZoneFormComponent } from './user-zone-form.component'; + +describe('UserZoneFormComponent', () => { + let component: UserZoneFormComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [UserZoneFormComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(UserZoneFormComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.ts b/angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.ts new file mode 100644 index 0000000..0a7b814 --- /dev/null +++ b/angular/src/app/_views/user-zone/user-zone-form/user-zone-form.component.ts @@ -0,0 +1,194 @@ +import { Component } from '@angular/core'; +import { + UserJsonld, + UserService, + UserZoneJsonld, UserZoneService, + ZoneJsonld, ZoneService +} from "@app/core/api/v1"; +import {userZoneForm} from "@app/_forms/apiForms"; +import {ListColDefinition} from "@app/_components/list/list-col-definition"; +import {AppHelperService} from "@app/_helpers/app-helper.service"; +import {TranslateService} from "@ngx-translate/core"; +import {Router} from "@angular/router"; +import {SearchSelectComponent} from "@app/_components/search-select/search-select.component"; +import {ListGetDataFunctionType} from "@app/_components/list/list-get-data-function-type"; +import {of, switchMap} from "rxjs"; +import {map} from "rxjs/operators"; +import {AbstractDataFormComponent} from "@app/_components/_abstract/abstract-data-form-component"; + +@Component({ + selector: 'app-user-zone-form', + templateUrl: './user-zone-form.component.html', + styleUrl: './user-zone-form.component.scss' +}) +export class UserZoneFormComponent extends AbstractDataFormComponent { + protected readonly userZoneForm = userZoneForm; + protected userColDefinitions: ListColDefinition[]; + protected zoneColDefinitions: ListColDefinition[]; + protected user?: UserJsonld; + protected zone?: ZoneJsonld; + + constructor( + protected userZoneService: UserZoneService, + protected userService: UserService, + protected zoneService: ZoneService, + appHelperService: AppHelperService, + translateService: TranslateService, + router: Router + ) { + super( + userZoneForm, + appHelperService, + (data: UserZoneJsonld) => this.userZoneService.userZonesPost(this.appHelperService.convertJsonldToJson(data)), + (id: string | number, data: UserZoneJsonld) => + this.userZoneService.userZonesIdPatch( + id.toString(), + this.appHelperService.convertJsonldToJson(data) + ), + (id: string | number) => userZoneService.userZonesIdDelete(id.toString()), + translateService, + router + ); + this.userColDefinitions = SearchSelectComponent.getDefaultColDefUsers(); + this.zoneColDefinitions = SearchSelectComponent.getDefaultColDefZones(); + } + + override ngOnInit() { + super.ngOnInit(); + + // Setze User und Zone aus den übergebenen Daten + if (this.data?.user && !this.user) { + this.user = this.data?.user; + } + if (this.data?.zone && !this.zone) { + this.zone = this.data?.zone; + } + + // Validierung: Mindestens User oder Zone muss vorgegeben sein + if (!this.user && !this.zone) { + throw new Error('UserZoneFormComponent: Either user or zone has to be given'); + } + + // Beide gleichzeitig vorgegeben ist auch nicht erlaubt (würde keinen Sinn machen) + if (this.user && this.zone) { + throw new Error('UserZoneFormComponent: Either user or zone has to be given'); + } + + // Setze die FormControl-Werte wenn vorgegeben + if (this.zone && !this.data!.zoneIri!) { + this.data!.zoneIri = this.zone.id!; + this.form.get('zoneIri')?.setValue(this.zone.id!); + } + if (this.user && !this.data!.userIri!) { + this.data!.userIri = this.user.id!; + this.form.get('userIri')?.setValue(this.user.id!); + } + } + + getUsers: ListGetDataFunctionType = ( + index: number, + pageSize: number, + term?: string, + ) => { + // Hole alle Benutzer mit isPilot=true + return this.userService.usersGetCollection( + index, + pageSize, + undefined, + undefined, + term, + '{"isPilot":true}' + ).pipe( + switchMap(usersResponse => { + // Wenn keine Zone vorhanden ist, gib alle Benutzer zurück + if (!this.zone?.id) { + return of(usersResponse); + } + + // Hole alle UserZones für diese Zone + return this.userZoneService.userZonesGetCollection( + 1, + 100, + undefined, // user + undefined, // user2 + this.zone.id, // zone + undefined, + ).pipe( + map(userZonesResponse => { + // Extrahiere die User-IDs aus den UserZones + const usedUserIds = new Set( + userZonesResponse.member?.map( + (userZone: UserZoneJsonld) => userZone.userIri + ) || [] + ); + + // Filtere die Benutzer, die noch nicht zugeordnet sind + if (usersResponse.member) { + usersResponse.member = usersResponse.member.filter( + (user: UserJsonld) => !usedUserIds.has(user.id!) + ); + // Aktualisiere die totalItems Anzahl + if (usersResponse.totalItems) { + usersResponse.totalItems = usersResponse.member.length; + } + } + + return usersResponse; + }) + ); + }) + ); + } + + getZones: ListGetDataFunctionType = ( + index: number, + pageSize: number, + term?: string, + ) => { + return this.zoneService.zonesGetCollection( + index, + pageSize, + undefined, + undefined, + term + ).pipe( + switchMap(zonesResponse => { + // Wenn kein User vorhanden ist, gib alle Zonen zurück + if (!this.user?.id) { + return of(zonesResponse); + } + + // Hole alle UserZones für diesen User + return this.userZoneService.userZonesGetCollection( + 1, + 100, + this.user.id, // user + undefined, // user2 + undefined // zone + ).pipe( + map(userZonesResponse => { + // Extrahiere die Zone-IDs aus den UserZones + const usedZoneIds = new Set( + userZonesResponse.member?.map( + (userZone: UserZoneJsonld) => userZone.zoneIri + ) || [] + ); + + // Filtere die Zonen, die noch nicht zugeordnet sind + if (zonesResponse.member) { + zonesResponse.member = zonesResponse.member.filter( + (zone: ZoneJsonld) => !usedZoneIds.has(zone.id!) + ); + // Aktualisiere die totalItems Anzahl + if (zonesResponse.totalItems) { + zonesResponse.totalItems = zonesResponse.member.length; + } + } + + return zonesResponse; + }) + ); + }) + ); + } +} diff --git a/angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.html b/angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.html new file mode 100644 index 0000000..b3e7c39 --- /dev/null +++ b/angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.html @@ -0,0 +1,12 @@ +
+ +
\ No newline at end of file diff --git a/angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.scss b/angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.spec.ts b/angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.spec.ts new file mode 100644 index 0000000..e58aaad --- /dev/null +++ b/angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserZoneListComponent } from './user-zone-list.component'; + +describe('UserZoneListComponent', () => { + let component: UserZoneListComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [UserZoneListComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(UserZoneListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.ts b/angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.ts new file mode 100644 index 0000000..af2dccd --- /dev/null +++ b/angular/src/app/_views/user-zone/user-zone-list/user-zone-list.component.ts @@ -0,0 +1,102 @@ +import {Component, Input, ViewChild} from '@angular/core'; +import {UserJsonld, UserZoneService, ZoneJsonld} from "@app/core/api/v1"; +import {ListComponent} from "@app/_components/list/list.component"; +import {ListColDefinition} from "@app/_components/list/list-col-definition"; +import {AppHelperService} from "@app/_helpers/app-helper.service"; +import {FilterBarComponent} from "@app/_components/filter-bar/filter-bar.component"; +import {ListGetDataFunctionType} from "@app/_components/list/list-get-data-function-type"; +import {Observable} from "rxjs"; +import {UserZoneFormComponent} from "@app/_views/user-zone/user-zone-form/user-zone-form.component"; + +@Component({ + selector: 'app-user-zone-list', + templateUrl: './user-zone-list.component.html', + styleUrl: './user-zone-list.component.scss' +}) +export class UserZoneListComponent { + @Input() public user?: UserJsonld; + @Input() public zone?: ZoneJsonld; + @Input() public showCreateButton: boolean; + @ViewChild("listComponent", {static: false}) listComponent!: ListComponent; + + protected readonly userTripLocationFormComponent = UserZoneFormComponent; + protected listColDefinitions!: ListColDefinition[]; + protected dataFormComponentData: any; + + constructor( + private userZoneService: UserZoneService, + protected appHelperService: AppHelperService, + ) { + this.showCreateButton = true; + this.listColDefinitions = [ + { + name: 'userFirstname', + text: 'users.firstname', + type: ListComponent.COLUMN_TYPE_TEXT_BOLD, + field: 'firstName', + subResource: 'user', + sortable: true, + sortingSubResource: 'user', + sortingFieldName: 'firstName', + filterType: FilterBarComponent.FILTER_TYPE_TEXT, + } as ListColDefinition, + { + name: 'userLastname', + text: 'users.lastname', + type: ListComponent.COLUMN_TYPE_TEXT_BOLD, + field: 'lastName', + subResource: 'user', + sortable: true, + sortingSubResource: 'user', + sortingFieldName: 'lastName', + filterType: FilterBarComponent.FILTER_TYPE_TEXT, + } as ListColDefinition, + { + name: 'zoneName', + text: 'model.zone', + type: ListComponent.COLUMN_TYPE_TEXT, + field: 'name', + subResource: 'zone', + sortable: true, + sortingSubResource: 'zone', + sortingFieldName: 'name', + filterType: FilterBarComponent.FILTER_TYPE_TEXT, + } as ListColDefinition, + ]; + } + + ngOnInit() { + this.dataFormComponentData = {}; + if (this.zone) { + this.dataFormComponentData['zone'] = this.zone; + } + if (this.user) { + this.dataFormComponentData['user'] = this.user; + } + } + + ngAfterViewInit(): void { + this.listComponent.getData(); + } + + getData: ListGetDataFunctionType = ( + index: number, + pageSize: number, + term?: string, + ) => { + return this.userZoneService.userZonesGetCollection( + index, + pageSize, + this.user ? this.user.id : undefined, + undefined, + this.zone ? this.zone.id : undefined, + undefined, + this.listComponent.getFilterJsonString(), + this.listComponent.getSortingJsonString() + ); + } + + get deleteItemFunction(): (id: string) => Observable { + return (id: string) => this.userZoneService.userZonesIdDelete(id); + } +} diff --git a/angular/src/app/_views/user-zone/user-zone.component.html b/angular/src/app/_views/user-zone/user-zone.component.html new file mode 100644 index 0000000..10d5352 --- /dev/null +++ b/angular/src/app/_views/user-zone/user-zone.component.html @@ -0,0 +1 @@ +

user-zone works!

diff --git a/angular/src/app/_views/user-zone/user-zone.component.scss b/angular/src/app/_views/user-zone/user-zone.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/angular/src/app/_views/user-zone/user-zone.component.spec.ts b/angular/src/app/_views/user-zone/user-zone.component.spec.ts new file mode 100644 index 0000000..2fba82d --- /dev/null +++ b/angular/src/app/_views/user-zone/user-zone.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserZoneComponent } from './user-zone.component'; + +describe('UserZoneComponent', () => { + let component: UserZoneComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [UserZoneComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(UserZoneComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/angular/src/app/_views/user-zone/user-zone.component.ts b/angular/src/app/_views/user-zone/user-zone.component.ts new file mode 100644 index 0000000..4ed50d9 --- /dev/null +++ b/angular/src/app/_views/user-zone/user-zone.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-user-zone', + templateUrl: './user-zone.component.html', + styleUrl: './user-zone.component.scss' +}) +export class UserZoneComponent { + +} diff --git a/angular/src/app/_views/user/user-detail/user-detail.component.html b/angular/src/app/_views/user/user-detail/user-detail.component.html index d9b3851..41a8822 100644 --- a/angular/src/app/_views/user/user-detail/user-detail.component.html +++ b/angular/src/app/_views/user/user-detail/user-detail.component.html @@ -15,5 +15,10 @@ [user]="user" > + + + diff --git a/angular/src/app/_views/zone/zone-detail/zone-detail.component.html b/angular/src/app/_views/zone/zone-detail/zone-detail.component.html index b30b7f8..e4dc32e 100644 --- a/angular/src/app/_views/zone/zone-detail/zone-detail.component.html +++ b/angular/src/app/_views/zone/zone-detail/zone-detail.component.html @@ -1,7 +1,17 @@ @if (zone) {
- + + + + + + + + +
} \ No newline at end of file diff --git a/angular/src/app/app.module.ts b/angular/src/app/app.module.ts index a081ff0..ee96ecd 100644 --- a/angular/src/app/app.module.ts +++ b/angular/src/app/app.module.ts @@ -74,6 +74,9 @@ import { ImageUploadComponent } from './_components/image-upload/image-upload.co import { TripLocationListComponent } from './_views/trip/trip-location-list/trip-location-list.component'; import { TripLocationFormComponent } from './_views/trip/trip-location-form/trip-location-form.component'; import { UserTripEventFormComponent } from './_views/user-trip-event/user-trip-event-form/user-trip-event-form.component'; +import { UserZoneListComponent } from '@app/_views/user-zone/user-zone-list/user-zone-list.component'; +import { UserZoneComponent } from './_views/user-zone/user-zone.component'; +import { UserZoneFormComponent } from './_views/user-zone/user-zone-form/user-zone-form.component'; registerLocaleData(localeDe, 'de-DE'); @@ -173,6 +176,9 @@ export function HttpLoaderFactory(http: HttpClient) { TripLocationListComponent, TripLocationFormComponent, UserTripEventFormComponent, + UserZoneListComponent, + UserZoneComponent, + UserZoneFormComponent, ], providers: [ {provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true}, diff --git a/angular/src/app/core/api/v1/.openapi-generator/FILES b/angular/src/app/core/api/v1/.openapi-generator/FILES index 8bf1879..b6275f0 100644 --- a/angular/src/app/core/api/v1/.openapi-generator/FILES +++ b/angular/src/app/core/api/v1/.openapi-generator/FILES @@ -12,6 +12,7 @@ api/tripLocation.service.ts api/user.service.ts api/userTrip.service.ts api/userTripEvent.service.ts +api/userZone.service.ts api/vessel.service.ts api/zone.service.ts configuration.ts @@ -29,6 +30,7 @@ model/apiTripLocationsGetCollection200Response.ts model/apiTripsGetCollection200Response.ts model/apiUserTripEventsGetCollection200Response.ts model/apiUserTripsGetCollection200Response.ts +model/apiUserZonesGetCollection200Response.ts model/apiUsersGetCollection200Response.ts model/apiVesselsGetCollection200Response.ts model/apiZonesGetCollection200Response.ts @@ -58,6 +60,8 @@ model/userTrip.ts model/userTripEvent.ts model/userTripEventJsonld.ts model/userTripJsonld.ts +model/userZone.ts +model/userZoneJsonld.ts model/vessel.ts model/vesselJsonld.ts model/zone.ts diff --git a/angular/src/app/core/api/v1/api/api.ts b/angular/src/app/core/api/v1/api/api.ts index 8b80f3b..04b220f 100644 --- a/angular/src/app/core/api/v1/api/api.ts +++ b/angular/src/app/core/api/v1/api/api.ts @@ -18,8 +18,10 @@ export * from './userTrip.service'; import { UserTripService } from './userTrip.service'; export * from './userTripEvent.service'; import { UserTripEventService } from './userTripEvent.service'; +export * from './userZone.service'; +import { UserZoneService } from './userZone.service'; export * from './vessel.service'; import { VesselService } from './vessel.service'; export * from './zone.service'; import { ZoneService } from './zone.service'; -export const APIS = [AuthService, EventService, LocationService, MediaObjectService, ShippingCompanyService, TripService, TripLocationService, UserService, UserTripService, UserTripEventService, VesselService, ZoneService]; +export const APIS = [AuthService, EventService, LocationService, MediaObjectService, ShippingCompanyService, TripService, TripLocationService, UserService, UserTripService, UserTripEventService, UserZoneService, VesselService, ZoneService]; diff --git a/angular/src/app/core/api/v1/api/userZone.service.ts b/angular/src/app/core/api/v1/api/userZone.service.ts new file mode 100644 index 0000000..06fc83f --- /dev/null +++ b/angular/src/app/core/api/v1/api/userZone.service.ts @@ -0,0 +1,541 @@ +/** + * Imaq Platform + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +/* tslint:disable:no-unused-variable member-ordering */ + +import { Inject, Injectable, Optional } from '@angular/core'; +import { HttpClient, HttpHeaders, HttpParams, + HttpResponse, HttpEvent, HttpParameterCodec, HttpContext + } from '@angular/common/http'; +import { CustomHttpParameterCodec } from '../encoder'; +import { Observable } from 'rxjs'; + +// @ts-ignore +import { ApiUserZonesGetCollection200Response } from '../model/apiUserZonesGetCollection200Response'; +// @ts-ignore +import { ConstraintViolationJson } from '../model/constraintViolationJson'; +// @ts-ignore +import { ConstraintViolationJsonldJsonld } from '../model/constraintViolationJsonldJsonld'; +// @ts-ignore +import { ErrorJsonld } from '../model/errorJsonld'; +// @ts-ignore +import { UserZone } from '../model/userZone'; +// @ts-ignore +import { UserZoneJsonld } from '../model/userZoneJsonld'; + +// @ts-ignore +import { BASE_PATH, COLLECTION_FORMATS } from '../variables'; +import { Configuration } from '../configuration'; + + + +@Injectable({ + providedIn: 'root' +}) +export class UserZoneService { + + protected basePath = 'http://localhost'; + public defaultHeaders = new HttpHeaders(); + public configuration = new Configuration(); + public encoder: HttpParameterCodec; + + constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) { + if (configuration) { + this.configuration = configuration; + } + if (typeof this.configuration.basePath !== 'string') { + if (Array.isArray(basePath) && basePath.length > 0) { + basePath = basePath[0]; + } + + if (typeof basePath !== 'string') { + basePath = this.basePath; + } + this.configuration.basePath = basePath; + } + this.encoder = this.configuration.encoder || new CustomHttpParameterCodec(); + } + + + // @ts-ignore + private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams { + if (typeof value === "object" && value instanceof Date === false) { + httpParams = this.addToHttpParamsRecursive(httpParams, value); + } else { + httpParams = this.addToHttpParamsRecursive(httpParams, value, key); + } + return httpParams; + } + + private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams { + if (value == null) { + return httpParams; + } + + if (typeof value === "object") { + if (Array.isArray(value)) { + (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key)); + } else if (value instanceof Date) { + if (key != null) { + httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10)); + } else { + throw Error("key may not be null if value is Date"); + } + } else { + Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive( + httpParams, value[k], key != null ? `${key}.${k}` : k)); + } + } else if (key != null) { + httpParams = httpParams.append(key, value); + } else { + throw Error("key may not be null if value is not object or array"); + } + return httpParams; + } + + /** + * Retrieves the collection of UserZone resources. + * Retrieves the collection of UserZone resources. + * @param page The collection page number + * @param itemsPerPage The number of items per page + * @param user + * @param user2 + * @param zone + * @param zone2 + * @param customJsonFilter + * @param customJsonOrder + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public userZonesGetCollection(page?: number, itemsPerPage?: number, user?: string, user2?: Array, zone?: string, zone2?: Array, customJsonFilter?: string, customJsonOrder?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable; + public userZonesGetCollection(page?: number, itemsPerPage?: number, user?: string, user2?: Array, zone?: string, zone2?: Array, customJsonFilter?: string, customJsonOrder?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; + public userZonesGetCollection(page?: number, itemsPerPage?: number, user?: string, user2?: Array, zone?: string, zone2?: Array, customJsonFilter?: string, customJsonOrder?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; + public userZonesGetCollection(page?: number, itemsPerPage?: number, user?: string, user2?: Array, zone?: string, zone2?: Array, customJsonFilter?: string, customJsonOrder?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable { + + let localVarQueryParameters = new HttpParams({encoder: this.encoder}); + if (page !== undefined && page !== null) { + localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, + page, 'page'); + } + if (itemsPerPage !== undefined && itemsPerPage !== null) { + localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, + itemsPerPage, 'itemsPerPage'); + } + if (user !== undefined && user !== null) { + localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, + user, 'user'); + } + if (user2) { + user2.forEach((element) => { + localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, + element, 'user[]'); + }) + } + if (zone !== undefined && zone !== null) { + localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, + zone, 'zone'); + } + if (zone2) { + zone2.forEach((element) => { + localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, + element, 'zone[]'); + }) + } + if (customJsonFilter !== undefined && customJsonFilter !== null) { + localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, + customJsonFilter, 'custom_json_filter'); + } + if (customJsonOrder !== undefined && customJsonOrder !== null) { + localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, + customJsonOrder, 'custom_json_order'); + } + + let localVarHeaders = this.defaultHeaders; + + let localVarCredential: string | undefined; + // authentication (JWT) required + localVarCredential = this.configuration.lookupCredential('JWT'); + if (localVarCredential) { + localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); + } + + let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (localVarHttpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/ld+json', + 'application/problem+json', + 'application/json' + ]; + localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (localVarHttpHeaderAcceptSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); + } + + let localVarHttpContext: HttpContext | undefined = options && options.context; + if (localVarHttpContext === undefined) { + localVarHttpContext = new HttpContext(); + } + + let localVarTransferCache: boolean | undefined = options && options.transferCache; + if (localVarTransferCache === undefined) { + localVarTransferCache = true; + } + + + let responseType_: 'text' | 'json' | 'blob' = 'json'; + if (localVarHttpHeaderAcceptSelected) { + if (localVarHttpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { + responseType_ = 'json'; + } else { + responseType_ = 'blob'; + } + } + + let localVarPath = `/api/user_zones`; + return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, + { + context: localVarHttpContext, + params: localVarQueryParameters, + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: localVarHeaders, + observe: observe, + transferCache: localVarTransferCache, + reportProgress: reportProgress + } + ); + } + + /** + * Removes the UserZone resource. + * Removes the UserZone resource. + * @param id UserZone identifier + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public userZonesIdDelete(id: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable; + public userZonesIdDelete(id: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; + public userZonesIdDelete(id: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; + public userZonesIdDelete(id: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable { + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling userZonesIdDelete.'); + } + + let localVarHeaders = this.defaultHeaders; + + let localVarCredential: string | undefined; + // authentication (JWT) required + localVarCredential = this.configuration.lookupCredential('JWT'); + if (localVarCredential) { + localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); + } + + let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (localVarHttpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/ld+json', + 'application/problem+json', + 'application/json' + ]; + localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (localVarHttpHeaderAcceptSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); + } + + let localVarHttpContext: HttpContext | undefined = options && options.context; + if (localVarHttpContext === undefined) { + localVarHttpContext = new HttpContext(); + } + + let localVarTransferCache: boolean | undefined = options && options.transferCache; + if (localVarTransferCache === undefined) { + localVarTransferCache = true; + } + + + let responseType_: 'text' | 'json' | 'blob' = 'json'; + if (localVarHttpHeaderAcceptSelected) { + if (localVarHttpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { + responseType_ = 'json'; + } else { + responseType_ = 'blob'; + } + } + + let localVarPath = `/api/user_zones/${this.configuration.encodeParam({name: "id", value: id, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined})}`; + return this.httpClient.request('delete', `${this.configuration.basePath}${localVarPath}`, + { + context: localVarHttpContext, + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: localVarHeaders, + observe: observe, + transferCache: localVarTransferCache, + reportProgress: reportProgress + } + ); + } + + /** + * Retrieves a UserZone resource. + * Retrieves a UserZone resource. + * @param id UserZone identifier + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public userZonesIdGet(id: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable; + public userZonesIdGet(id: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; + public userZonesIdGet(id: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; + public userZonesIdGet(id: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable { + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling userZonesIdGet.'); + } + + let localVarHeaders = this.defaultHeaders; + + let localVarCredential: string | undefined; + // authentication (JWT) required + localVarCredential = this.configuration.lookupCredential('JWT'); + if (localVarCredential) { + localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); + } + + let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (localVarHttpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/ld+json', + 'application/problem+json', + 'application/json' + ]; + localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (localVarHttpHeaderAcceptSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); + } + + let localVarHttpContext: HttpContext | undefined = options && options.context; + if (localVarHttpContext === undefined) { + localVarHttpContext = new HttpContext(); + } + + let localVarTransferCache: boolean | undefined = options && options.transferCache; + if (localVarTransferCache === undefined) { + localVarTransferCache = true; + } + + + let responseType_: 'text' | 'json' | 'blob' = 'json'; + if (localVarHttpHeaderAcceptSelected) { + if (localVarHttpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { + responseType_ = 'json'; + } else { + responseType_ = 'blob'; + } + } + + let localVarPath = `/api/user_zones/${this.configuration.encodeParam({name: "id", value: id, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined})}`; + return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, + { + context: localVarHttpContext, + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: localVarHeaders, + observe: observe, + transferCache: localVarTransferCache, + reportProgress: reportProgress + } + ); + } + + /** + * Updates the UserZone resource. + * Updates the UserZone resource. + * @param id UserZone identifier + * @param userZone The updated UserZone resource + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public userZonesIdPatch(id: string, userZone: UserZone, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable; + public userZonesIdPatch(id: string, userZone: UserZone, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; + public userZonesIdPatch(id: string, userZone: UserZone, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; + public userZonesIdPatch(id: string, userZone: UserZone, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable { + if (id === null || id === undefined) { + throw new Error('Required parameter id was null or undefined when calling userZonesIdPatch.'); + } + if (userZone === null || userZone === undefined) { + throw new Error('Required parameter userZone was null or undefined when calling userZonesIdPatch.'); + } + + let localVarHeaders = this.defaultHeaders; + + let localVarCredential: string | undefined; + // authentication (JWT) required + localVarCredential = this.configuration.lookupCredential('JWT'); + if (localVarCredential) { + localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); + } + + let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (localVarHttpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/ld+json', + 'application/problem+json', + 'application/json' + ]; + localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (localVarHttpHeaderAcceptSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); + } + + let localVarHttpContext: HttpContext | undefined = options && options.context; + if (localVarHttpContext === undefined) { + localVarHttpContext = new HttpContext(); + } + + let localVarTransferCache: boolean | undefined = options && options.transferCache; + if (localVarTransferCache === undefined) { + localVarTransferCache = true; + } + + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/merge-patch+json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected); + } + + let responseType_: 'text' | 'json' | 'blob' = 'json'; + if (localVarHttpHeaderAcceptSelected) { + if (localVarHttpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { + responseType_ = 'json'; + } else { + responseType_ = 'blob'; + } + } + + let localVarPath = `/api/user_zones/${this.configuration.encodeParam({name: "id", value: id, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined})}`; + return this.httpClient.request('patch', `${this.configuration.basePath}${localVarPath}`, + { + context: localVarHttpContext, + body: userZone, + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: localVarHeaders, + observe: observe, + transferCache: localVarTransferCache, + reportProgress: reportProgress + } + ); + } + + /** + * Creates a UserZone resource. + * Creates a UserZone resource. + * @param userZoneJsonld The new UserZone resource + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public userZonesPost(userZoneJsonld: UserZoneJsonld, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable; + public userZonesPost(userZoneJsonld: UserZoneJsonld, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; + public userZonesPost(userZoneJsonld: UserZoneJsonld, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable>; + public userZonesPost(userZoneJsonld: UserZoneJsonld, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json' | 'application/problem+json' | 'application/json', context?: HttpContext, transferCache?: boolean}): Observable { + if (userZoneJsonld === null || userZoneJsonld === undefined) { + throw new Error('Required parameter userZoneJsonld was null or undefined when calling userZonesPost.'); + } + + let localVarHeaders = this.defaultHeaders; + + let localVarCredential: string | undefined; + // authentication (JWT) required + localVarCredential = this.configuration.lookupCredential('JWT'); + if (localVarCredential) { + localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential); + } + + let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept; + if (localVarHttpHeaderAcceptSelected === undefined) { + // to determine the Accept header + const httpHeaderAccepts: string[] = [ + 'application/ld+json', + 'application/problem+json', + 'application/json' + ]; + localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts); + } + if (localVarHttpHeaderAcceptSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected); + } + + let localVarHttpContext: HttpContext | undefined = options && options.context; + if (localVarHttpContext === undefined) { + localVarHttpContext = new HttpContext(); + } + + let localVarTransferCache: boolean | undefined = options && options.transferCache; + if (localVarTransferCache === undefined) { + localVarTransferCache = true; + } + + + // to determine the Content-Type header + const consumes: string[] = [ + 'application/ld+json' + ]; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected !== undefined) { + localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected); + } + + let responseType_: 'text' | 'json' | 'blob' = 'json'; + if (localVarHttpHeaderAcceptSelected) { + if (localVarHttpHeaderAcceptSelected.startsWith('text')) { + responseType_ = 'text'; + } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) { + responseType_ = 'json'; + } else { + responseType_ = 'blob'; + } + } + + let localVarPath = `/api/user_zones`; + return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, + { + context: localVarHttpContext, + body: userZoneJsonld, + responseType: responseType_, + withCredentials: this.configuration.withCredentials, + headers: localVarHeaders, + observe: observe, + transferCache: localVarTransferCache, + reportProgress: reportProgress + } + ); + } + +} diff --git a/angular/src/app/core/api/v1/model/apiUserZonesGetCollection200Response.ts b/angular/src/app/core/api/v1/model/apiUserZonesGetCollection200Response.ts new file mode 100644 index 0000000..7ab14c5 --- /dev/null +++ b/angular/src/app/core/api/v1/model/apiUserZonesGetCollection200Response.ts @@ -0,0 +1,23 @@ +/** + * Imaq Platform + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { UserZoneJsonld } from './userZoneJsonld'; +import { ApiEventsGetCollection200ResponseSearch } from './apiEventsGetCollection200ResponseSearch'; +import { ApiEventsGetCollection200ResponseView } from './apiEventsGetCollection200ResponseView'; + + +export interface ApiUserZonesGetCollection200Response { + member: Array; + totalItems?: number; + view?: ApiEventsGetCollection200ResponseView; + search?: ApiEventsGetCollection200ResponseSearch; +} + diff --git a/angular/src/app/core/api/v1/model/models.ts b/angular/src/app/core/api/v1/model/models.ts index 87c8343..db9cfa3 100644 --- a/angular/src/app/core/api/v1/model/models.ts +++ b/angular/src/app/core/api/v1/model/models.ts @@ -9,6 +9,7 @@ export * from './apiTripLocationsGetCollection200Response'; export * from './apiTripsGetCollection200Response'; export * from './apiUserTripEventsGetCollection200Response'; export * from './apiUserTripsGetCollection200Response'; +export * from './apiUserZonesGetCollection200Response'; export * from './apiUsersGetCollection200Response'; export * from './apiVesselsGetCollection200Response'; export * from './apiZonesGetCollection200Response'; @@ -37,6 +38,8 @@ export * from './userTrip'; export * from './userTripEvent'; export * from './userTripEventJsonld'; export * from './userTripJsonld'; +export * from './userZone'; +export * from './userZoneJsonld'; export * from './vessel'; export * from './vesselJsonld'; export * from './zone'; diff --git a/angular/src/app/core/api/v1/model/userZone.ts b/angular/src/app/core/api/v1/model/userZone.ts new file mode 100644 index 0000000..6c0c29d --- /dev/null +++ b/angular/src/app/core/api/v1/model/userZone.ts @@ -0,0 +1,24 @@ +/** + * Imaq Platform + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +/** + * + */ +export interface UserZone { + readonly dbId?: number | null; + readonly user?: string; + userIri?: string | null; + readonly zone?: string; + zoneIri?: string | null; +} + diff --git a/angular/src/app/core/api/v1/model/userZoneJsonld.ts b/angular/src/app/core/api/v1/model/userZoneJsonld.ts new file mode 100644 index 0000000..4214b3b --- /dev/null +++ b/angular/src/app/core/api/v1/model/userZoneJsonld.ts @@ -0,0 +1,29 @@ +/** + * Imaq Platform + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ +import { UserJsonld } from './userJsonld'; +import { ConstraintViolationJsonldJsonldContext } from './constraintViolationJsonldJsonldContext'; +import { ZoneJsonld } from './zoneJsonld'; + + +/** + * + */ +export interface UserZoneJsonld { + readonly id?: string; + readonly xType?: string; + readonly dbId?: number | null; + readonly user?: UserJsonld; + userIri?: string | null; + readonly zone?: ZoneJsonld; + zoneIri?: string | null; +} + diff --git a/angular/src/assets/i18n/en.json b/angular/src/assets/i18n/en.json index 34ded97..401a1c7 100644 --- a/angular/src/assets/i18n/en.json +++ b/angular/src/assets/i18n/en.json @@ -4,7 +4,8 @@ "shipping_companies": "Shipping companies", "vessels": "Vessels", "view": "Base data", - "zones": "Zones" + "zones": "Zones", + "pilot": "Pilot" }, "basic": { "account": "Account", @@ -76,6 +77,8 @@ "user": "User", "user_trip": "Pilotage", "user_trip_event": "Pilotage event", + "user_zone": "User zone", + "user_zones": "User zones", "vessel": "Vessel", "zone": "Zone" }, diff --git a/httpdocs/migrations/Version20250605145642.php b/httpdocs/migrations/Version20250605145642.php new file mode 100644 index 0000000..d44389d --- /dev/null +++ b/httpdocs/migrations/Version20250605145642.php @@ -0,0 +1,35 @@ +addSql('CREATE TABLE user_zone (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, zone_id INT NOT NULL, INDEX IDX_DA6A8CCEA76ED395 (user_id), INDEX IDX_DA6A8CCE9F2C3FAB (zone_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB'); + $this->addSql('ALTER TABLE user_zone ADD CONSTRAINT FK_DA6A8CCEA76ED395 FOREIGN KEY (user_id) REFERENCES `user` (id) ON DELETE CASCADE'); + $this->addSql('ALTER TABLE user_zone ADD CONSTRAINT FK_DA6A8CCE9F2C3FAB FOREIGN KEY (zone_id) REFERENCES zone (id) ON DELETE CASCADE'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE user_zone DROP FOREIGN KEY FK_DA6A8CCEA76ED395'); + $this->addSql('ALTER TABLE user_zone DROP FOREIGN KEY FK_DA6A8CCE9F2C3FAB'); + $this->addSql('DROP TABLE user_zone'); + } +} diff --git a/httpdocs/migrations/Version20250606081404.php b/httpdocs/migrations/Version20250606081404.php new file mode 100644 index 0000000..201975f --- /dev/null +++ b/httpdocs/migrations/Version20250606081404.php @@ -0,0 +1,31 @@ +addSql('CREATE UNIQUE INDEX unique_user_zone ON user_zone (zone_id, user_id)'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('DROP INDEX unique_user_zone ON user_zone'); + } +} diff --git a/httpdocs/src/ApiResource/UserZoneApi.php b/httpdocs/src/ApiResource/UserZoneApi.php new file mode 100644 index 0000000..a9deb7d --- /dev/null +++ b/httpdocs/src/ApiResource/UserZoneApi.php @@ -0,0 +1,78 @@ + 'exact', + 'zone' => 'exact', +])] +#[ApiFilter(CustomJsonFilter::class)] +#[ApiFilter(CustomJsonOrderFilter::class)] +class UserZoneApi +{ + #[ApiProperty(readable: false, writable: false, identifier: true)] + public ?int $id = null; + + #[ApiProperty(writable: false)] + public ?int $dbId = null; + + /** + * @var UserApi + */ + #[ApiProperty( + writable: false, + readableLink: true, + writableLink: false, + builtinTypes: [new Type('object', class: UserApi::class)] + )] + public ?UserApi $user = null; + + #[ApiProperty(writable: true)] + public ?UserApi $userIri = null; + + /** + * @var ZoneApi + */ + #[ApiProperty( + writable: false, + readableLink: true, + writableLink: false, + builtinTypes: [new Type('object', class: ZoneApi::class)] + )] + public ?ZoneApi $zone = null; + + #[ApiProperty(writable: true)] + public ?ZoneApi $zoneIri = null; +} diff --git a/httpdocs/src/Entity/UserZone.php b/httpdocs/src/Entity/UserZone.php new file mode 100644 index 0000000..32e9d89 --- /dev/null +++ b/httpdocs/src/Entity/UserZone.php @@ -0,0 +1,47 @@ +id; + } + + public function getUser(): ?User + { + return $this->user; + } + + public function setUser(?User $user): void + { + $this->user = $user; + } + + public function getZone(): ?Zone + { + return $this->zone; + } + + public function setZone(?Zone $zone): void + { + $this->zone = $zone; + } +} diff --git a/httpdocs/src/Mapper/UserZoneApiToEntityMapper.php b/httpdocs/src/Mapper/UserZoneApiToEntityMapper.php new file mode 100644 index 0000000..602f6f0 --- /dev/null +++ b/httpdocs/src/Mapper/UserZoneApiToEntityMapper.php @@ -0,0 +1,58 @@ +id ? $this->userZoneRepository->find($dto->id) : new UserZone(); + if ($dto->id && !$entity) { + throw new \Exception('UserZone not found'); + } + + return $entity; + } + + public function populate(object $from, object $to, array $context): object + { + assert($from instanceof UserZoneApi); + assert($to instanceof UserZone); + + if ($from->userIri) { + $user = $this->userRepository->find($from->userIri->id); + if (!$user) { + throw new \Exception('User not found'); + } + $to->setUser($user); + } + + if ($from->zoneIri) { + $zone = $this->zoneRepository->find($from->zoneIri->id); + if (!$zone) { + throw new \Exception('Zone not found'); + } + $to->setZone($zone); + } + + return $to; + } +} diff --git a/httpdocs/src/Mapper/UserZoneEntityToApiMapper.php b/httpdocs/src/Mapper/UserZoneEntityToApiMapper.php new file mode 100644 index 0000000..7748f14 --- /dev/null +++ b/httpdocs/src/Mapper/UserZoneEntityToApiMapper.php @@ -0,0 +1,48 @@ +id = $entity->getId(); + + return $dto; + } + + public function populate(object $from, object $to, array $context): object + { + assert($from instanceof UserZone); + assert($to instanceof UserZoneApi); + + $to->dbId = $from->getId(); + + $to->user = $to->userIri = $this->microMapper->map($from->getUser(), UserApi::class, [ + MicroMapperInterface::MAX_DEPTH => 5, + ]); + + $to->zone = $to->zoneIri = $this->microMapper->map($from->getZone(), ZoneApi::class, [ + MicroMapperInterface::MAX_DEPTH => 5, + ]); + + return $to; + } +} diff --git a/httpdocs/src/Repository/UserZoneRepository.php b/httpdocs/src/Repository/UserZoneRepository.php new file mode 100644 index 0000000..c48e758 --- /dev/null +++ b/httpdocs/src/Repository/UserZoneRepository.php @@ -0,0 +1,15 @@ +