From abb58ba8b3e3a2f921653f4bb8d7e397be748880 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 18 Mar 2025 15:21:40 +0200 Subject: [PATCH] wip --- angular/openapi.json | 2 +- angular/openapi.yaml | 87 ++++++++------- angular/src/app/_forms/apiForms.ts | 14 +-- .../trip-detail/trip-detail.component.html | 8 ++ .../trip/trip-detail/trip-detail.component.ts | 21 +++- .../user-trip-event-list.component.html | 7 ++ .../user-trip-event-list.component.scss | 0 .../user-trip-event-list.component.spec.ts | 23 ++++ .../user-trip-event-list.component.ts | 103 ++++++++++++++++++ .../user-trip-event.component.html | 1 + .../user-trip-event.component.scss | 0 .../user-trip-event.component.spec.ts | 23 ++++ .../user-trip-event.component.ts | 10 ++ .../user-trip-form.component.ts | 5 - .../user-detail/user-detail.component.html | 10 ++ .../user/user-detail/user-detail.component.ts | 3 + .../user/user-form/user-form.component.html | 42 +++++++ .../user/user-form/user-form.component.scss | 0 .../user-form/user-form.component.spec.ts | 23 ++++ .../user/user-form/user-form.component.ts | 40 +++++++ angular/src/app/app.module.ts | 6 + .../app/core/api/v1/.openapi-generator/FILES | 3 - .../core/api/v1/api/userTripEvent.service.ts | 13 ++- angular/src/app/core/api/v1/model/location.ts | 1 + .../app/core/api/v1/model/locationJsonld.ts | 1 + angular/src/app/core/api/v1/model/models.ts | 3 - angular/src/app/core/api/v1/model/user.ts | 6 +- .../src/app/core/api/v1/model/userJsonld.ts | 7 +- .../app/core/api/v1/model/userTripEvent.ts | 1 + .../core/api/v1/model/userTripEventJsonld.ts | 2 + angular/src/assets/i18n/en.json | 6 +- httpdocs/src/ApiResource/LocationApi.php | 3 + httpdocs/src/ApiResource/UserApi.php | 20 +++- httpdocs/src/ApiResource/UserTripEventApi.php | 19 ++++ httpdocs/src/Filter/UserTripEventFilter.php | 47 ++++++++ .../src/Mapper/LocationEntityToApiMapper.php | 1 + httpdocs/src/Mapper/UserApiToEntityMapper.php | 12 ++ httpdocs/src/Mapper/UserEntityToApiMapper.php | 10 +- .../src/Mapper/UserTripApiToEntityMapper.php | 2 - .../Mapper/UserTripEventEntityToApiMapper.php | 5 + 40 files changed, 515 insertions(+), 75 deletions(-) create mode 100644 angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.html create mode 100644 angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.scss create mode 100644 angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.spec.ts create mode 100644 angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.ts create mode 100644 angular/src/app/_views/user-trip-event/user-trip-event.component.html create mode 100644 angular/src/app/_views/user-trip-event/user-trip-event.component.scss create mode 100644 angular/src/app/_views/user-trip-event/user-trip-event.component.spec.ts create mode 100644 angular/src/app/_views/user-trip-event/user-trip-event.component.ts create mode 100644 angular/src/app/_views/user/user-form/user-form.component.html create mode 100644 angular/src/app/_views/user/user-form/user-form.component.scss create mode 100644 angular/src/app/_views/user/user-form/user-form.component.spec.ts create mode 100644 angular/src/app/_views/user/user-form/user-form.component.ts create mode 100644 httpdocs/src/Filter/UserTripEventFilter.php diff --git a/angular/openapi.json b/angular/openapi.json index 09cd631..43a2870 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"]}}}}},"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":false,"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"}}}},"404":{"description":"Resource not found"}},"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"]}}}}},"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":"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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":{"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"},"isZone":{"type":"boolean"},"isPlace":{"type":"boolean"},"isPort":{"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"},"isZone":{"type":"boolean"},"isPlace":{"type":"boolean"},"isPort":{"type":"boolean"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["zoneIri","name","code"]},"MediaObject":{"type":"object","description":"","deprecated":false,"properties":{"id":{"readOnly":true,"type":"integer"},"file":{"type":["string","null"],"format":"binary"},"filePath":{"type":["string","null"]},"createdBy":{"$ref":"#\/components\/schemas\/User"},"createdAt":{"readOnly":true,"type":"string","format":"date-time"}},"required":["file"]},"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"]},"customerReference":{"type":["string","null"]},"captainName":{"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"]},"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"]},"customerReference":{"type":["string","null"]},"captainName":{"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"]},"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":{"$ref":"#\/components\/schemas\/Trip"},"tripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"location":{"$ref":"#\/components\/schemas\/Location"},"locationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"isArrival":{"type":"boolean"},"date":{"type":"string","format":"date-time"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["tripIri","locationIri","date"]},"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":{"$ref":"#\/components\/schemas\/Trip.jsonld"},"tripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"location":{"$ref":"#\/components\/schemas\/Location.jsonld"},"locationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"isArrival":{"type":"boolean"},"date":{"type":"string","format":"date-time"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["tripIri","locationIri","date"]},"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":{"anyOf":[{"$ref":"#\/components\/schemas\/MediaObject"},{"type":"null"}]},"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"},"active":{"type":"boolean"},"roles":{"readOnly":true,"type":"array","items":{"type":"string"}},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["email","firstName","referenceId","lastName"]},"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":{"anyOf":[{"$ref":"#\/components\/schemas\/MediaObject.jsonld"},{"type":"null"}]},"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"},"active":{"type":"boolean"},"roles":{"readOnly":true,"type":"array","items":{"type":"string"}},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["email","firstName","referenceId","lastName"]},"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"},"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"]},"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"},"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"]},"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\/"},"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\/"},"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\/"},"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\/"},"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":[],"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"]}}}}},"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":false,"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"}}}},"404":{"description":"Resource not found"}},"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"]}}}}},"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":"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"schema":{"type":"string"},"style":"form","explode":false,"allowReserved":false},{"name":"custom_json_order","in":"query","description":"","required":false,"deprecated":false,"allowEmptyValue":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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"]}}}}},"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":false,"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"},"422":{"description":"Unprocessable entity"}},"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"}}}},"404":{"description":"Resource not found"}},"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"},"404":{"description":"Resource not found"}},"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"},"422":{"description":"Unprocessable entity"},"404":{"description":"Resource not found"}},"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":{"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"},"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"},"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"]},"customerReference":{"type":["string","null"]},"captainName":{"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"]},"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"]},"customerReference":{"type":["string","null"]},"captainName":{"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"]},"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":{"$ref":"#\/components\/schemas\/Trip"},"tripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"location":{"$ref":"#\/components\/schemas\/Location"},"locationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"isArrival":{"type":"boolean"},"date":{"type":"string","format":"date-time"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["tripIri","locationIri","date"]},"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":{"$ref":"#\/components\/schemas\/Trip.jsonld"},"tripIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"location":{"$ref":"#\/components\/schemas\/Location.jsonld"},"locationIri":{"type":["string","null"],"format":"iri-reference","example":"https:\/\/example.com\/"},"isArrival":{"type":"boolean"},"date":{"type":"string","format":"date-time"},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["tripIri","locationIri","date"]},"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"]},"active":{"type":"boolean"},"roles":{"readOnly":true,"type":"array","items":{"type":"string"}},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["email","firstName","referenceId","lastName"]},"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"]},"active":{"type":"boolean"},"roles":{"readOnly":true,"type":"array","items":{"type":"string"}},"createdAt":{"readOnly":true,"type":["string","null"],"format":"date-time"}},"required":["email","firstName","referenceId","lastName"]},"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"},"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"]},"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"},"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"]},"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\/"},"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\/"},"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":[],"webhooks":{}} \ No newline at end of file diff --git a/angular/openapi.yaml b/angular/openapi.yaml index 2fa3e21..d2f73d5 100644 --- a/angular/openapi.yaml +++ b/angular/openapi.yaml @@ -1685,6 +1685,18 @@ paths: 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 @@ -2327,6 +2339,9 @@ components: type: string code: type: string + zoneName: + readOnly: true + type: string isZone: type: boolean isPlace: @@ -2389,6 +2404,9 @@ components: type: string code: type: string + zoneName: + readOnly: true + type: string isZone: type: boolean isPlace: @@ -2405,31 +2423,6 @@ components: - zoneIri - name - code - MediaObject: - type: object - description: '' - deprecated: false - properties: - id: - readOnly: true - type: integer - file: - type: - - string - - 'null' - format: binary - filePath: - type: - - string - - 'null' - createdBy: - $ref: '#/components/schemas/User' - createdAt: - readOnly: true - type: string - format: date-time - required: - - file MediaObject.jsonld: type: object description: '' @@ -2849,11 +2842,16 @@ components: lastName: type: string image: - anyOf: - - - $ref: '#/components/schemas/MediaObject' - - - type: 'null' + 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: @@ -2867,7 +2865,9 @@ components: password: writeOnly: true description: 'The plaintext password when being set or changed.' - type: string + type: + - string + - 'null' active: type: boolean roles: @@ -2931,11 +2931,14 @@ components: lastName: type: string image: - anyOf: - - - $ref: '#/components/schemas/MediaObject.jsonld' - - - type: 'null' + readOnly: true + $ref: '#/components/schemas/MediaObject.jsonld' + imageIri: + type: + - string + - 'null' + format: iri-reference + example: 'https://example.com/' imageUrl: readOnly: true type: @@ -2949,7 +2952,9 @@ components: password: writeOnly: true description: 'The plaintext password when being set or changed.' - type: string + type: + - string + - 'null' active: type: boolean roles: @@ -3164,6 +3169,11 @@ components: - '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 @@ -3242,6 +3252,9 @@ components: - 'null' format: iri-reference example: 'https://example.com/' + user: + readOnly: true + $ref: '#/components/schemas/User.jsonld' date: type: string format: date-time diff --git a/angular/src/app/_forms/apiForms.ts b/angular/src/app/_forms/apiForms.ts index ca142ef..7424cf8 100644 --- a/angular/src/app/_forms/apiForms.ts +++ b/angular/src/app/_forms/apiForms.ts @@ -15,6 +15,7 @@ export const locationForm = new FormGroup({ zoneIri: new FormControl(null, [Validators.required]), name: new FormControl(null, [Validators.required]), code: new FormControl(null, [Validators.required]), + zoneName: new FormControl(null, []), isZone: new FormControl(null, []), isPlace: new FormControl(null, []), isPort: new FormControl(null, []), @@ -27,20 +28,13 @@ export const locationJsonldForm = new FormGroup({ zoneIri: new FormControl(null, [Validators.required]), name: new FormControl(null, [Validators.required]), code: new FormControl(null, [Validators.required]), + zoneName: new FormControl(null, []), isZone: new FormControl(null, []), isPlace: new FormControl(null, []), isPort: new FormControl(null, []), createdAt: new FormControl(null, []) }); -export const mediaObjectForm = new FormGroup({ - id: new FormControl(null, []), - file: new FormControl(null, [Validators.required]), - filePath: new FormControl(null, []), - createdBy: new FormControl(null, []), - createdAt: new FormControl(null, []) -}); - export const mediaObjectJsonldForm = new FormGroup({ dbId: new FormControl(null, []), contentUrl: new FormControl(null, []), @@ -125,6 +119,7 @@ export const userForm = new FormGroup({ referenceId: new FormControl(null, [Validators.required]), lastName: new FormControl(null, [Validators.required]), image: new FormControl(null, []), + imageIri: new FormControl(null, []), imageUrl: new FormControl(null, []), fullName: new FormControl(null, []), password: new FormControl(null, []), @@ -140,6 +135,7 @@ export const userJsonldForm = new FormGroup({ referenceId: new FormControl(null, [Validators.required]), lastName: new FormControl(null, [Validators.required]), image: new FormControl(null, []), + imageIri: new FormControl(null, []), imageUrl: new FormControl(null, []), fullName: new FormControl(null, []), password: new FormControl(null, []), @@ -186,6 +182,7 @@ export const userTripEventForm = new FormGroup({ eventIri: new FormControl(null, [Validators.required]), location: new FormControl(null, []), locationIri: new FormControl(null, [Validators.required]), + user: new FormControl(null, []), date: new FormControl(null, [Validators.required]), note: new FormControl(null, []), createdAt: new FormControl(null, []) @@ -199,6 +196,7 @@ export const userTripEventJsonldForm = new FormGroup({ eventIri: new FormControl(null, [Validators.required]), location: new FormControl(null, []), locationIri: new FormControl(null, [Validators.required]), + user: new FormControl(null, []), date: new FormControl(null, [Validators.required]), note: new FormControl(null, []), createdAt: new FormControl(null, []) diff --git a/angular/src/app/_views/trip/trip-detail/trip-detail.component.html b/angular/src/app/_views/trip/trip-detail/trip-detail.component.html index 471511a..7808b32 100644 --- a/angular/src/app/_views/trip/trip-detail/trip-detail.component.html +++ b/angular/src/app/_views/trip/trip-detail/trip-detail.component.html @@ -127,6 +127,14 @@ + +
+ + +
+
} \ No newline at end of file diff --git a/angular/src/app/_views/trip/trip-detail/trip-detail.component.ts b/angular/src/app/_views/trip/trip-detail/trip-detail.component.ts index 492a3f9..7c747e2 100644 --- a/angular/src/app/_views/trip/trip-detail/trip-detail.component.ts +++ b/angular/src/app/_views/trip/trip-detail/trip-detail.component.ts @@ -7,7 +7,7 @@ import { TripService, LocationService, LocationJsonld, - UserTripService, UserService, UserTripJsonld, UserJsonld + UserTripService, UserService, UserTripJsonld, UserJsonld, UserTripEventJsonld, UserTripEventService } from "@app/core/api/v1"; import { AppHelperService } from "@app/_helpers/app-helper.service"; import { ActivatedRoute } from "@angular/router"; @@ -29,6 +29,7 @@ export class TripDetailComponent implements OnInit, AfterViewInit { protected originalUserTrips: UserTripJsonld[] = []; protected tripLocations: TripLocationJsonld[] = []; protected userTrips: UserTripJsonld[] = []; + protected userTripEvents: UserTripEventJsonld[] = []; protected users: UserJsonld[] = []; protected locationForms: FormGroup[] = []; protected locationColDefinitions: ListColDefinition[] = SearchSelectComponent.getDefaultColDefLocations(); @@ -42,6 +43,7 @@ export class TripDetailComponent implements OnInit, AfterViewInit { private tripLocationService: TripLocationService, private locationService: LocationService, private userTripService: UserTripService, + private userTripEventService: UserTripEventService, private userService: UserService, protected appHelperService: AppHelperService, private route: ActivatedRoute, @@ -54,7 +56,8 @@ export class TripDetailComponent implements OnInit, AfterViewInit { data => { this.trip = data; this.loadTripLocations(); - this.loadUserTrips(); // Verwenden Sie die neue loadUserTrips-Methode + this.loadUserTrips(); + this.loadUserTripEvents(); } ); }); @@ -263,6 +266,20 @@ export class TripDetailComponent implements OnInit, AfterViewInit { }); } + loadUserTripEvents() { + this.userTripEventService.userTripEventsGetCollection( + 1, + 200, + undefined, + undefined, + this.trip.dbId!, + ).subscribe({ + next: (data) => { + this.userTripEvents = data.member; + } + }) + } + removeTripLocation(index: number) { const tripLocationId = this.tripLocations[index].id; diff --git a/angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.html b/angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.html new file mode 100644 index 0000000..6bc7320 --- /dev/null +++ b/angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.html @@ -0,0 +1,7 @@ +
+ +
diff --git a/angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.scss b/angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.spec.ts b/angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.spec.ts new file mode 100644 index 0000000..b7c871f --- /dev/null +++ b/angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserTripEventListComponent } from './user-trip-event-list.component'; + +describe('UserTripEventListComponent', () => { + let component: UserTripEventListComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [UserTripEventListComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(UserTripEventListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.ts b/angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.ts new file mode 100644 index 0000000..e20dfd0 --- /dev/null +++ b/angular/src/app/_views/user-trip-event/user-trip-event-list/user-trip-event-list.component.ts @@ -0,0 +1,103 @@ +import {Component, Input, ViewChild} from '@angular/core'; +import {ListComponent} from "@app/_components/list/list.component"; +import {ListColDefinition} from "@app/_components/list/list-col-definition"; +import {TripJsonld, UserTripEventService} from "@app/core/api/v1"; +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"; + +@Component({ + selector: 'app-user-trip-event-list', + templateUrl: './user-trip-event-list.component.html', + styleUrl: './user-trip-event-list.component.scss' +}) +export class UserTripEventListComponent { + @ViewChild("listComponent", {static: false}) listComponent!: ListComponent; + @Input() public trip?: TripJsonld; + + protected listColDefinitions!: ListColDefinition[]; + + constructor( + private userTripEventService: UserTripEventService, + protected appHelperService: AppHelperService, + ) { + this.listColDefinitions = [ + { + name: 'eventName', + text: 'model.event', + type: ListComponent.COLUMN_TYPE_TEXT_BOLD, + subResource: 'event', + field: 'name', + sortable: true, + filterType: FilterBarComponent.FILTER_TYPE_TEXT, + } as ListColDefinition, + { + name: 'user', + text: 'model.user', + type: ListComponent.COLUMN_TYPE_TEXT, + subResource: 'user', + field: 'fullName', + sortable: true, + filterType: FilterBarComponent.FILTER_TYPE_TEXT, + } as ListColDefinition, + { + name: 'location', + text: 'model.location', + type: ListComponent.COLUMN_TYPE_TEXT_BOLD, + field: 'name', + subResource: 'location', + sortable: true, + filterType: FilterBarComponent.FILTER_TYPE_TEXT, + } as ListColDefinition, + { + name: 'zone', + text: 'model.zone', + type: ListComponent.COLUMN_TYPE_TEXT, + field: 'zoneName', + subResource: 'location', + sortable: true, + filterType: FilterBarComponent.FILTER_TYPE_TEXT, + } as ListColDefinition, + { + name: 'date', + text: 'basic.date', + type: ListComponent.COLUMN_TYPE_DATE, + field: 'date', + sortable: true, + filterType: FilterBarComponent.FILTER_TYPE_DATE, + } as ListColDefinition, + { + name: 'createdAt', + text: 'common.created_at', + type: ListComponent.COLUMN_TYPE_DATE, + field: 'createdAt', + sortable: true, + filterType: FilterBarComponent.FILTER_TYPE_DATE, + } as ListColDefinition, + ]; + } + + ngOnInit() { + + } + + ngAfterViewInit(): void { + this.listComponent.getData(); + } + + getData: ListGetDataFunctionType = ( + index: number, + pageSize: number, + term?: string, + ) => { + return this.userTripEventService.userTripEventsGetCollection( + index, + pageSize, + undefined, + undefined, + this.trip !== undefined ? this.trip.dbId! : undefined, + this.listComponent.getFilterJsonString(), + this.listComponent.getSortingJsonString() + ); + } +} diff --git a/angular/src/app/_views/user-trip-event/user-trip-event.component.html b/angular/src/app/_views/user-trip-event/user-trip-event.component.html new file mode 100644 index 0000000..367167f --- /dev/null +++ b/angular/src/app/_views/user-trip-event/user-trip-event.component.html @@ -0,0 +1 @@ +

user-trip-event works!

diff --git a/angular/src/app/_views/user-trip-event/user-trip-event.component.scss b/angular/src/app/_views/user-trip-event/user-trip-event.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/angular/src/app/_views/user-trip-event/user-trip-event.component.spec.ts b/angular/src/app/_views/user-trip-event/user-trip-event.component.spec.ts new file mode 100644 index 0000000..aa864e0 --- /dev/null +++ b/angular/src/app/_views/user-trip-event/user-trip-event.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserTripEventComponent } from './user-trip-event.component'; + +describe('UserTripEventComponent', () => { + let component: UserTripEventComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [UserTripEventComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(UserTripEventComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/angular/src/app/_views/user-trip-event/user-trip-event.component.ts b/angular/src/app/_views/user-trip-event/user-trip-event.component.ts new file mode 100644 index 0000000..244fc92 --- /dev/null +++ b/angular/src/app/_views/user-trip-event/user-trip-event.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-user-trip-event', + templateUrl: './user-trip-event.component.html', + styleUrl: './user-trip-event.component.scss' +}) +export class UserTripEventComponent { + +} diff --git a/angular/src/app/_views/user-trip/user-trip-form/user-trip-form.component.ts b/angular/src/app/_views/user-trip/user-trip-form/user-trip-form.component.ts index 0bbf478..e7aae14 100644 --- a/angular/src/app/_views/user-trip/user-trip-form/user-trip-form.component.ts +++ b/angular/src/app/_views/user-trip/user-trip-form/user-trip-form.component.ts @@ -78,11 +78,6 @@ export class UserTripFormComponent extends AbstractDataFormComponent + + + + +
diff --git a/angular/src/app/_views/user/user-detail/user-detail.component.ts b/angular/src/app/_views/user/user-detail/user-detail.component.ts index 79fe459..2d99dbc 100644 --- a/angular/src/app/_views/user/user-detail/user-detail.component.ts +++ b/angular/src/app/_views/user/user-detail/user-detail.component.ts @@ -3,6 +3,7 @@ import {UserJsonld, UserService} from "@app/core/api/v1"; import {AccountService} from "@app/_services"; import {AppHelperService} from "@app/_helpers/app-helper.service"; import {ActivatedRoute} from "@angular/router"; +import {FormMode} from "@app/_components/_abstract/abstract-data-form-component"; @Component({ selector: 'app-user-detail', @@ -54,4 +55,6 @@ export class UserDetailComponent implements OnInit, AfterViewInit { this.isCurrentUser = this.appHelperService.extractId(this.user.id) == user?.id; } } + + protected readonly FormMode = FormMode; } diff --git a/angular/src/app/_views/user/user-form/user-form.component.html b/angular/src/app/_views/user/user-form/user-form.component.html new file mode 100644 index 0000000..98c65f5 --- /dev/null +++ b/angular/src/app/_views/user/user-form/user-form.component.html @@ -0,0 +1,42 @@ +
+ @if (!isEditMode()) { +
+

{{ ('basic.new') | translate }} {{ 'model.user' | translate }}

+
+ } +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + + @if (isEditMode()) { + + } +
+
+
+
diff --git a/angular/src/app/_views/user/user-form/user-form.component.scss b/angular/src/app/_views/user/user-form/user-form.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/angular/src/app/_views/user/user-form/user-form.component.spec.ts b/angular/src/app/_views/user/user-form/user-form.component.spec.ts new file mode 100644 index 0000000..35b48d5 --- /dev/null +++ b/angular/src/app/_views/user/user-form/user-form.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserFormComponent } from './user-form.component'; + +describe('UserFormComponent', () => { + let component: UserFormComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [UserFormComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(UserFormComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/angular/src/app/_views/user/user-form/user-form.component.ts b/angular/src/app/_views/user/user-form/user-form.component.ts new file mode 100644 index 0000000..4d0047e --- /dev/null +++ b/angular/src/app/_views/user/user-form/user-form.component.ts @@ -0,0 +1,40 @@ +import { Component } from '@angular/core'; +import {AbstractDataFormComponent} from "@app/_components/_abstract/abstract-data-form-component"; +import {UserJsonld, UserService} from "@app/core/api/v1"; +import {AppHelperService} from "@app/_helpers/app-helper.service"; +import {TranslateService} from "@ngx-translate/core"; +import {Router} from "@angular/router"; +import {ROUTE_USERS} from "@app/app-routing.module"; +import {userForm} from "@app/_forms/apiForms"; + +@Component({ + selector: 'app-user-form', + templateUrl: './user-form.component.html', + styleUrl: './user-form.component.scss' +}) +export class UserFormComponent extends AbstractDataFormComponent { + + protected readonly userForm = userForm; + + constructor( + private userService: UserService, + private appHelperService: AppHelperService, + translateService: TranslateService, + router: Router + ) { + super( + userForm, + (data: UserJsonld) => this.userService.usersPost(data), + (id: string | number, data: UserJsonld) => + this.userService.usersIdPatch( + id.toString(), + this.appHelperService.convertJsonldToJson(data) + ), + (id: string | number) => this.userService.usersIdDelete(id.toString()), + translateService, + router + ); + + this.redirectAfterDelete = '/' + ROUTE_USERS; + } +} diff --git a/angular/src/app/app.module.ts b/angular/src/app/app.module.ts index 45101e9..ac8eb40 100644 --- a/angular/src/app/app.module.ts +++ b/angular/src/app/app.module.ts @@ -67,6 +67,9 @@ import { UserTripComponent } from './_views/user-trip/user-trip.component'; import { UserTripListComponent } from './_views/user-trip/user-trip-list/user-trip-list.component'; import { UserTripDetailComponent } from './_views/user-trip/user-trip-detail/user-trip-detail.component'; import { UserTripFormComponent } from './_views/user-trip/user-trip-form/user-trip-form.component'; +import { UserTripEventComponent } from './_views/user-trip-event/user-trip-event.component'; +import { UserTripEventListComponent } from './_views/user-trip-event/user-trip-event-list/user-trip-event-list.component'; +import { UserFormComponent } from './_views/user/user-form/user-form.component'; registerLocaleData(localeDe, 'de-DE'); @@ -159,6 +162,9 @@ export function HttpLoaderFactory(http: HttpClient) { UserTripListComponent, UserTripDetailComponent, UserTripFormComponent, + UserTripEventComponent, + UserTripEventListComponent, + UserFormComponent, ], 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 bc2fc7a..8a0298f 100644 --- a/angular/src/app/core/api/v1/.openapi-generator/FILES +++ b/angular/src/app/core/api/v1/.openapi-generator/FILES @@ -39,7 +39,6 @@ model/eventJsonldContext.ts model/eventJsonldContextOneOf.ts model/location.ts model/locationJsonld.ts -model/mediaObject.ts model/mediaObjectJsonld.ts model/models.ts model/shippingCompany.ts @@ -49,9 +48,7 @@ model/tripJsonld.ts model/tripLocation.ts model/tripLocationJsonld.ts model/user.ts -model/userImage.ts model/userJsonld.ts -model/userJsonldImage.ts model/userTrip.ts model/userTripEvent.ts model/userTripEventJsonld.ts diff --git a/angular/src/app/core/api/v1/api/userTripEvent.service.ts b/angular/src/app/core/api/v1/api/userTripEvent.service.ts index 305a1c2..41e92d4 100644 --- a/angular/src/app/core/api/v1/api/userTripEvent.service.ts +++ b/angular/src/app/core/api/v1/api/userTripEvent.service.ts @@ -102,15 +102,16 @@ export class UserTripEventService { * @param itemsPerPage The number of items per page * @param userTrip * @param userTrip2 + * @param tripId Filter UserTripEvents by Trip ID * @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 userTripEventsGetCollection(page?: number, itemsPerPage?: number, userTrip?: string, userTrip2?: Array, customJsonFilter?: string, customJsonOrder?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json', context?: HttpContext, transferCache?: boolean}): Observable; - public userTripEventsGetCollection(page?: number, itemsPerPage?: number, userTrip?: string, userTrip2?: Array, customJsonFilter?: string, customJsonOrder?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json', context?: HttpContext, transferCache?: boolean}): Observable>; - public userTripEventsGetCollection(page?: number, itemsPerPage?: number, userTrip?: string, userTrip2?: Array, customJsonFilter?: string, customJsonOrder?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json', context?: HttpContext, transferCache?: boolean}): Observable>; - public userTripEventsGetCollection(page?: number, itemsPerPage?: number, userTrip?: string, userTrip2?: Array, customJsonFilter?: string, customJsonOrder?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json', context?: HttpContext, transferCache?: boolean}): Observable { + public userTripEventsGetCollection(page?: number, itemsPerPage?: number, userTrip?: string, userTrip2?: Array, tripId?: number, customJsonFilter?: string, customJsonOrder?: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json', context?: HttpContext, transferCache?: boolean}): Observable; + public userTripEventsGetCollection(page?: number, itemsPerPage?: number, userTrip?: string, userTrip2?: Array, tripId?: number, customJsonFilter?: string, customJsonOrder?: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json', context?: HttpContext, transferCache?: boolean}): Observable>; + public userTripEventsGetCollection(page?: number, itemsPerPage?: number, userTrip?: string, userTrip2?: Array, tripId?: number, customJsonFilter?: string, customJsonOrder?: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/ld+json', context?: HttpContext, transferCache?: boolean}): Observable>; + public userTripEventsGetCollection(page?: number, itemsPerPage?: number, userTrip?: string, userTrip2?: Array, tripId?: number, customJsonFilter?: string, customJsonOrder?: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/ld+json', context?: HttpContext, transferCache?: boolean}): Observable { let localVarQueryParameters = new HttpParams({encoder: this.encoder}); if (page !== undefined && page !== null) { @@ -131,6 +132,10 @@ export class UserTripEventService { element, 'userTrip[]'); }) } + if (tripId !== undefined && tripId !== null) { + localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, + tripId, 'tripId'); + } if (customJsonFilter !== undefined && customJsonFilter !== null) { localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, customJsonFilter, 'custom_json_filter'); diff --git a/angular/src/app/core/api/v1/model/location.ts b/angular/src/app/core/api/v1/model/location.ts index 76f7f56..0f861cf 100644 --- a/angular/src/app/core/api/v1/model/location.ts +++ b/angular/src/app/core/api/v1/model/location.ts @@ -20,6 +20,7 @@ export interface Location { zoneIri: string | null; name: string; code: string; + readonly zoneName?: string; isZone?: boolean; isPlace?: boolean; isPort?: boolean; diff --git a/angular/src/app/core/api/v1/model/locationJsonld.ts b/angular/src/app/core/api/v1/model/locationJsonld.ts index ed7c37c..d4ec9d0 100644 --- a/angular/src/app/core/api/v1/model/locationJsonld.ts +++ b/angular/src/app/core/api/v1/model/locationJsonld.ts @@ -25,6 +25,7 @@ export interface LocationJsonld { zoneIri: string | null; name: string; code: string; + readonly zoneName?: string; isZone?: boolean; isPlace?: boolean; isPort?: boolean; diff --git a/angular/src/app/core/api/v1/model/models.ts b/angular/src/app/core/api/v1/model/models.ts index 960f53e..5518858 100644 --- a/angular/src/app/core/api/v1/model/models.ts +++ b/angular/src/app/core/api/v1/model/models.ts @@ -19,7 +19,6 @@ export * from './eventJsonldContext'; export * from './eventJsonldContextOneOf'; export * from './location'; export * from './locationJsonld'; -export * from './mediaObject'; export * from './mediaObjectJsonld'; export * from './shippingCompany'; export * from './shippingCompanyJsonld'; @@ -28,9 +27,7 @@ export * from './tripJsonld'; export * from './tripLocation'; export * from './tripLocationJsonld'; export * from './user'; -export * from './userImage'; export * from './userJsonld'; -export * from './userJsonldImage'; export * from './userTrip'; export * from './userTripEvent'; export * from './userTripEventJsonld'; diff --git a/angular/src/app/core/api/v1/model/user.ts b/angular/src/app/core/api/v1/model/user.ts index d332b65..ddd4b0d 100644 --- a/angular/src/app/core/api/v1/model/user.ts +++ b/angular/src/app/core/api/v1/model/user.ts @@ -9,7 +9,6 @@ * https://openapi-generator.tech * Do not edit the class manually. */ -import { UserImage } from './userImage'; /** @@ -21,13 +20,14 @@ export interface User { firstName: string; referenceId: string; lastName: string; - image?: UserImage; + readonly image?: string; + imageIri?: string | null; readonly imageUrl?: string | null; readonly fullName?: string | null; /** * The plaintext password when being set or changed. */ - password?: string; + password?: string | null; active?: boolean; roles?: Array; readonly createdAt?: string | null; diff --git a/angular/src/app/core/api/v1/model/userJsonld.ts b/angular/src/app/core/api/v1/model/userJsonld.ts index e9afa99..e8e5718 100644 --- a/angular/src/app/core/api/v1/model/userJsonld.ts +++ b/angular/src/app/core/api/v1/model/userJsonld.ts @@ -9,7 +9,7 @@ * https://openapi-generator.tech * Do not edit the class manually. */ -import { UserJsonldImage } from './userJsonldImage'; +import { MediaObjectJsonld } from './mediaObjectJsonld'; import { EventJsonldContext } from './eventJsonldContext'; @@ -25,13 +25,14 @@ export interface UserJsonld { firstName: string; referenceId: string; lastName: string; - image?: UserJsonldImage; + readonly image?: MediaObjectJsonld; + imageIri?: string | null; readonly imageUrl?: string | null; readonly fullName?: string | null; /** * The plaintext password when being set or changed. */ - password?: string; + password?: string | null; active?: boolean; roles?: Array; readonly createdAt?: string | null; diff --git a/angular/src/app/core/api/v1/model/userTripEvent.ts b/angular/src/app/core/api/v1/model/userTripEvent.ts index 91704df..026735e 100644 --- a/angular/src/app/core/api/v1/model/userTripEvent.ts +++ b/angular/src/app/core/api/v1/model/userTripEvent.ts @@ -23,6 +23,7 @@ export interface UserTripEvent { eventIri: string | null; readonly location?: string; locationIri: string | null; + readonly user?: string; date: string; note?: string | null; readonly createdAt?: string | null; diff --git a/angular/src/app/core/api/v1/model/userTripEventJsonld.ts b/angular/src/app/core/api/v1/model/userTripEventJsonld.ts index 41271dc..ebbfc50 100644 --- a/angular/src/app/core/api/v1/model/userTripEventJsonld.ts +++ b/angular/src/app/core/api/v1/model/userTripEventJsonld.ts @@ -10,6 +10,7 @@ * Do not edit the class manually. */ import { UserTripJsonld } from './userTripJsonld'; +import { UserJsonld } from './userJsonld'; import { EventJsonld } from './eventJsonld'; import { EventJsonldContext } from './eventJsonldContext'; import { LocationJsonld } from './locationJsonld'; @@ -29,6 +30,7 @@ export interface UserTripEventJsonld { eventIri: string | null; readonly location?: LocationJsonld; locationIri: string | null; + readonly user?: UserJsonld; date: string; note?: string | null; readonly createdAt?: string | null; diff --git a/angular/src/assets/i18n/en.json b/angular/src/assets/i18n/en.json index 8308da6..1791da5 100644 --- a/angular/src/assets/i18n/en.json +++ b/angular/src/assets/i18n/en.json @@ -34,7 +34,8 @@ "remove_itinerary_location": "Remove itinerary location", "save_itinerary": "Save itinerary", "assigned_users": "Assigned Users (User Trips)", - "save_user_assignments": "Save user assignments" + "save_user_assignments": "Save user assignments", + "events": "Events" }, "user_trip": { @@ -119,7 +120,8 @@ "firstname": "Firstname", "lastname": "Lastname", "userTrips": "User trips", - "pilotIdNo": "#Pilot id" + "pilotIdNo": "#Pilot id", + "password": "Password" }, "form": { diff --git a/httpdocs/src/ApiResource/LocationApi.php b/httpdocs/src/ApiResource/LocationApi.php index a22d290..2428f72 100644 --- a/httpdocs/src/ApiResource/LocationApi.php +++ b/httpdocs/src/ApiResource/LocationApi.php @@ -84,6 +84,9 @@ class LocationApi #[Assert\NotBlank] public string $code; + #[ApiProperty(writable: false)] + public string $zoneName; + public bool $isZone; public bool $isPlace; diff --git a/httpdocs/src/ApiResource/UserApi.php b/httpdocs/src/ApiResource/UserApi.php index fc84483..bb7bc02 100644 --- a/httpdocs/src/ApiResource/UserApi.php +++ b/httpdocs/src/ApiResource/UserApi.php @@ -23,6 +23,7 @@ use App\Filter\CustomJsonOrderFilter; use App\Filter\UserNameSearchFilter; use App\State\EntityClassDtoStateProcessor; use App\State\EntityToDtoStateProvider; +use Symfony\Component\PropertyInfo\Type; use Symfony\Component\Validator\Constraints as Assert; #[ApiResource( @@ -75,7 +76,24 @@ class UserApi #[Assert\NotBlank] public string $lastName; - public ?MediaObject $image = null; + /** + * @var MediaObjectApi + */ + #[ApiProperty( + writable: false, + readableLink: true, + writableLink: false, + builtinTypes: [ + new Type( + 'object', + class: MediaObjectApi::class, + ) + ] + )] + public ?MediaObjectApi $image = null; + + #[ApiProperty(writable: true)] + public ?MediaObjectApi $imageIri = null; #[ApiProperty(writable: false)] public ?string $imageUrl = null; diff --git a/httpdocs/src/ApiResource/UserTripEventApi.php b/httpdocs/src/ApiResource/UserTripEventApi.php index bfca41f..81fbacb 100644 --- a/httpdocs/src/ApiResource/UserTripEventApi.php +++ b/httpdocs/src/ApiResource/UserTripEventApi.php @@ -16,6 +16,7 @@ use App\Entity\UserTrip; use App\Entity\UserTripEvent; use App\Filter\CustomJsonFilter; use App\Filter\CustomJsonOrderFilter; +use App\Filter\UserTripEventFilter; use App\State\EntityClassDtoStateProcessor; use App\State\EntityToDtoStateProvider; use Symfony\Component\Validator\Constraints as Assert; @@ -41,6 +42,7 @@ use Symfony\Component\Validator\Constraints\NotBlank; security: 'is_granted("ROLE_ADMIN")' ) ], + order: ['date' => 'ASC'], security: 'is_granted("ROLE_USER")', provider: EntityToDtoStateProvider::class, processor: EntityClassDtoStateProcessor::class, @@ -48,6 +50,7 @@ use Symfony\Component\Validator\Constraints\NotBlank; )] #[ApiFilter(SearchFilter::class, properties: ['userTrip' => 'exact'])] +#[ApiFilter(UserTripEventFilter::class)] #[ApiFilter(CustomJsonFilter::class)] #[ApiFilter(CustomJsonOrderFilter::class)] class UserTripEventApi @@ -118,6 +121,22 @@ class UserTripEventApi #[ApiProperty(writable: true)] public ?LocationApi $locationIri = null; + /** + * @var UserApi + */ + #[ApiProperty( + writable: false, + readableLink: true, + writableLink: false, + builtinTypes: [ + new Type( + 'object', + class: UserApi::class, + ) + ] + )] + public ?UserApi $user = null; + #[Assert\NotBlank] public \DateTimeImmutable $date; diff --git a/httpdocs/src/Filter/UserTripEventFilter.php b/httpdocs/src/Filter/UserTripEventFilter.php new file mode 100644 index 0000000..873e6ca --- /dev/null +++ b/httpdocs/src/Filter/UserTripEventFilter.php @@ -0,0 +1,47 @@ +getRootAliases()[0]; + $parameterName = $queryNameGenerator->generateParameterName('tripId'); + + $queryBuilder + ->join("$rootAlias.userTrip", "userTrip") + ->join("userTrip.trip", "trip") + ->andWhere("trip.id = :$parameterName") + ->setParameter($parameterName, $value); + } + + public function getDescription(string $resourceClass): array + { + return [ + 'tripId' => [ + 'property' => 'tripId', + 'type' => 'int', + 'required' => false, + 'description' => 'Filter UserTripEvents by Trip ID', + ], + ]; + } +} diff --git a/httpdocs/src/Mapper/LocationEntityToApiMapper.php b/httpdocs/src/Mapper/LocationEntityToApiMapper.php index a90adaa..4f3b74a 100644 --- a/httpdocs/src/Mapper/LocationEntityToApiMapper.php +++ b/httpdocs/src/Mapper/LocationEntityToApiMapper.php @@ -37,6 +37,7 @@ class LocationEntityToApiMapper implements MapperInterface $dto->dbId = $entity->getId(); $dto->name = $entity->getName(); + $dto->zoneName = $entity->getZone()->getName(); $dto->code = $entity->getCode(); $dto->isZone = $entity->isZone(); $dto->isPlace = $entity->isPlace(); diff --git a/httpdocs/src/Mapper/UserApiToEntityMapper.php b/httpdocs/src/Mapper/UserApiToEntityMapper.php index 98214e3..a9637ca 100644 --- a/httpdocs/src/Mapper/UserApiToEntityMapper.php +++ b/httpdocs/src/Mapper/UserApiToEntityMapper.php @@ -5,6 +5,7 @@ namespace App\Mapper; use App\ApiResource\UserApi; use App\Entity\User; use App\Entity\Posting; +use App\Repository\MediaObjectRepository; use App\Repository\UserRepository; use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; use Symfonycasts\MicroMapper\AsMapper; @@ -16,6 +17,7 @@ class UserApiToEntityMapper implements MapperInterface public function __construct( private UserRepository $repository, private UserPasswordHasherInterface $userPasswordHasher, + private MediaObjectRepository $mediaObjectRepository, ) { } @@ -48,6 +50,16 @@ class UserApiToEntityMapper implements MapperInterface $entity->setPassword($this->userPasswordHasher->hashPassword($entity, $dto->password)); } + if ($dto->imageIri) { + $image = $this->mediaObjectRepository->find($dto->imageIri->id); + if (!$image) { + throw new \Exception('Image not found'); + } + $entity->setImage($image); + } else { + $entity->setImage(null); + } + return $entity; } } diff --git a/httpdocs/src/Mapper/UserEntityToApiMapper.php b/httpdocs/src/Mapper/UserEntityToApiMapper.php index 64360d1..b9364ef 100644 --- a/httpdocs/src/Mapper/UserEntityToApiMapper.php +++ b/httpdocs/src/Mapper/UserEntityToApiMapper.php @@ -2,6 +2,7 @@ namespace App\Mapper; +use App\ApiResource\MediaObjectApi; use App\ApiResource\UserApi; use App\Entity\User; use App\Service\FileUrlService; @@ -42,8 +43,15 @@ class UserEntityToApiMapper implements MapperInterface $dto->referenceId = $entity->getReferenceId(); $dto->firstName = $entity->getFirstName(); $dto->lastName = $entity->getLastName(); - $dto->image = $entity->getImage(); $dto->roles = $entity->getRoles(); + + $dto->imageIri = $dto->image = null; + if ($entity->getImage() !== null) { + $dto->imageIri = $dto->image = $this->microMapper->map($entity->getImage(), MediaObjectApi::class, [ + MicroMapperInterface::MAX_DEPTH => 1, + ]); + } + $dto->imageUrl = $this->fileUrlService->getFileUrl($entity->getImage()); $dto->fullName = $entity->getFirstName() . " " . $entity->getLastName(); $dto->createdAt = $entity->getCreatedAt(); diff --git a/httpdocs/src/Mapper/UserTripApiToEntityMapper.php b/httpdocs/src/Mapper/UserTripApiToEntityMapper.php index 581236c..5186366 100644 --- a/httpdocs/src/Mapper/UserTripApiToEntityMapper.php +++ b/httpdocs/src/Mapper/UserTripApiToEntityMapper.php @@ -19,8 +19,6 @@ class UserTripApiToEntityMapper implements MapperInterface { public function __construct( private UserTripRepository $repository, - private TripRepository $tripRepository, - private UserRepository $userRepository, private MediaObjectRepository $mediaObjectRepository, private MicroMapperInterface $microMapper ) { diff --git a/httpdocs/src/Mapper/UserTripEventEntityToApiMapper.php b/httpdocs/src/Mapper/UserTripEventEntityToApiMapper.php index a4be00c..a48d61b 100644 --- a/httpdocs/src/Mapper/UserTripEventEntityToApiMapper.php +++ b/httpdocs/src/Mapper/UserTripEventEntityToApiMapper.php @@ -4,6 +4,7 @@ namespace App\Mapper; use App\ApiResource\EventApi; use App\ApiResource\LocationApi; +use App\ApiResource\UserApi; use App\ApiResource\UserTripApi; use App\ApiResource\UserTripEventApi; use App\Entity\UserTripEvent; @@ -54,6 +55,10 @@ class UserTripEventEntityToApiMapper implements MapperInterface MicroMapperInterface::MAX_DEPTH => 1, ]); + $dto->user = $this->microMapper->map($entity->getUserTrip()->getUser(), UserApi::class, [ + MicroMapperInterface::MAX_DEPTH => 1, + ]); + return $dto; } } \ No newline at end of file