{ "swagger": "2.0", "info": { "description": "Wucher backend API (JSON:API).\n\nAuth Flow (Email/Password):\n1) POST /api/v1/auth/register\n2) Check email, open verify link (GET /api/v1/auth/verify-email)\n3) POST /api/v1/auth/login\n- If TOTP enabled: response 202 with challenge_token\n4) POST /api/v1/auth/totp/verify (challenge_token + code) -\u003e cookies\n\nAuth Flow (TOTP setup):\n1) POST /api/v1/auth/totp/setup -\u003e secret + otpauth_url (enabled=false)\n2) POST /api/v1/auth/totp/confirm -\u003e enabled=true\n\nAuth Flow (Microsoft Entra SSO):\n1) GET /api/v1/auth/microsoft/login -\u003e redirect to Microsoft\n2) Microsoft redirects to /api/v1/auth/microsoft/callback\n3) Backend checks existing SSO mapping (no auto-register)\n4) If linked user exists -\u003e set cookies + optional redirect to AUTH_SSO_SUCCESS_REDIRECT\n5) If mapping not linked -\u003e login rejected (401)\n6) Existing authenticated user can link/unlink via /api/v1/auth/sso/link and /api/v1/auth/sso/unlink", "title": "Wucher API", "contact": {}, "version": "1.0" }, "basePath": "/", "paths": { "/api/v1/action-signoffs/get-by-flight/{flight_id}": { "get": { "description": "Returns the fleet-level (complaint-independent) corrective-action sign-off state for a helicopter — `signed`, `signed_at`, `signed_by`. When none exists yet it returns an unsigned placeholder. A signed sign-off is what gates the EASA maintenance release.", "produces": [ "application/json" ], "tags": [ "Complaints - Sign Off" ], "summary": "Get the current corrective-action sign-off for a helicopter", "parameters": [ { "type": "string", "description": "Flight ID (UUIDv7)", "name": "flight_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ActionSignoffResponse" } } } } }, "/api/v1/action-signoffs/sign/{helicopter_id}": { "post": { "description": "Toggles the corrective-action sign-off for a helicopter. `sign` (optional, default true) chooses the direction: true signs, false unsigns. Send `complaint_id` to target a specific complaint's sign-off — signing it requires `action_taken` recorded (else 422 `ACTION_SIGNOFF_ACTION_REQUIRED`), and 404 `ACTION_SIGNOFF_COMPLAINT_NOT_FOUND` if the complaint does not exist. Omit `complaint_id` for a fleet-wide (complaint-independent) sign-off. A signed sign-off is what allows an EASA maintenance release to be created for the helicopter.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Complaints - Sign Off" ], "summary": "Toggle the corrective-action sign-off (per complaint or fleet-wide)", "parameters": [ { "type": "string", "description": "Helicopter ID (UUIDv7)", "name": "helicopter_id", "in": "path", "required": true }, { "description": "Optional complaint_id + note", "name": "request", "in": "body", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ActionSignoffSignRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ActionSignoffResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/after-flight-inspection/create": { "post": { "description": "Create after-flight inspection and AFI file checklist for a flight inspection.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - After Flights Inspection" ], "summary": "Create last flights inspection", "parameters": [ { "description": "Create last flights inspection request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionCreateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/after-flight-inspection/delete": { "delete": { "description": "Delete after-flight inspection and AFI checklist rows by `flight_inspection_id`.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - After Flights Inspection" ], "summary": "Delete last flights inspection", "parameters": [ { "description": "Delete last flights inspection request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionDeleteRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.Document" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/after-flight-inspection/get": { "get": { "description": "Get after-flight inspection detail and AFI file checklist by query `inspection_id`.", "produces": [ "application/json" ], "tags": [ "Flights - After Flights Inspection" ], "summary": "Get last flights inspection", "parameters": [ { "type": "string", "description": "Flight Inspection UUID", "name": "inspection_id", "in": "query", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/after-flight-inspection/update": { "patch": { "description": "Update after-flight inspection and AFI file checklist for a flight inspection.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - After Flights Inspection" ], "summary": "Update last flights inspection", "parameters": [ { "description": "Update last flights inspection request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/air-rescuer-checklist/create": { "post": { "description": "Create one or more checklist headers for a single base.\nRequest uses `base_id`.\nEach checklist can be created with or without initial `items`.\n`scope_code` accepts persisted codes and English aliases. Stored codes remain: `TA`, `MO`, `DI`, `MI`, `DO`, `FR`, `SA`, `SO`, `M10`, `M15`, `M20`, `M25`, `DS`.\nExample aliases: `DAILY` -\u003e `TA`, `TU/TUE/TUESDAY` -\u003e `DI`, `WE/WED/WEDNESDAY` -\u003e `MI`, `TH/THU/THURSDAY` -\u003e `DO`, `SU/SUN/SUNDAY` -\u003e `SO`, `DEADLINE` -\u003e `DS`.\n`CAT` is a virtual overview tab and is not allowed for create/update payloads.\nDuplicate `position` is allowed for both checklist headers and checklist items.\nDisplay order is stable: checklist headers `position ASC, title ASC`; checklist_items `position ASC, name ASC`.\nRequest is transactional: if one checklist/item fails, the whole batch is rolled back.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Air Rescuer Checklist" ], "summary": "Create air rescuer checklist (bulk)", "parameters": [ { "description": "Bulk checklist create payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/air-rescuer-checklist/delete/{uuid}": { "delete": { "description": "Delete one checklist header by UUID.\nRelated checklist items are removed together following current implementation behavior.", "produces": [ "application/json" ], "tags": [ "Air Rescuer Checklist" ], "summary": "Delete air rescuer checklist", "parameters": [ { "type": "string", "description": "Checklist UUID", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistGroupedListResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/air-rescuer-checklist/get-all": { "get": { "description": "Grouped by base and returned in `data[].attributes.bases`.\nResponse includes `tabs[]` with default tab order: `CAT`, `TA`, `MO`, `DI`, `MI`, `DO`, `FR`, `SA`, `SO`, `M10`, `M15`, `M20`, `M25`, `DS`.\n`CAT` is a virtual overview tab (not persisted in DB).\n`CAT.groups[]` only includes non-empty persisted scopes and does not include `checklist_items`.\nNormal tabs are always present. Empty normal tabs are explicitly returned as `checklists: []`.\nScope display names: `CAT=Category`, `TA=Daily`, `MO=Monday`, `DI=Tuesday`, `MI=Wednesday`, `DO=Thursday`, `FR=Friday`, `SA=Saturday`, `SO=Sunday`, `M10=M10`, `M15=M15`, `M20=M20`, `M25=M25`, `DS=Deadline`.\nDuplicate `position` is allowed. Display order is stable: checklist headers `position ASC, title ASC`; checklist_items `position ASC, name ASC`.\nOptional filters: `base_id`, `category_type` (`regular|hems`), `base_name`, `base_abbreviation`, `scope_code` (`CAT`/`OVERVIEW` or persisted scope / aliases).", "produces": [ "application/json" ], "tags": [ "Air Rescuer Checklist" ], "summary": "List air rescuer checklist grouped by base", "parameters": [ { "type": "string", "description": "Filter by base UUID", "name": "base_id", "in": "query" }, { "enum": [ "regular", "hems" ], "type": "string", "description": "Filter by base category", "name": "category_type", "in": "query" }, { "type": "string", "description": "Filter by base name (contains, case-insensitive)", "name": "base_name", "in": "query" }, { "type": "string", "description": "Filter by base abbreviation (contains, case-insensitive)", "name": "base_abbreviation", "in": "query" }, { "type": "string", "description": "Filter by scope code. Allowed canonical: CAT, TA, MO, DI, MI, DO, FR, SA, SO, M10, M15, M20, M25, DS. English aliases are also accepted.", "name": "scope_code", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistGroupedDataTableResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/air-rescuer-checklist/get-all/dt": { "get": { "description": "Datatable variant for grouped air rescuer checklist data.\nSemantic data is the same as `get-all`: grouped by base with `tabs[]`, virtual `CAT`, and normal tabs always present.\n`CAT.groups[]` only includes non-empty persisted scopes and does not include `checklist_items`.\nEmpty normal tabs are explicitly returned as `checklists: []`.\nScope display names: `CAT=Category`, `TA=Daily`, `MO=Monday`, `DI=Tuesday`, `MI=Wednesday`, `DO=Thursday`, `FR=Friday`, `SA=Saturday`, `SO=Sunday`, `M10=M10`, `M15=M15`, `M20=M20`, `M25=M25`, `DS=Deadline`.\nDuplicate `position` is allowed. Display order is stable: checklist headers `position ASC, title ASC`; checklist_items `position ASC, name ASC`.\nOptional filters: `base_id`, `category_type` (`regular|hems`), `base_name`, `base_abbreviation`, `scope_code`.\nPagination/query controls: `page`, `size`, `limit`, `draw`.", "produces": [ "application/json" ], "tags": [ "Air Rescuer Checklist" ], "summary": "List air rescuer checklist grouped by base (datatable)", "parameters": [ { "type": "string", "description": "Filter by base UUID", "name": "base_id", "in": "query" }, { "enum": [ "regular", "hems" ], "type": "string", "description": "Filter by base category", "name": "category_type", "in": "query" }, { "type": "string", "description": "Filter by base name (contains, case-insensitive)", "name": "base_name", "in": "query" }, { "type": "string", "description": "Filter by base abbreviation (contains, case-insensitive)", "name": "base_abbreviation", "in": "query" }, { "type": "string", "description": "Filter by scope code. Allowed canonical: CAT, TA, MO, DI, MI, DO, FR, SA, SO, M10, M15, M20, M25, DS. English aliases are also accepted.", "name": "scope_code", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (max 100)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Datatable draw counter", "name": "draw", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistGroupedDataTableResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/air-rescuer-checklist/get/{uuid}": { "get": { "description": "Return one checklist detail by UUID.\nIncludes checklist header, base info, and `items` (`checklist_items`).", "produces": [ "application/json" ], "tags": [ "Air Rescuer Checklist" ], "summary": "Get air rescuer checklist by UUID", "parameters": [ { "type": "string", "description": "Checklist UUID", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/air-rescuer-checklist/items/delete/{item_uuid}": { "delete": { "description": "Delete one existing checklist item by `item_uuid`.", "produces": [ "application/json" ], "tags": [ "Air Rescuer Checklist" ], "summary": "Delete one checklist item", "parameters": [ { "type": "string", "description": "Checklist item UUID", "name": "item_uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.Document" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/air-rescuer-checklist/items/update/{item_uuid}": { "patch": { "description": "Update one existing checklist item by `item_uuid`.\nThis endpoint only affects the selected item.\nDuplicate `position` is allowed.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Air Rescuer Checklist" ], "summary": "Update one checklist item", "parameters": [ { "type": "string", "description": "Checklist item UUID", "name": "item_uuid", "in": "path", "required": true }, { "description": "Checklist item update payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/air-rescuer-checklist/update/{uuid}": { "patch": { "description": "Update checklist header fields (`scope_code`, `title`, `position`) and/or append `new_items`.\n`new_items` is append-only. Existing items are not updated/deleted by this endpoint.\nItem update/delete lifecycle must use dedicated item endpoints.\n`scope_code` accepts persisted codes and English aliases, but `CAT` (or `OVERVIEW`) is not allowed for update payload.\nDuplicate `position` is allowed.\nRequest is transactional.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Air Rescuer Checklist" ], "summary": "Update air rescuer checklist header and append new items", "parameters": [ { "type": "string", "description": "Checklist UUID", "name": "uuid", "in": "path", "required": true }, { "description": "Checklist update payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/air-rescuer-checklist/{uuid}/items/create": { "post": { "description": "Create one or more items for an existing checklist.\nParent checklist is taken from path `uuid`.\nDuplicate `position` is allowed. Display order for checklist_items is `position ASC, name ASC`.\nRequest is transactional: if one item fails, all item inserts in the batch are rolled back.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Air Rescuer Checklist" ], "summary": "Create checklist items (bulk)", "parameters": [ { "type": "string", "description": "Checklist UUID", "name": "uuid", "in": "path", "required": true }, { "description": "Bulk checklist item create payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/air-rescuer-checklist/{uuid}/items/reorder": { "patch": { "description": "Reorder one or more checklist items for the checklist in path `uuid`.\nUse this endpoint to swap or reorder positions with a single PIN validation.\nDuplicate `position` values remain allowed by domain rules.\nRequest is transactional: if one item fails, all position updates are rolled back.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Air Rescuer Checklist" ], "summary": "Reorder checklist items in one request", "parameters": [ { "type": "string", "description": "Checklist UUID", "name": "uuid", "in": "path", "required": true }, { "description": "Checklist item reorder payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/audit-logs/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting.", "produces": [ "application/json" ], "tags": [ "Audit Logs" ], "summary": "List audit logs", "parameters": [ { "type": "string", "description": "Search by request_id/layer/action/method/path/message (contains)", "name": "filter[search]", "in": "query" }, { "enum": [ "POST", "PUT", "PATCH", "DELETE", "UPDATE", "ALL", "*" ], "type": "string", "description": "Method filter; single/comma-separated values or ALL/*", "name": "filter[method]", "in": "query" }, { "enum": [ "POST", "PUT", "PATCH", "DELETE", "UPDATE", "ALL", "*" ], "type": "string", "description": "Alias for filter[method]", "name": "method", "in": "query" }, { "enum": [ "air_rescuer_checklist", "audit_log", "auth", "base", "base_regular", "base_hems", "base_roster", "branding", "contact", "duty_roster", "facility", "federal_state", "file_manager", "flight", "flight_data", "forces_present", "health_insurance_company", "helicopter", "helicopter_file", "hems_roster", "hospital", "icao", "insurance_patient_data", "land", "master_setting", "medicine", "mission", "opc", "patient_data", "reserve_ac", "role", "user", "vocation", "unknown", "ALL", "*" ], "type": "string", "description": "Module filter; single/comma-separated values or ALL/*", "name": "filter[module]", "in": "query" }, { "enum": [ "air_rescuer_checklist", "audit_log", "auth", "base", "base_regular", "base_hems", "base_roster", "branding", "contact", "duty_roster", "facility", "federal_state", "file_manager", "flight", "flight_data", "forces_present", "health_insurance_company", "helicopter", "helicopter_file", "hems_roster", "hospital", "icao", "insurance_patient_data", "land", "master_setting", "medicine", "mission", "opc", "patient_data", "reserve_ac", "role", "user", "vocation", "unknown", "ALL", "*" ], "type": "string", "description": "Alias for filter[module]", "name": "module", "in": "query" }, { "enum": [ "list", "get", "create", "update", "delete", "export", "custom", "ALL", "*" ], "type": "string", "description": "Action filter; single/comma-separated values or ALL/*", "name": "filter[action]", "in": "query" }, { "enum": [ "list", "get", "create", "update", "delete", "export", "custom", "ALL", "*" ], "type": "string", "description": "Alias for filter[action]", "name": "action", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 200)", "name": "page[size]", "in": "query" }, { "enum": [ "created_at", "-created_at", "module", "-module", "action", "-action", "layer", "-layer", "status_code", "-status_code", "success", "-success" ], "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.Document" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/email-otp/send": { "post": { "description": "Sends a one-time 6-digit OTP to user email using login challenge token from /auth/login.\nSecurity controls: old OTP is invalidated, resend cooldown is enforced, and resend/hour quota is enforced.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - Email OTP" ], "summary": "Send login OTP to email", "parameters": [ { "description": "JSON:API Email OTP send request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.EmailOTPSendRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.EmailOTPSendResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "429": { "description": "Too Many Requests", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/email-otp/verify": { "post": { "description": "Verifies one-time OTP and completes login by issuing auth cookies.\nOTP is one-time use, expires automatically, and failed attempts are limited and audited.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - Email OTP" ], "summary": "Verify login OTP from email", "parameters": [ { "description": "JSON:API Email OTP verify request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.EmailOTPVerifyRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.EmailOTPVerifyResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/exchange": { "post": { "description": "Accepts Microsoft token payload from frontend ssoSilent and issues backend auth cookies.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Exchange frontend Microsoft SSO token into backend session", "parameters": [ { "description": "JSON:API Exchange request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ExchangeRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TokenResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/forgot-password": { "post": { "description": "Always returns a generic success response.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - Forgot Password" ], "summary": "Forgot password", "parameters": [ { "description": "JSON:API Forgot password request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForgotPasswordRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthSessionsResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/invite": { "post": { "description": "Creates user without password and sends set-password link to email.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Invite user", "parameters": [ { "description": "JSON:API Invite request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InviteRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/invite/resend-set-password": { "post": { "description": "Triggers a new set-password invite email for an invited user by user_id. Response is generic for security.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Resend set-password invite", "parameters": [ { "description": "JSON:API resend set-password invite request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ResendSetPasswordInviteRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthSessionsResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/login": { "post": { "description": "If TOTP enabled, returns 202 + challenge_token (use /auth/totp/verify).\nIf TOTP is not enabled, returns 202 + email OTP challenge_token (use /auth/email-otp/send then /auth/email-otp/verify).", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Login with email \u0026 password", "parameters": [ { "description": "JSON:API Login request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LoginRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthCurrentUserResponse" } }, "202": { "description": "Accepted", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LoginEmailOTPRequiredResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/logout": { "post": { "produces": [ "application/json" ], "tags": [ "Auth - Refresh" ], "summary": "Logout (revoke refresh)", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VerifyEmailResponse" } } } } }, "/api/v1/auth/me": { "get": { "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Get current user", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthCurrentUserResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/me/timezone": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Update current user timezone", "parameters": [ { "description": "JSON:API timezone update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TimezoneUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthCurrentUserResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/microsoft/callback": { "get": { "description": "Completes Microsoft SSO login. Login succeeds only when SSO identity is already linked to an existing user.", "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Microsoft Entra SSO callback", "parameters": [ { "type": "string", "description": "Authorization code", "name": "code", "in": "query", "required": true }, { "type": "string", "description": "State", "name": "state", "in": "query", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MicrosoftCallbackResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/microsoft/front-channel-logout": { "get": { "description": "OIDC front-channel logout endpoint. Configure this URL as the \"Front-channel logout URL\" in Microsoft Entra. Microsoft loads it in a hidden iframe when the user signs out at the IdP (or from another RP). It clears local auth cookies and revokes the server-side session plus the stored Microsoft refresh token for the browser that owns the request. It never redirects and always returns 200 so the IdP logout flow can complete.", "produces": [ "text/html" ], "tags": [ "Auth - SSO" ], "summary": "Microsoft front-channel logout callback", "responses": { "200": { "description": "logged out", "schema": { "type": "string" } } } } }, "/api/v1/auth/microsoft/link": { "get": { "security": [ { "BearerAuth": [] } ], "description": "Returns JSON:API payload containing Microsoft authorization URL for linking SSO to the current authenticated user.", "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Microsoft Entra SSO link URL", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MicrosoftLoginResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/microsoft/login": { "get": { "description": "Returns JSON:API payload containing Microsoft authorization URL.\nBackend starts with silent session-check (`prompt=none`). If Microsoft session is inactive, callback automatically falls back to interactive login.", "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Microsoft Entra SSO login", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MicrosoftLoginResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/microsoft/login-check": { "get": { "description": "Returns JSON:API payload containing Microsoft authorization URL with prompt=none for strict session check.", "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Microsoft Entra silent session check URL", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MicrosoftLoginResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/microsoft/logout": { "post": { "produces": [ "application/json" ], "tags": [ "Auth - SSO" ], "summary": "Logout Microsoft OAuth session", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VerifyEmailResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/microsoft/reauth": { "get": { "description": "Starts a Microsoft reauthentication flow for supported sensitive actions.", "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Microsoft Entra SSO reauth URL", "parameters": [ { "type": "string", "description": "Supported values: pin_reset_request, pin_reset_confirm", "name": "purpose", "in": "query", "required": true }, { "type": "string", "description": "Required when purpose=pin_reset_confirm", "name": "token", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MicrosoftLoginResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/microsoft/refresh": { "post": { "produces": [ "application/json" ], "tags": [ "Auth - SSO" ], "summary": "Refresh Microsoft access token", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TokenResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "428": { "description": "Precondition Required", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/pin/change": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - PIN" ], "summary": "Change security PIN", "parameters": [ { "description": "JSON:API security PIN change request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SecurityPINChangeRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthSessionsResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "429": { "description": "Too Many Requests", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/pin/forgot": { "post": { "description": "Always returns a generic success response.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - PIN" ], "summary": "Forgot security PIN", "parameters": [ { "description": "JSON:API forgot security PIN request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForgotSecurityPINRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthSessionDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/pin/request-reset": { "post": { "description": "Verifies current account password, then sends PIN reset email to currently logged-in user when PIN is blocked.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - PIN" ], "summary": "Request security PIN reset email for blocked PIN", "parameters": [ { "description": "JSON:API request security PIN reset payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RequestSecurityPINRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RequestSecurityPINResetResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "429": { "description": "Too Many Requests", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/pin/reset": { "post": { "description": "Resets security PIN using a re-auth method. For method=password, send the single-use reset token from the email link plus password. For method=microsoft, send only reauth_token from Microsoft re-auth.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - PIN" ], "summary": "Reset security PIN", "parameters": [ { "description": "JSON:API reset security PIN request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ResetSecurityPINRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthSessionsResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/pin/setup": { "post": { "description": "Creates a 6-digit security PIN for sensitive actions.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - PIN" ], "summary": "Setup security PIN", "parameters": [ { "description": "JSON:API security PIN setup request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SecurityPINSetupRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SecurityPINSetupResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/pin/verify": { "post": { "description": "Verifies PIN and returns a short-lived one-time action token.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - PIN" ], "summary": "Verify security PIN for sensitive action", "parameters": [ { "description": "JSON:API security PIN verify request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SecurityPINVerifyRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SecurityPINVerifyResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "429": { "description": "Too Many Requests", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/refresh": { "post": { "produces": [ "application/json" ], "tags": [ "Auth - Refresh" ], "summary": "Refresh access token", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TokenResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/register": { "post": { "description": "Creates user (public role: from AUTH_DEFAULT_ROLE, fallback: user) and sends verification link to email without issuing an auth session.\nNext: open verify link -\u003e then login.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Register user with email \u0026 password", "parameters": [ { "description": "JSON:API Register request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RegisterRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/reset-password": { "post": { "description": "Resets password using a single-use reset token.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - Forgot Password" ], "summary": "Reset password", "parameters": [ { "description": "JSON:API Reset password request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ResetPasswordRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthSessionDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/sessions": { "get": { "description": "Lists all active sessions/devices for current user.", "produces": [ "application/json" ], "tags": [ "Auth - Refresh" ], "summary": "List active sessions", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthSessionsResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/sessions/{session_id}": { "delete": { "description": "Revokes one session/device immediately. Requires PIN action token (header X-PIN-Verification-Token) with action=3d7d1d5f-ec48-4eca-a7ea-37f4f7927d06.", "produces": [ "application/json" ], "tags": [ "Auth - Refresh" ], "summary": "Delete one session", "parameters": [ { "type": "string", "description": "Session ID", "name": "session_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthSessionDeleteResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/set-password": { "post": { "description": "Sets first password for invited user and marks email as verified.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Set password from invite token", "parameters": [ { "description": "JSON:API Set password request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SetPasswordRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnResetSetupResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/sso/link": { "post": { "security": [ { "BearerAuth": [] } ], "description": "Link Microsoft SSO identity to the authenticated user. SSO login will only work after successful link.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Link Microsoft SSO to current user", "parameters": [ { "description": "JSON:API SSO link request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SSOLinkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SSOLinkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/sso/unlink": { "delete": { "security": [ { "BearerAuth": [] } ], "description": "Remove Microsoft SSO mapping from authenticated user.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Unlink Microsoft SSO from current user", "parameters": [ { "description": "JSON:API SSO unlink request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SSOUnlinkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SSOUnlinkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/totp/confirm": { "post": { "description": "Validates initial TOTP code and enables TOTP for future logins.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - TOTP" ], "summary": "Confirm TOTP setup", "parameters": [ { "description": "JSON:API TOTP confirm request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPConfirmRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VerifyEmailResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/totp/disable": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - TOTP" ], "summary": "Disable TOTP", "parameters": [ { "description": "JSON:API TOTP disable request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPDisableRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VerifyEmailResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/totp/reset-setup": { "post": { "description": "Removes TOTP setup so the user can re-setup authenticator.\nFor method=pin, obtain token from /auth/pin/verify with action=0b5409b5-94f3-4aab-9de2-44b0ad5858f1 and send it in X-PIN-Verification-Token header.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - TOTP" ], "summary": "Reset TOTP setup", "parameters": [ { "description": "JSON:API TOTP reset setup request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPResetSetupRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VerifyEmailResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "429": { "description": "Too Many Requests", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/totp/setup": { "post": { "description": "Generates secret and otpauth URL. TOTP is NOT enabled until confirmed.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - TOTP" ], "summary": "Setup TOTP", "parameters": [ { "description": "JSON:API TOTP setup request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPSetupRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPSetupResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/totp/verify": { "post": { "description": "Completes login when TOTP is enabled and returns auth cookies.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - TOTP" ], "summary": "Verify TOTP code", "parameters": [ { "description": "JSON:API TOTP verify request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPVerifyRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TokenResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/verify-email": { "get": { "description": "Confirms email verification after register.", "produces": [ "application/json" ], "tags": [ "Auth" ], "summary": "Verify email", "parameters": [ { "type": "string", "description": "Verification token", "name": "token", "in": "query", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthSessionDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/webauthn/login/begin": { "post": { "description": "Creates WebAuthn assertion options for a user email.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - WebAuthn" ], "summary": "Begin WebAuthn login", "parameters": [ { "description": "JSON:API WebAuthn login begin request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnLoginBeginRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnBeginResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/webauthn/login/finish": { "post": { "description": "Verifies WebAuthn assertion and issues auth cookies.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - WebAuthn" ], "summary": "Finish WebAuthn login", "parameters": [ { "description": "JSON:API WebAuthn login finish request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnLoginFinishRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TokenResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/webauthn/register/begin": { "post": { "description": "Creates WebAuthn registration options for the authenticated user.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - WebAuthn" ], "summary": "Begin WebAuthn registration", "parameters": [ { "description": "JSON:API WebAuthn register begin request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnRegisterBeginRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnBeginResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/webauthn/register/finish": { "post": { "description": "Verifies WebAuthn registration response and stores the credential.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - WebAuthn" ], "summary": "Finish WebAuthn registration", "parameters": [ { "description": "JSON:API WebAuthn register finish request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnRegisterFinishRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthSessionsResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/auth/webauthn/reset-setup": { "post": { "description": "Removes all registered WebAuthn credentials so the user can re-setup passkeys.\nFor method=pin, obtain token from /auth/pin/verify with action=1f7d457e-0a19-4a36-8d9f-2c66fd2369ab and send it in X-PIN-Verification-Token header.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Auth - WebAuthn" ], "summary": "Reset WebAuthn setup", "parameters": [ { "description": "JSON:API WebAuthn reset setup request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnResetSetupRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthSessionDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "429": { "description": "Too Many Requests", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/bases/create": { "post": { "description": "Example request:\n{\"data\":{\"type\":\"base\",\"attributes\":{\"base\":\"Lude Testing 2\",\"base_abbreviation\":\"LOIG\",\"base_category\":\"regular\",\"address\":\"Lude Airfield\",\"latitude\":47.3769,\"longitude\":8.5417,\"sortkey\":1,\"sms_alert\":false,\"checklist\":false,\"leg_time\":\"00:20\",\"default_start_time_type\":\"FIXED\",\"default_end_time_type\":\"FIXED\",\"default_shift_start\":\"06:00\",\"default_shift_end\":\"21:00\",\"utc\":\"0\",\"notes\":\"Main base\",\"operational_shift_times\":[{\"date_start\":\"2026-06-15\",\"date_end\":\"2026-06-15\",\"start_time_type\":\"BMCT\",\"end_time_type\":\"ECET\"}]}}}", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Bases" ], "summary": "Create base", "parameters": [ { "description": "JSON:API base create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/bases/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "Bases" ], "summary": "Delete base", "parameters": [ { "type": "string", "description": "Base UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/bases/get-all": { "get": { "description": "JSON:API list with filtering and sorting. This endpoint returns all bases.", "produces": [ "application/json" ], "tags": [ "Bases" ], "summary": "List bases", "parameters": [ { "enum": [ "regular", "hems" ], "type": "string", "description": "Base category", "name": "category_type", "in": "query" }, { "enum": [ "regular", "hems" ], "type": "string", "description": "Alias filter for base category", "name": "base_category", "in": "query" }, { "type": "string", "description": "Search by base/base_abbreviation/address/email/phone", "name": "search", "in": "query" }, { "type": "boolean", "description": "Filter by DUL flag (true/false)", "name": "dul", "in": "query" }, { "type": "integer", "description": "Ignored", "name": "page", "in": "query" }, { "type": "integer", "description": "Ignored", "name": "size", "in": "query" }, { "type": "integer", "description": "Ignored", "name": "limit", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseListResponse" } } } } }, "/api/v1/bases/get-all/dt": { "get": { "produces": [ "application/json" ], "tags": [ "Bases" ], "summary": "List bases (datatable)", "parameters": [ { "enum": [ "regular", "hems" ], "type": "string", "description": "Base category", "name": "category_type", "in": "query" }, { "enum": [ "regular", "hems" ], "type": "string", "description": "Alias filter for base category", "name": "base_category", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" }, { "type": "boolean", "description": "Filter by DUL flag (true/false)", "name": "dul", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseDataTableResponse" } } } } }, "/api/v1/bases/get/{uuid}": { "get": { "produces": [ "application/json" ], "tags": [ "Bases" ], "summary": "Get base by ID", "parameters": [ { "type": "string", "description": "Base UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/bases/update/{uuid}": { "patch": { "description": "Example request:\n{\"data\":{\"type\":\"hems_base\",\"id\":\"\u003cuuid\u003e\",\"attributes\":{\"base\":\"Lude Testing 2\",\"base_abbreviation\":\"LOIG\",\"base_category\":\"regular\",\"address\":\"Lude Airfield\",\"latitude\":47.3769,\"longitude\":8.5417,\"sortkey\":1,\"sms_alert\":false,\"checklist\":false,\"leg_time\":\"00:20\",\"default_start_time_type\":\"FIXED\",\"default_end_time_type\":\"FIXED\",\"default_shift_start\":\"06:00\",\"default_shift_end\":\"21:00\",\"utc\":\"0\",\"notes\":\"Main base\",\"operational_shift_times\":[{\"date_start\":\"2026-06-15\",\"date_end\":\"2026-06-15\",\"start_time_type\":\"BMCT\",\"end_time_type\":\"ECET\"}]}}}", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Bases" ], "summary": "Update base", "parameters": [ { "type": "string", "description": "Base UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API base update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/branding/login-content": { "get": { "description": "Return public stable login title and subtitle from active master settings with backend defaults.\nSupports conditional requests with `If-None-Match` / `If-Modified-Since`.", "produces": [ "application/json" ], "tags": [ "Branding" ], "summary": "Get login content", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/internal_transport_http_handlers.loginBrandingContentDocument" } }, "304": { "description": "Not Modified", "schema": { "type": "string" } } } } }, "/api/v1/branding/login-cover": { "get": { "description": "Return public stable login cover image for sign-in page.\nSupports conditional requests with `If-None-Match` / `If-Modified-Since`.", "produces": [ "image/png", "image/jpeg", "image/webp", "image/svg+xml", "application/octet-stream" ], "tags": [ "Branding" ], "summary": "Get login cover image", "responses": { "200": { "description": "Login cover image binary", "schema": { "type": "file" } }, "304": { "description": "Not Modified", "schema": { "type": "string" } } } } }, "/api/v1/branding/logo": { "get": { "description": "Return a stable company logo asset for frontend consumption.\nBackend resolves private object storage internally (no presigned URL exposure) and serves fallback logo when managed logo is unavailable.\nSupports conditional requests with `If-None-Match` / `If-Modified-Since`.", "produces": [ "image/png", "image/jpeg", "image/webp", "image/svg+xml", "application/octet-stream" ], "tags": [ "Branding" ], "summary": "Get branding logo", "responses": { "200": { "description": "Branding logo binary", "schema": { "type": "file" } }, "304": { "description": "Not Modified", "schema": { "type": "string" } } } } }, "/api/v1/complaints/action-taken/create/{id}": { "post": { "description": "Records the corrective action text taken for a complaint. Recording the action does NOT sign it and does NOT lift the AOG grounding: signing the action is a separate step at POST /api/v1/action-signoffs/sign/{helicopter_id} (send complaint_id), and returning the aircraft to service requires a formal release (a signed EASA release / CRS, or an NSR). The complaint stays open until an EASA release fixes it.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "Record the corrective action for a complaint", "parameters": [ { "type": "string", "description": "Complaint ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "Action taken payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintActionTakenRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/complaints/action-taken/update/{id}": { "patch": { "description": "Updates the previously-recorded corrective action text of a complaint. Recording/updating the action does NOT sign it — signing is a separate step at POST /api/v1/action-signoffs/sign/{helicopter_id} (send complaint_id).", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "Update the recorded corrective action for a complaint", "parameters": [ { "type": "string", "description": "Complaint ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "Action taken payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintActionTakenRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/complaints/create": { "post": { "description": "Create a complaint (defect) for a flight inspection.\nMEL severity (mel_severity, OPTIONAL): omit it to file a \"pending_mel\" complaint and classify later (via PATCH /complaints/update/{id}); it MUST be classified before recording action taken. A pending complaint does NOT ground the aircraft — grounding starts at classification. Values: 0 = NON-MEL (grounds immediately); 1 = A (1 day grace); 2 = B (3 days); 3 = C (10 days); 4 = D (120 days). After the grace period passes without action the aircraft becomes AOG.\nNSR (Non-Safety Release) is its own flow — sign it at POST /api/v1/complaints/nsr/sign/{id} (cancel at /nsr/unsign/{id}); it is no longer set via create/update.\nOptional fields: aircraft_hours_at_report.\nTo record the corrective action, use POST /api/v1/complaints/action-taken/create/{id} (a separate, explicitly-signed step) — it is no longer part of create/update.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "Create complaint", "parameters": [ { "description": "JSON:API complaint create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/complaints/delete/{id}": { "delete": { "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "Delete complaint", "parameters": [ { "type": "string", "description": "Complaint ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.Document" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/complaints/get-all": { "get": { "description": "Lists complaints grouped by helicopter. Filter by date range on the reported date, by the name of an involved person (reporter / MEL classifier / action signer / NSR decider — i.e. pilot/techniker), and by free-text search on the complaint description.", "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "List complaints", "parameters": [ { "type": "string", "description": "Search complaint description", "name": "search", "in": "query" }, { "type": "string", "description": "Reported date lower bound (YYYY-MM-DD)", "name": "date_from", "in": "query" }, { "type": "string", "description": "Reported date upper bound (YYYY-MM-DD)", "name": "date_to", "in": "query" }, { "type": "string", "description": "Involved person name (pilot/techniker, partial match)", "name": "person", "in": "query" }, { "type": "string", "description": "Filter by helicopter ID (UUIDv7)", "name": "helicopter_id", "in": "query" }, { "type": "string", "description": "Sort complaints", "name": "sort", "in": "query" }, { "type": "integer", "default": 1, "description": "Page number", "name": "page", "in": "query" }, { "type": "integer", "default": 20, "description": "Page size", "name": "page_size", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintGroupedListResponse" } } } } }, "/api/v1/complaints/get-all/dt": { "get": { "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "List complaints grouped by helicopter (datatable)", "parameters": [ { "type": "string", "description": "Search complaint description", "name": "search", "in": "query" }, { "type": "string", "description": "Reported date lower bound (YYYY-MM-DD)", "name": "date_from", "in": "query" }, { "type": "string", "description": "Reported date upper bound (YYYY-MM-DD)", "name": "date_to", "in": "query" }, { "type": "string", "description": "Involved person name (pilot/techniker, partial match)", "name": "person", "in": "query" }, { "type": "string", "description": "Filter by helicopter ID (UUIDv7)", "name": "helicopter_id", "in": "query" }, { "type": "string", "description": "Sort complaints", "name": "sort", "in": "query" }, { "type": "integer", "default": 1, "description": "Datatable draw counter", "name": "draw", "in": "query" }, { "type": "integer", "default": 0, "description": "Datatable start offset", "name": "start", "in": "query" }, { "type": "integer", "default": 10, "description": "Datatable page length", "name": "length", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintGroupedDataTableResponse" } } } } }, "/api/v1/complaints/get-by-helicopter/{helicopter_id}": { "get": { "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "List complaints by helicopter", "parameters": [ { "type": "string", "description": "Helicopter ID", "name": "helicopter_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintGroupedListResponse" } } } } }, "/api/v1/complaints/get/{id}": { "get": { "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "Get complaint by ID", "parameters": [ { "type": "string", "description": "Complaint ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/complaints/hold-items/get-all": { "get": { "description": "Returns the Hold Item List (HIL): complaints that are still OPEN (not yet fixed by an EASA release) AND MEL-deferred (mel_severity \u003e 0). Non-MEL defects (which ground the aircraft immediately) and already-serviced complaints are excluded. Same grouped shape and filters as get-all.", "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "List hold items (open MEL-deferred defects)", "parameters": [ { "type": "string", "description": "From date — reported_at \u003e= (YYYY-MM-DD). Legacy 'Von'.", "name": "date_from", "in": "query" }, { "type": "string", "description": "To date — reported_at \u003c= (YYYY-MM-DD). Legacy 'bis'.", "name": "date_to", "in": "query" }, { "type": "string", "description": "Pilot/Technician name — matches reporter or action signer. Legacy 'Pilot/Techniker'.", "name": "person", "in": "query" }, { "type": "string", "description": "Search complaint description / MEL. Legacy 'Complains'.", "name": "search", "in": "query" }, { "type": "string", "description": "Helicopter ID (UUIDv7)", "name": "helicopter_id", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20)", "name": "page_size", "in": "query" }, { "type": "string", "description": "Sort expression (e.g. reported_at DESC)", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintGroupedListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/complaints/hold-items/get-all/dt": { "get": { "description": "Datatable variant of the Hold Item List (open + MEL-deferred complaints). Same filters as /hold-items/get-all (date_from, date_to, person, search, helicopter_id) plus DataTables params (start, length, draw).", "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "List hold items (open MEL-deferred defects) — datatable", "parameters": [ { "type": "string", "description": "From date — reported_at \u003e= (YYYY-MM-DD). Legacy 'Von'.", "name": "date_from", "in": "query" }, { "type": "string", "description": "To date — reported_at \u003c= (YYYY-MM-DD). Legacy 'bis'.", "name": "date_to", "in": "query" }, { "type": "string", "description": "Pilot/Technician name — matches reporter or action signer.", "name": "person", "in": "query" }, { "type": "string", "description": "Search complaint description / MEL.", "name": "search", "in": "query" }, { "type": "string", "description": "Helicopter ID (UUIDv7)", "name": "helicopter_id", "in": "query" }, { "type": "integer", "description": "DataTables start offset", "name": "start", "in": "query" }, { "type": "integer", "description": "DataTables page length", "name": "length", "in": "query" }, { "type": "integer", "description": "DataTables draw counter", "name": "draw", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintGroupedListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/complaints/nsr/sign/{id}": { "post": { "description": "Records an NSR decision on its own flow (separate from complaint update): the aircraft is released to fly despite the open defect and is no longer grounded by it. MEL must be classified first — an unassessed (pending_mel) defect cannot be deferred, so a pending complaint returns 422. The complaint stays OPEN and is only closed by a signed EASA release. Requires the complaint.nsr permission.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "Sign a Non-Safety Release (NSR / MEL deferral) for a complaint", "parameters": [ { "type": "string", "description": "Complaint ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "Optional NSR reason", "name": "request", "in": "body", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintNSRSignRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/complaints/nsr/unsign/{id}": { "post": { "description": "Revokes the NSR decision: the deferral is lifted, so the still-open defect grounds the aircraft again (AOG is recomputed). Requires the complaint.nsr permission.", "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "Cancel a Non-Safety Release for a complaint", "parameters": [ { "type": "string", "description": "Complaint ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/complaints/update/{id}": { "patch": { "description": "Update a complaint. All attributes optional; only provided fields change.\nmel_severity: 0 = NON-MEL (immediate AOG); 1 = A (1 day); 2 = B (3 days); 3 = C (10 days); 4 = D (120 days) — AOG after grace passes.\nNSR is not set here — it is its own flow: POST /api/v1/complaints/nsr/sign/{id} (and /nsr/unsign/{id}).\nNote: the corrective action is recorded via POST /api/v1/complaints/action-taken/create/{id} (a separate, signed step), not here.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Complaints" ], "summary": "Update complaint", "parameters": [ { "type": "string", "description": "Complaint ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "JSON:API complaint update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/contact/other": { "get": { "description": "Lists master other-people whose name/mobile_phone/email matches `q` (empty `q` = most recent). Pick one and pass its id as `other_person_id` in a takeover's other_person to reuse without re-entering the data.", "produces": [ "application/json" ], "tags": [ "Contact - Other People" ], "summary": "Search reusable \"other people\" (non-staff) for the takeover picker", "parameters": [ { "type": "string", "description": "Search text (name / mobile_phone / email)", "name": "q", "in": "query" }, { "type": "integer", "description": "Max results (default 20)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Offset", "name": "offset", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.OtherPersonListResponse" } } } } }, "/api/v1/contact/other/create": { "post": { "description": "Registers a person in the other-people master so it can be reused across takeovers. The (name, mobile_phone, email) identity must be unique.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Contact - Other People" ], "summary": "Create a reusable \"other person\" (non-staff)", "parameters": [ { "description": "Other person", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.OtherPersonRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.OtherPersonResponse" } } } } }, "/api/v1/contact/other/delete/{id}": { "delete": { "description": "Soft-deletes a master person. Existing takeover snapshots keep their own copy of the data.", "produces": [ "application/json" ], "tags": [ "Contact - Other People" ], "summary": "Delete a reusable \"other person\"", "parameters": [ { "type": "string", "description": "Other person id", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": true } } } } }, "/api/v1/contact/other/get/{id}": { "get": { "produces": [ "application/json" ], "tags": [ "Contact - Other People" ], "summary": "Get one reusable \"other person\"", "parameters": [ { "type": "string", "description": "Other person id", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.OtherPersonResponse" } } } } }, "/api/v1/contact/other/update/{id}": { "patch": { "description": "Replaces the name/mobile_phone/email of a master person. The new identity must not collide with another person.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Contact - Other People" ], "summary": "Update a reusable \"other person\"", "parameters": [ { "type": "string", "description": "Other person id", "name": "id", "in": "path", "required": true }, { "description": "Other person", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.OtherPersonRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.OtherPersonResponse" } } } } }, "/api/v1/contacts/bulk-update": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Contacts" ], "summary": "Bulk update contacts status", "parameters": [ { "description": "JSON:API bulk update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactBulkUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactSimpleSuccessResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/contacts/create": { "post": { "description": "Create new contact user and role-specific profile.\n`data.type` must be `contact_create`.\n`role_ids` determines roles (use `role_id` only for backward compatibility). Every selected role must include its matching role-specific profile object in `attributes`.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Contacts" ], "summary": "Create contact", "parameters": [ { "description": "JSON:API Contact create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/contacts/get-all": { "get": { "description": "Filter contacts by role and pilot_category. Sort values: name, -name, first_name, -first_name, last_name, -last_name, email, -email, sortkey, -sortkey, note, -note, is_active, -is_active, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "Contacts" ], "summary": "List contacts", "parameters": [ { "type": "string", "description": "Role: pilot|doctor|air_rescuer|technician|flight_assistant|staff", "name": "role", "in": "query" }, { "type": "string", "description": "Pilot category: regular|freelance|dry_lease", "name": "pilot_category", "in": "query" }, { "type": "boolean", "description": "Filter doctor chief flag", "name": "chief_doctor", "in": "query" }, { "type": "boolean", "description": "Filter technician chief flag", "name": "chief_technician", "in": "query" }, { "type": "boolean", "description": "Filter responsible complaint flag", "name": "responsible_complaint", "in": "query" }, { "type": "boolean", "description": "Filter pilot chief flag", "name": "chief_pilot", "in": "query" }, { "type": "boolean", "description": "Filter IFR qualified flag", "name": "ifr_qualified", "in": "query" }, { "type": "string", "description": "Search by username/email/name", "name": "search", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" }, { "type": "integer", "description": "Limit (default 20)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Offset (default 0)", "name": "offset", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/contacts/get-all/dt": { "get": { "description": "Datatable response with pagination params.", "produces": [ "application/json" ], "tags": [ "Contacts" ], "summary": "List contacts (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 1000)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" }, { "type": "string", "description": "Role filter", "name": "role", "in": "query" }, { "type": "string", "description": "Pilot category filter", "name": "pilot_category", "in": "query" }, { "type": "boolean", "description": "Filter doctor chief flag", "name": "chief_doctor", "in": "query" }, { "type": "boolean", "description": "Filter technician chief flag", "name": "chief_technician", "in": "query" }, { "type": "boolean", "description": "Filter responsible complaint flag", "name": "responsible_complaint", "in": "query" }, { "type": "boolean", "description": "Filter pilot chief flag", "name": "chief_pilot", "in": "query" }, { "type": "boolean", "description": "Filter IFR qualified flag", "name": "ifr_qualified", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactDataTableResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/contacts/{user_id}": { "get": { "produces": [ "application/json" ], "tags": [ "Contacts" ], "summary": "Get contact", "parameters": [ { "type": "string", "description": "User UUID", "name": "user_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactListResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } }, "delete": { "produces": [ "application/json" ], "tags": [ "Contacts" ], "summary": "Delete contact", "parameters": [ { "type": "string", "description": "User UUID", "name": "user_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactListResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } }, "patch": { "description": "`data.type` must be `contact_update`.\nSupports updating `role_id` and `role_ids` (multiple roles) in the same request. Sending `role_ids: []` clears all assigned roles.\nOnly one role-specific profile object is allowed in `attributes`. If provided, it must match one of the contact's assigned roles.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Contacts" ], "summary": "Update contact", "parameters": [ { "type": "string", "description": "User UUID", "name": "user_id", "in": "path", "required": true }, { "description": "JSON:API Contact update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/contacts/{user_id}/chief-flags": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Contacts" ], "summary": "Update chief flags", "parameters": [ { "type": "string", "description": "User UUID", "name": "user_id", "in": "path", "required": true }, { "description": "JSON:API chief flags request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactChiefFlagsUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/contacts/{user_id}/license": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Contacts" ], "summary": "Update contact license fields", "parameters": [ { "type": "string", "description": "User UUID", "name": "user_id", "in": "path", "required": true }, { "description": "JSON:API license update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactLicenseUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/contacts/{user_id}/pilot-category": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Contacts" ], "summary": "Update pilot category", "parameters": [ { "type": "string", "description": "User UUID", "name": "user_id", "in": "path", "required": true }, { "description": "JSON:API pilot category request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactPilotCategoryUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/contacts/{user_id}/role": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Contacts" ], "summary": "Update contact role", "parameters": [ { "type": "string", "description": "User UUID", "name": "user_id", "in": "path", "required": true }, { "description": "JSON:API role update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactRoleUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/contacts/{user_id}/status": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Contacts" ], "summary": "Update contact active status", "parameters": [ { "type": "string", "description": "User UUID", "name": "user_id", "in": "path", "required": true }, { "description": "JSON:API status update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactStatusUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactSimpleSuccessResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/dul/create": { "post": { "description": "Possible error code: DUL_INVALID_JSON, DUL_INVALID_UUID, DUL_DATE_INVALID, DUL_VALIDATION_FAILED, DUL_CREATE_FAILED.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "DUL" ], "summary": "Create DUL", "parameters": [ { "description": "DUL create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/dul/delete/{id}": { "delete": { "description": "Possible error code: DUL_INVALID_UUID, DUL_DELETE_FAILED.", "produces": [ "application/json" ], "tags": [ "DUL" ], "summary": "Delete DUL", "parameters": [ { "type": "string", "description": "DUL ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/dul/get-all": { "get": { "description": "Possible error code: DUL_LIST_FAILED.", "produces": [ "application/json" ], "tags": [ "DUL" ], "summary": "List DUL grouped by base", "parameters": [ { "type": "string", "description": "Search by name/info", "name": "search", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "integer", "description": "Page number alias", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size alias", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size alias", "name": "limit", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/dul/get-all/dt": { "get": { "description": "Possible error code: DUL_LIST_FAILED.", "produces": [ "application/json" ], "tags": [ "DUL" ], "summary": "List DUL grouped by base (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search by name/info", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULDataTableResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/dul/get/{id}": { "get": { "description": "Possible error code: DUL_INVALID_UUID, DUL_NOT_FOUND.", "produces": [ "application/json" ], "tags": [ "DUL" ], "summary": "Get DUL by ID", "parameters": [ { "type": "string", "description": "DUL ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/dul/update/{id}": { "patch": { "description": "Possible error code: DUL_INVALID_JSON, DUL_INVALID_UUID, DUL_DATE_INVALID, DUL_VALIDATION_FAILED, DUL_NOT_FOUND, DUL_UPDATE_FAILED.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "DUL" ], "summary": "Update DUL", "parameters": [ { "type": "string", "description": "DUL ID", "name": "id", "in": "path", "required": true }, { "description": "DUL update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/duty-roster/create": { "post": { "description": "Unified endpoint for all base categories.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - Duty Roster" ], "summary": "Create duty roster", "parameters": [ { "description": "Create request payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/duty-roster/crew": { "delete": { "description": "Unified crew delete endpoint by `data.id` and `roster_detail`.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - Duty Roster" ], "summary": "Remove duty roster crew assignment", "parameters": [ { "description": "Crew delete request payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewByIDRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrewDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/duty-roster/delete": { "delete": { "description": "Unified delete endpoint by `data.id`.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - Duty Roster" ], "summary": "Delete duty roster", "parameters": [ { "description": "Delete request payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterAnyDeleteRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/duty-roster/get-all": { "get": { "description": "Combined roster list across HEMS and Base for date range and optional base filters.", "produces": [ "application/json" ], "tags": [ "Flights - Duty Roster" ], "summary": "List all rosters (HEMS + Base)", "parameters": [ { "type": "string", "description": "HEMS base UUID", "name": "hems_base_id", "in": "query" }, { "type": "string", "description": "Base UUID", "name": "base_id", "in": "query" }, { "type": "string", "description": "Filter by base name (contains, case-insensitive)", "name": "base_name", "in": "query" }, { "type": "string", "description": "Start date (YYYY-MM-DD)", "name": "from", "in": "query" }, { "type": "string", "description": "End date (YYYY-MM-DD)", "name": "to", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.Document" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/duty-roster/get-all/dt": { "get": { "description": "Unified datatable endpoint. Optional `base_type` filter: `hems` or `base`.", "produces": [ "application/json" ], "tags": [ "Flights - Duty Roster" ], "summary": "List duty roster (datatable)", "parameters": [ { "type": "string", "description": "Base type filter (hems|base)", "name": "base_type", "in": "query" }, { "type": "string", "description": "Base UUID", "name": "base_id", "in": "query" }, { "type": "string", "description": "Filter by base name", "name": "base_name", "in": "query" }, { "type": "string", "description": "Start date (YYYY-MM-DD)", "name": "from", "in": "query" }, { "type": "string", "description": "End date (YYYY-MM-DD)", "name": "to", "in": "query" }, { "type": "integer", "description": "Page number", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter", "name": "draw", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterGroupedDataTableResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/duty-roster/update": { "patch": { "description": "Unified update endpoint by `data.id`.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - Duty Roster" ], "summary": "Update duty roster (partial)", "parameters": [ { "description": "Update request payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/easa-releases/create": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "EASA Releases" ], "summary": "Create EASA maintenance release (draft) for a helicopter", "parameters": [ { "description": "JSON:API EASA release create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.EASAReleaseCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResponse" } } } } }, "/api/v1/easa-releases/delete/{id}": { "delete": { "produces": [ "application/json" ], "tags": [ "EASA Releases" ], "summary": "Delete (void) an EASA release", "parameters": [ { "type": "string", "description": "EASA release ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseDeleteResponse" } } } } }, "/api/v1/easa-releases/get-by-complaint/{complaint_id}": { "get": { "produces": [ "application/json" ], "tags": [ "EASA Releases" ], "summary": "Get the current EASA release for a complaint", "parameters": [ { "type": "string", "description": "Complaint ID (UUIDv7)", "name": "complaint_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResponse" } } } } }, "/api/v1/easa-releases/get-by-flight/{flight_id}": { "get": { "produces": [ "application/json" ], "tags": [ "EASA Releases" ], "summary": "Get the current EASA release for a flight", "parameters": [ { "type": "string", "description": "Flight ID (UUIDv7)", "name": "flight_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResponse" } } } } }, "/api/v1/easa-releases/get-by-helicopter/{helicopter_id}": { "get": { "produces": [ "application/json" ], "tags": [ "EASA Releases" ], "summary": "List EASA releases for a helicopter", "parameters": [ { "type": "string", "description": "Helicopter ID (UUIDv7)", "name": "helicopter_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseListResponse" } } } } }, "/api/v1/easa-releases/get/{id}": { "get": { "produces": [ "application/json" ], "tags": [ "EASA Releases" ], "summary": "Get EASA release by ID", "parameters": [ { "type": "string", "description": "EASA release ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResponse" } } } } }, "/api/v1/easa-releases/sign/{id}": { "post": { "description": "Signs the release and closes the helicopter's open complaints. The corrective-action sign-off is re-checked at sign time: if the sign-off was invalidated since the draft was created (e.g. its complaint was reopened) it returns 422 `EASA_RELEASE_SIGNOFF_REQUIRED` and does not sign.", "produces": [ "application/json" ], "tags": [ "EASA Releases" ], "summary": "Sign the EASA maintenance release (closes the helicopter's open complaints)", "parameters": [ { "type": "string", "description": "EASA release ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/easa-releases/update/{id}": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "EASA Releases" ], "summary": "Update EASA release (draft fields)", "parameters": [ { "type": "string", "description": "EASA release ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "JSON:API EASA release update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.EASAReleaseUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResponse" } } } } }, "/api/v1/facilities/create": { "post": { "description": "Create a facility row using one shared table. Flight-data SPO references now expect categories like `heslo-rope-label`, `heslo-rope-length`, `heslo-hook`, `hec-rope-label`, and `hec-rope-length`.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Facility - Facilities" ], "summary": "Create facility", "parameters": [ { "description": "JSON:API Facility create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/facilities/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "Facility - Facilities" ], "summary": "Delete facility", "parameters": [ { "type": "string", "description": "Facility UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/facilities/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Supports one shared table with category discriminator (e.g. `heslo-rope-label`, `heslo-hook`, `hec-rope-label`).", "produces": [ "application/json" ], "tags": [ "Facility - Facilities" ], "summary": "List facilities", "parameters": [ { "type": "string", "description": "Search by name/type/length/weight", "name": "search", "in": "query" }, { "type": "string", "description": "Filter by category (e.g. heslo-rope-label, heslo-hook, hec-rope-label)", "name": "category", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityListResponse" } } } } }, "/api/v1/facilities/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "Facility - Facilities" ], "summary": "List facilities (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" }, { "type": "string", "description": "Facility category", "name": "category", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityDataTableResponse" } } } } }, "/api/v1/facilities/get/{uuid}": { "get": { "produces": [ "application/json" ], "tags": [ "Facility - Facilities" ], "summary": "Get facility by ID", "parameters": [ { "type": "string", "description": "Facility UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/facilities/update/{uuid}": { "patch": { "description": "Patch facility by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Facility - Facilities" ], "summary": "Update facility (partial)", "parameters": [ { "type": "string", "description": "Facility UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API Facility update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/federal-state/create": { "post": { "description": "Create a federal state row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Hospital - Federal State" ], "summary": "Create federal state", "parameters": [ { "description": "JSON:API federal state create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/federal-state/delete/{id}": { "delete": { "produces": [ "application/json" ], "tags": [ "Hospital - Federal State" ], "summary": "Delete federal state", "parameters": [ { "type": "string", "description": "Federal State ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/federal-state/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: name, -name, sortkey, -sortkey, is_active, -is_active, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "Hospital - Federal State" ], "summary": "List federal state", "parameters": [ { "type": "string", "description": "Search by name", "name": "filter[search]", "in": "query" }, { "type": "string", "description": "Filter federal state by land UUID", "name": "land_id", "in": "query" }, { "type": "string", "description": "Filter federal state by land name", "name": "land_name", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateListResponse" } } } } }, "/api/v1/federal-state/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "Hospital - Federal State" ], "summary": "List federal state (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" }, { "type": "string", "description": "Search by name", "name": "filter[search]", "in": "query" }, { "type": "string", "description": "Filter federal state by land UUID", "name": "land_id", "in": "query" }, { "type": "string", "description": "Filter federal state by land name", "name": "land_name", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateDataTableResponse" } } } } }, "/api/v1/federal-state/update/{id}": { "patch": { "description": "Patch federal state by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Hospital - Federal State" ], "summary": "Update federal state (partial)", "parameters": [ { "type": "string", "description": "Federal State ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "JSON:API federal state update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/attachments/create": { "post": { "description": "Create generic attachment relation between a file and business reference (ref_type/ref_id).", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Attach file to business reference", "operationId": "FileManagerCreateAttachment", "parameters": [ { "description": "JSON:API attachment create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerAttachmentCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerAttachmentResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/attachments/delete/{uuid}": { "delete": { "description": "Remove generic attachment relation by UUID.", "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Detach attachment relation", "operationId": "FileManagerDeleteAttachment", "parameters": [ { "type": "string", "description": "Attachment UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/attachments/get-all": { "get": { "description": "List generic attachment relations by ref_type and ref_id.", "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "List attachments by business reference", "operationId": "FileManagerListAttachmentsByReference", "parameters": [ { "type": "string", "description": "Business reference type, e.g. helicopter", "name": "ref_type", "in": "query", "required": true }, { "type": "string", "description": "Business reference ID", "name": "ref_id", "in": "query", "required": true }, { "type": "string", "description": "Optional attachment category", "name": "category", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort values: sort_order,-sort_order,created_at,-created_at,updated_at,-updated_at", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerAttachmentListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/attachments/get/{uuid}": { "get": { "description": "Get one generic attachment relation by UUID.", "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Get attachment detail", "operationId": "FileManagerGetAttachment", "parameters": [ { "type": "string", "description": "Attachment UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerAttachmentResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/delete": { "delete": { "description": "Soft-delete multiple nodes by UUID. UUID can be folder or file.\nBulk payload accepts one or many items.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Delete nodes (file/folder) in bulk", "operationId": "FileManagerDeleteNodesBulk", "parameters": [ { "description": "Bulk delete request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerNodePurgeBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerMoveNodeBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/cancel-upload": { "delete": { "description": "Cancel pending upload intents before file entity creation.\nThis endpoint is intended for pre-create cleanup when FE uploaded to object storage but user cancels flow.\nBulk payload accepts one or many items.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Cancel upload intent (bulk)", "operationId": "FileManagerCancelUploadIntentBulk", "parameters": [ { "description": "Bulk cancel upload intent request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileCancelUploadBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/create": { "post": { "description": "Final public control-plane step after direct PUT upload to S3 (bulk contract).\nVerifies uploaded object per item from upload intent, then persists metadata+outbox durably and emits lifecycle status.\nThis endpoint does not upload binary data.\nPublic flow: POST /files/upload (intent+presign) -\u003e PUT to S3 -\u003e POST /files/create.\nfolder_id is optional; null/omitted means create in root folder.\nCanonical JSON:API data.type is \"file_manager_file_create\" (legacy \"file_manager_file\" remains accepted for backward compatibility).\nBulk payload accepts one or many items.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Create file record from uploaded object", "operationId": "FileManagerCreateFileFromUploadedObject", "parameters": [ { "description": "Bulk create payload for user profile image", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUserBulkCreateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/create-aircraft-image": { "post": { "description": "Same as bulk create, but folder is resolved using hierarchy \"__system_root_files__\" -\u003e \"aircraft\" -\u003e \"\u003caircraft designation\u003e\".\naircraft_uuid is required per item to resolve designation.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Create aircraft image file record from uploaded object", "operationId": "FileManagerCreateAircraftImageFromUploadedObject", "parameters": [ { "description": "Bulk create payload for aircraft image", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileAircraftBulkCreateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/create-base-image": { "post": { "description": "Same as bulk create, but folder is resolved using hierarchy \"__system_root_files__\" -\u003e \"bases\" -\u003e \"\u003cbase-type\u003e\" -\u003e \"\u003cbase-name\u003e\".\nbase_uuid is required per item.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Create base image file record from uploaded object", "operationId": "FileManagerCreateBaseImageFromUploadedObject", "parameters": [ { "description": "Bulk create payload for base image", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileBaseBulkCreateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/create-dul-image": { "post": { "description": "Finalize uploaded DUL image file(s) from upload intent.\nIf dul_uuid is provided, file is created under DUL folder hierarchy.\nIf dul_uuid is omitted, file is still created (unassigned), then can be attached during /api/v1/dul/create via file_uuid.\nPossible status: 201 (all success), 207 (partial success), 400 (invalid json/create failed), 401 (unauthorized), 403 (forbidden), 404 (dul or file resources not found), 409 (upload-intent conflict), 422 (validation), 503 (DUL or file-manager service unavailable).\nPossible error code: INVALID_REQUEST, USER_UNAUTHORIZED, FORBIDDEN_ACCESS, FILE_MANAGER_VALIDATION_FAILED, FILE_MANAGER_FILE_NOT_FOUND, FILE_MANAGER_UPLOAD_INTENT_NOT_FOUND, FILE_MANAGER_UPLOAD_INTENT_CONFLICT, DUL_NOT_FOUND, FILE_MANAGER_STORAGE_UNAVAILABLE, FILE_MANAGER_QUEUE_UNAVAILABLE, FILE_MANAGER_ATTACHMENT_SERVICE_UNAVAILABLE, FILE_MANAGER_ACTION_FAILED.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Create DUL image file record from uploaded object", "parameters": [ { "description": "Bulk create payload for DUL image", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileDULBulkCreateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/create-from-template": { "post": { "description": "Copies a helicopter template file into a new draft file and returns a Collabora/WOPI write session for the newly created file.\nThis endpoint always marks the created file as `is_template=false` because the result is a normal working document, not a reusable template.\nThe source template must be a helicopter file that belongs to the same `helicopter_id` provided in the request.\n`template_uuid` is the helicopter-file UUID, not the file UUID.\nRequest fields: `template_uuid`, `helicopter_id`, optional `takeover_id`, and `name`.\nSuccess response includes the new `file_id`, Collabora editor action URL, an access token, and the token TTL in milliseconds.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Create file from template and start a WOPI edit session", "parameters": [ { "description": "Create-from-template payload", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileTemplateCreateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileWOPISessionResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/create-mission-file": { "post": { "description": "Materializes uploaded objects into folder \"missions/\u003cmission-uuid\u003e\", creates attachments (ref_type=mission), and links them to the mission so they appear in GET mission.\nmission_uuid is required per item.\nPossible error code: MISSION_FILE_INVALID_JSON, MISSION_FILE_VALIDATION, MISSION_FILE_INVALID_MISSION_UUID, MISSION_FILE_MISSION_NOT_FOUND, MISSION_FILE_SERVICE_UNAVAILABLE, MISSION_FILE_ACTION_FAILED, FILE_MANAGER_UPLOAD_INTENT_NOT_FOUND, FILE_MANAGER_STORAGE_UNAVAILABLE, FILE_MANAGER_ACTION_FAILED.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Create mission file record from uploaded object", "operationId": "FileManagerCreateMissionFileFromUploadedObject", "parameters": [ { "description": "Bulk create payload for mission file", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileMissionBulkCreateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/create-takeover-file": { "post": { "description": "Finalize uploaded takeover file(s) from upload intent. The takeover relation is attached later from file_id during takeover create/update.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Create takeover file node from uploaded object", "parameters": [ { "description": "Bulk create payload for takeover file", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileTakeoverBulkCreateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/create-user-image": { "post": { "description": "Same as bulk create, but folder is resolved using hierarchy \"__system_root_files__\" -\u003e \"user\" -\u003e \"\u003cusername\u003e-\u003cuser-uuid\u003e\".\nuser_uuid is required per item to resolve target user folder.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Create user profile image file record from uploaded object", "operationId": "FileManagerCreateUserImageFromUploadedObject", "parameters": [ { "description": "Bulk create payload for user profile image", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUserBulkCreateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/get/{uuid}": { "get": { "description": "Return file metadata by UUID.", "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Get file detail", "operationId": "FileManagerGetFile", "parameters": [ { "type": "string", "description": "File UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileDetailResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/update/{uuid}": { "patch": { "description": "Update file metadata by UUID (rename and/or move folder).", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Update file entity (rename and/or move)", "operationId": "FileManagerUpdateFileEntity", "parameters": [ { "type": "string", "description": "File UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API file manager file update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/upload": { "post": { "description": "Control-plane endpoint to create upload intents and presigned PUT URLs for direct upload to S3 (bulk contract).\nBinary does not flow through backend upload endpoint.\nAfter successful PUT to S3, call POST /api/v1/file-manager/files/create with upload_intent_uuid.\nPresigned URL TTL is controlled by backend storage config.\nBulk payload accepts one or many items. Response is item-based and supports partial success.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Request upload intents + presigned PUT URLs", "operationId": "FileManagerRequestUploadIntent", "parameters": [ { "description": "Bulk upload intent request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/upload-aircraft-image": { "post": { "description": "Same flow as file upload intent, but dedicated for aircraft image drag-drop flow.\nUse together with /api/v1/file-manager/files/create-aircraft-image to force target folder \"aircraft\".", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Request upload intents for aircraft drag-drop images", "operationId": "FileManagerRequestAircraftImageUploadIntent", "parameters": [ { "description": "Bulk upload intent request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/upload-base-image": { "post": { "description": "Same flow as file upload intent, but dedicated for base image flow.\nUse together with /api/v1/file-manager/files/create-base-image to force target folder under bases hierarchy.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Request upload intents for base images", "operationId": "FileManagerRequestBaseImageUploadIntent", "parameters": [ { "description": "Bulk upload intent request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/upload-dul-image": { "post": { "description": "Dedicated upload-intent endpoint for DUL image flow.\nPossible status: 201 (all success), 207 (partial success), 400 (invalid json), 401 (unauthorized), 403 (forbidden), 422 (validation), 503 (storage/queue/upload-intent service unavailable).\nPossible error code: INVALID_REQUEST, USER_UNAUTHORIZED, FORBIDDEN_ACCESS, FILE_MANAGER_VALIDATION_FAILED, FILE_MANAGER_STORAGE_UNAVAILABLE, FILE_MANAGER_QUEUE_UNAVAILABLE, FILE_MANAGER_UPLOAD_INTENT_UNAVAILABLE, FILE_MANAGER_ACTION_FAILED.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Request upload intents for DUL images", "parameters": [ { "description": "Bulk upload intent request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/upload-mission-file": { "post": { "description": "Dedicated upload-intent endpoint for mission file flow.\nUse together with /api/v1/file-manager/files/create-mission-file to attach the file to a mission.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Request upload intents for mission files", "operationId": "FileManagerRequestMissionFileUploadIntent", "parameters": [ { "description": "Bulk upload intent request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/upload-takeover-file": { "post": { "description": "Dedicated upload-intent endpoint for takeover file flow.\nUse together with /api/v1/file-manager/files/create-takeover-file to persist the takeover file relation.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Request upload intents for takeover files", "parameters": [ { "description": "Bulk upload intent request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/upload-user-image": { "post": { "description": "Same flow as file upload intent, but dedicated for user profile image flow.\nUse together with /api/v1/file-manager/files/create-user-image to force target folder under user hierarchy.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Request upload intents for user profile images", "operationId": "FileManagerRequestUserImageUploadIntent", "parameters": [ { "description": "Bulk upload intent request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/files/{fileId}/edit-session": { "get": { "description": "Returns a Collabora/WOPI write session for an already existing file that belongs to the authenticated user's takeover scope or to the authenticated user as an unattached draft.\nThis endpoint does not create or copy files. It only resolves the file, checks access, and mints a new access token.\nUse this when reopening an existing file for editing.\nPath param `fileId` must be a valid UUIDv7.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Start a WOPI edit session for an existing file", "parameters": [ { "type": "string", "description": "File UUID (UUIDv7)", "name": "fileId", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileWOPISessionResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/folders/create": { "post": { "description": "Create one folder metadata node under root or under provided parent_id.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Create folder node", "operationId": "FileManagerCreateFolder", "parameters": [ { "description": "JSON:API file manager folder create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFolderCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFolderResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/folders/get/{uuid}": { "get": { "description": "Return folder metadata by UUID.", "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Get folder detail", "operationId": "FileManagerGetFolder", "parameters": [ { "type": "string", "description": "Folder UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFolderDetailResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/folders/update/{uuid}": { "patch": { "description": "Update folder metadata by UUID (rename and/or move parent).", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Update folder node", "operationId": "FileManagerUpdateFolder", "parameters": [ { "type": "string", "description": "Folder UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API file manager folder update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFolderUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFolderResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/get-all": { "get": { "description": "Return merged direct children (folders + files) for optional parent_uuid (non-recursive).\nIf parent_uuid is omitted, response returns root level nodes.\nIf search is provided, performs a global name search across all folders and files (parent_uuid is ignored).", "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "List merged explorer nodes", "operationId": "FileManagerListMergedExplorerNodes", "parameters": [ { "type": "string", "description": "Parent folder UUID", "name": "parent_uuid", "in": "query" }, { "type": "string", "description": "Search keyword (global name search across all folders and files)", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerNodeListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/move": { "patch": { "description": "Unified move endpoint. Each item UUID can be either folder UUID or file UUID.\ndestination_folder_uuid null/empty means move to root.\nBulk payload accepts one or many items.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Move nodes (file/folder) in bulk", "operationId": "FileManagerMoveNodesBulk", "parameters": [ { "description": "Bulk move request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerNodeMoveBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerMoveNodeBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/purge-delete": { "delete": { "description": "Permanently delete multiple trashed nodes by UUID. UUID can be folder or file.\nBulk payload accepts one or many items.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Purge nodes (file/folder) from trash in bulk", "operationId": "FileManagerPurgeNodesBulkFromTrash", "parameters": [ { "description": "Bulk purge request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerNodePurgeBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerPurgeNodeBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/restore": { "patch": { "description": "Restore multiple trashed nodes by UUID to original location.\nBulk payload accepts one or many items.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "Restore nodes (file/folder) in bulk", "operationId": "FileManagerRestoreNodesBulk", "parameters": [ { "description": "Bulk restore request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerNodePurgeBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerMoveNodeBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/file-manager/trash/get-all": { "get": { "description": "Return merged trashed nodes (folders + files) for trash explorer.", "produces": [ "application/json" ], "tags": [ "File Manager" ], "summary": "List merged trash items", "operationId": "FileManagerListMergedTrashItems", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort values: deleted_at,-deleted_at,name,-name,type,-type,size_bytes,-size_bytes", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerTrashListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/fleet-status/create": { "post": { "description": "Create fleet status with maintenance schedules and file attachments.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Fleet Status" ], "summary": "Create fleet status", "parameters": [ { "description": "Fleet status create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FleetStatusCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fleet-status/delete/{id}": { "delete": { "description": "Soft delete fleet status by ID.", "produces": [ "application/json" ], "tags": [ "Fleet Status" ], "summary": "Delete fleet status", "parameters": [ { "type": "string", "description": "Fleet status ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fleet-status/get-all": { "get": { "description": "Lists every helicopter from the master, each with its latest fleet status (or empty data when it has none). Paginated by helicopter.", "produces": [ "application/json" ], "tags": [ "Fleet Status" ], "summary": "List fleet status", "parameters": [ { "type": "integer", "default": 1, "description": "Page number", "name": "page", "in": "query" }, { "type": "integer", "default": 20, "description": "Page size", "name": "page_size", "in": "query" }, { "type": "string", "description": "Search helicopters by designation/identifier/type", "name": "filter", "in": "query" }, { "type": "string", "description": "Sort helicopters, example: designation", "name": "sort", "in": "query" }, { "type": "string", "description": "Filter by operational status; comma-separated for multiple (e.g. available,booked). Values: available, booked, aog, mcf", "name": "status", "in": "query" }, { "type": "string", "description": "Filter by helicopter ID (UUIDv7); combined with status uses AND logic", "name": "helicopter_id", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fleet-status/get-all/dt": { "get": { "description": "Lists every helicopter from the master, each with its latest fleet status (or empty data when it has none). Paginated by helicopter.", "produces": [ "application/json" ], "tags": [ "Fleet Status" ], "summary": "List fleet status (datatable)", "parameters": [ { "type": "integer", "default": 1, "description": "Datatable draw counter", "name": "draw", "in": "query" }, { "type": "integer", "default": 0, "description": "Datatable start offset", "name": "start", "in": "query" }, { "type": "integer", "default": 10, "description": "Datatable page length", "name": "length", "in": "query" }, { "type": "string", "description": "Search helicopters by designation/identifier/type", "name": "search", "in": "query" }, { "type": "string", "description": "Sort helicopters, example: designation", "name": "sort", "in": "query" }, { "type": "string", "description": "Filter by operational status; comma-separated for multiple (e.g. available,booked). Values: available, booked, aog, mcf", "name": "status", "in": "query" }, { "type": "string", "description": "Filter by helicopter ID (UUIDv7); combined with status uses AND logic", "name": "helicopter_id", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusDataTableResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fleet-status/get-by-helicopter/{helicopter_id}": { "get": { "produces": [ "application/json" ], "tags": [ "Fleet Status" ], "summary": "Get latest fleet status by helicopter ID", "parameters": [ { "type": "string", "description": "Helicopter ID (UUIDv7)", "name": "helicopter_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fleet-status/get/{id}": { "get": { "produces": [ "application/json" ], "tags": [ "Fleet Status" ], "summary": "Get fleet status by ID", "parameters": [ { "type": "string", "description": "Fleet status ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fleet-status/history/{helicopter_id}": { "get": { "description": "Unified timeline: maintenance servicing events merged with complaint/MEL/NSR/action/MCF/EASA/AOG action events, newest first.", "produces": [ "application/json" ], "tags": [ "Fleet Status" ], "summary": "List fleet history (timeline) by helicopter", "parameters": [ { "type": "string", "description": "Helicopter ID (UUIDv7)", "name": "helicopter_id", "in": "path", "required": true }, { "type": "integer", "default": 1, "description": "Page number", "name": "page", "in": "query" }, { "type": "integer", "default": 20, "description": "Page size", "name": "page_size", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetHistoryListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fleet-status/mark-serviced/{id}": { "post": { "description": "Move current maintenance schedules into service logs, then clear active schedules.", "produces": [ "application/json" ], "tags": [ "Fleet Status" ], "summary": "Mark fleet status serviced", "parameters": [ { "type": "string", "description": "Fleet status ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusMarkServicedResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fleet-status/update/{id}": { "patch": { "description": "Update fleet status by ID with full replacement for schedules and files.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Fleet Status" ], "summary": "Update fleet status", "parameters": [ { "type": "string", "description": "Fleet status ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "Fleet status update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FleetStatusUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/flight-data/create": { "post": { "description": "Create a flight data row.\nRequired field: `mission_id`. `co_pilot_id` is optional.\nSwagger request example shows the complete common payload for an `SPO` mission. `SPO` is the default example shape, and for other mission types (`CAT` and `NCO`) you do not need to send the `hec`, `heslo`, or `logging` blocks. `rotor_brake_cycle` is optional for `SPO`, `CAT`, and `NCO`.\nSPO facility references must point to facilities with categories: `heslo_rope_label_id -\u003e heslo-rope-label`, `heslo.slings -\u003e heslo-rope-length`, `logging.slings -\u003e heslo-hook`, `hec.flights -\u003e hec-rope-label`, and `hec.slings -\u003e hec-rope-length`.\nSPO-specific response fields (`heslo`, `logging`, and `hec`) are returned only when the related mission type is `SPO`.\nExample request: {\"data\":{\"type\":\"flight_data_create\",\"attributes\":{\"mission_id\":\"019d6774-98e8-7fba-9ef4-3795c0da8a13\"}}}", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Mission - Flight Data" ], "summary": "Create flight data", "parameters": [ { "description": "JSON:API flight data create request. Example is for SPO; CAT/NCO can omit SPO-only blocks and other optional fields.", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/flight-data/delete/{id}": { "delete": { "description": "Soft delete flight data by UUID.", "produces": [ "application/json" ], "tags": [ "Mission - Flight Data" ], "summary": "Delete flight data by ID", "parameters": [ { "type": "string", "description": "Flight Data UUID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/flight-data/get-all": { "get": { "description": "List flight data rows. Supports `date` for exact flight take-off date filtering (`YYYY-MM-DD`), plus `mission_id` and `flight_data_id` filters.\nSPO-specific response fields (`heslo`, `logging`, and `hec`) are returned only when the related mission type is `SPO`.", "produces": [ "application/json" ], "tags": [ "Mission - Flight Data" ], "summary": "List flight data", "parameters": [ { "type": "string", "description": "Filter by flight take-off date (YYYY-MM-DD)", "name": "date", "in": "query" }, { "type": "string", "description": "Filter by mission UUID", "name": "mission_id", "in": "query" }, { "type": "string", "description": "Filter by flight-data UUID", "name": "flight_data_id", "in": "query" }, { "type": "integer", "description": "Page number", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size", "name": "page[size]", "in": "query" }, { "type": "integer", "description": "Page number (fallback)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (fallback)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override", "name": "limit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/flight-data/get-all/dt": { "get": { "description": "Datatable-friendly list of flight data rows. Supports `date` for exact flight take-off date filtering (`YYYY-MM-DD`), plus `mission_id` and `flight_data_id` filters.\nSame payload shape as `get-all`, but with DataTables paging params (`start`, `length`, `draw`).\nSPO-specific response fields (`heslo`, `logging`, and `hec`) are returned only when the related mission type is `SPO`.", "produces": [ "application/json" ], "tags": [ "Mission - Flight Data" ], "summary": "List flight data (datatable)", "parameters": [ { "type": "integer", "description": "DataTables draw counter", "name": "draw", "in": "query" }, { "type": "integer", "description": "Paging start offset", "name": "start", "in": "query" }, { "type": "integer", "description": "Paging length", "name": "length", "in": "query" }, { "type": "integer", "description": "Page number", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size", "name": "page[size]", "in": "query" }, { "type": "integer", "description": "Page number (fallback)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (fallback)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override", "name": "limit", "in": "query" }, { "type": "string", "description": "Filter by flight take-off date (YYYY-MM-DD)", "name": "date", "in": "query" }, { "type": "string", "description": "Filter by mission UUID", "name": "mission_id", "in": "query" }, { "type": "string", "description": "Filter by flight-data UUID", "name": "flight_data_id", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/flight-data/get/{id}": { "get": { "description": "Get flight data detail by ID. Path `id` can be mission UUID, flight-data UUID, or flight UUID.\nSPO-specific response fields (`heslo`, `logging`, and `hec`) are returned only when the related mission type is `SPO`.", "produces": [ "application/json" ], "tags": [ "Mission - Flight Data" ], "summary": "Get flight data by ID", "parameters": [ { "type": "string", "description": "Mission UUID / Flight Data UUID / Flight UUID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/flight-data/update/{id}": { "patch": { "description": "Update a flight data row by UUID.\nRequired field: `mission_id`. `co_pilot_id` is optional.\nSwagger request example uses the same SPO-shaped payload as create, but this endpoint updates an existing flight-data row.\nSPO facility references must point to facilities with categories: `heslo_rope_label_id -\u003e heslo-rope-label`, `heslo.slings -\u003e heslo-rope-length`, `logging.slings -\u003e heslo-hook`, `hec.flights -\u003e hec-rope-label`, and `hec.slings -\u003e hec-rope-length`.\nFor frontend usage, send only the fields that need to change; omitted fields stay unchanged. `SPO` is the default example shape, and for `CAT`/`NCO` you do not need to send the `hec`, `heslo`, or `logging` blocks. `rotor_brake_cycle` is optional for `SPO`, `CAT`, and `NCO`.\nSPO-specific response fields (`heslo`, `logging`, and `hec`) are returned only when the related mission type is `SPO`.\nExample request: {\"data\":{\"type\":\"flight_data_create\",\"attributes\":{\"mission_id\":\"019d6774-98e8-7fba-9ef4-3795c0da8a13\"}}}", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Mission - Flight Data" ], "summary": "Update flight data by ID", "parameters": [ { "type": "string", "description": "Flight Data UUID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "JSON:API flight data update request. Send only fields you want to change; omit the rest.", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/flights/get": { "get": { "description": "Returns flights assigned to current auth user, including workflow steps (`duty_roster`, `reserve_ac`, `mission`, `after_flight_inspection`, `fm_report`).\nEach step includes `status`, `completed_at`, and `completed_by` for consistent FE rendering.", "produces": [ "application/json" ], "tags": [ "Flight" ], "summary": "Get flights for current auth user (from duty roster assignment)", "parameters": [ { "type": "integer", "description": "Page number", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size", "name": "page[size]", "in": "query" }, { "type": "integer", "description": "Page number (fallback)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (fallback)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override", "name": "limit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightListResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/flights/get-all": { "get": { "description": "Supports `search`, `filter[search]`, `sort`, `page[number]`, `page[size]`, `page`, `size`, and `limit`.\nSupports `date` and `filter[date]` for exact flight date filtering (`YYYY-MM-DD`).\nReturns paginated flights with workflow steps (`takeover`, `mission`, `after_flight_inspection`, `fm_report`).\nEach step includes `status`, `completed_at`, and `completed_by` for consistent FE rendering.", "produces": [ "application/json" ], "tags": [ "Flight" ], "summary": "List flights", "parameters": [ { "type": "string", "description": "Search text", "name": "search", "in": "query" }, { "type": "string", "description": "Search text (JSON:API style)", "name": "filter[search]", "in": "query" }, { "type": "string", "description": "Filter by flight date (YYYY-MM-DD)", "name": "date", "in": "query" }, { "type": "string", "description": "Filter by flight date (YYYY-MM-DD) (JSON:API style)", "name": "filter[date]", "in": "query" }, { "type": "string", "description": "Sort field", "name": "sort", "in": "query" }, { "type": "integer", "description": "Page number", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size", "name": "page[size]", "in": "query" }, { "type": "integer", "description": "Page number (fallback)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (fallback)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override", "name": "limit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fm-reports/complete/{flight_id}": { "post": { "description": "Mark an FM report as completed for a flight. Once completed, the report becomes read-only and flight data edits are locked. Requires a verified security PIN: send the one-time token from POST /auth/pin/verify (action 1a75135b-430a-4592-83e1-6d27814185af) in the X-PIN-Verification-Token header.", "produces": [ "application/json" ], "tags": [ "Flight Report" ], "summary": "Complete FM report", "parameters": [ { "type": "string", "description": "Flight ID (UUIDv7)", "name": "flight_id", "in": "path", "required": true }, { "type": "string", "description": "One-time security-PIN action token", "name": "X-PIN-Verification-Token", "in": "header", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportResponse" } }, "202": { "description": "PIN verification required", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fm-reports/get-all": { "get": { "description": "Returns a paginated list of FM reports. Supports `search`, `filter[search]`, `filter[flight_id]`, `filter[takeover_id]`, `filter[flight_inspection_id]`, `filter[flight_date]`, `filter[has_engine1_gpc_n1]`, `filter[has_engine1_ptc_n2]`, `filter[has_engine2_gpc_n1]`, `filter[has_engine2_ptc_n2]`, `sort`, `page[number]`, `page[size]`, `page`, `size`, and `limit`.", "produces": [ "application/json" ], "tags": [ "Flight Report" ], "summary": "List FM reports", "parameters": [ { "type": "string", "description": "Search text", "name": "search", "in": "query" }, { "type": "string", "description": "Search text (JSON:API style)", "name": "filter[search]", "in": "query" }, { "type": "string", "description": "Filter by flight ID", "name": "filter[flight_id]", "in": "query" }, { "type": "string", "description": "Filter by takeover ID", "name": "filter[takeover_id]", "in": "query" }, { "type": "string", "description": "Filter by flight inspection ID", "name": "filter[flight_inspection_id]", "in": "query" }, { "type": "string", "description": "Filter by flight date (YYYY-MM-DD)", "name": "filter[flight_date]", "in": "query" }, { "type": "boolean", "description": "Filter reports with or without engine1_gpc_n1", "name": "filter[has_engine1_gpc_n1]", "in": "query" }, { "type": "boolean", "description": "Filter reports with or without engine1_ptc_n2", "name": "filter[has_engine1_ptc_n2]", "in": "query" }, { "type": "boolean", "description": "Filter reports with or without engine2_gpc_n1", "name": "filter[has_engine2_gpc_n1]", "in": "query" }, { "type": "boolean", "description": "Filter reports with or without engine2_ptc_n2", "name": "filter[has_engine2_ptc_n2]", "in": "query" }, { "type": "string", "description": "Sort order: flight_date, -flight_date, created_at, -created_at, updated_at, -updated_at, engine1_gpc_n1, -engine1_gpc_n1, engine1_ptc_n2, -engine1_ptc_n2, engine2_gpc_n1, -engine2_gpc_n1, engine2_ptc_n2, -engine2_ptc_n2", "name": "sort", "in": "query" }, { "type": "integer", "description": "Page number", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size", "name": "page[size]", "in": "query" }, { "type": "integer", "description": "Page number (fallback)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (fallback)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override", "name": "limit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fm-reports/get/{flight_id}": { "get": { "description": "Returns a complete FM report for a flight. The persisted table keeps only the report keys; the response preloads flight, missions, flight inspection, and after-flight inspection details. It also embeds `fleet_status` (next inspection / maintenance schedules + base hours, component summary, EASA maintenance release) — a snapshot frozen when the report was created at after-flight inspection, so later complaints / maintenance changes do not alter a historical report. `fleet_status` is omitted when the helicopter has no fleet status.", "produces": [ "application/json" ], "tags": [ "Flight Report" ], "summary": "Get FM report by flight ID", "parameters": [ { "type": "string", "description": "Flight ID (UUIDv7)", "name": "flight_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fm-reports/update/{flight_id}": { "patch": { "description": "Update only the engine metric fields for an existing FM report. All other FM report fields stay read-only on this endpoint. The response mirrors the GET FM report and embeds the frozen `fleet_status` snapshot (next inspection / maintenance schedules + base hours, component summary, EASA maintenance release).", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flight Report" ], "summary": "Update FM report metrics", "parameters": [ { "type": "string", "description": "Flight ID (UUIDv7)", "name": "flight_id", "in": "path", "required": true }, { "description": "JSON:API FM report update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FMReportUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fm-reports/{id}": { "delete": { "description": "Soft-delete an FM report by ID. Requires a verified security PIN.", "produces": [ "application/json" ], "tags": [ "Flight Report" ], "summary": "Delete FM report", "parameters": [ { "type": "string", "description": "FM Report ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "type": "string", "description": "One-time security-PIN action token", "name": "X-PIN-Verification-Token", "in": "header", "required": true } ], "responses": { "204": { "description": "No Content" }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fm-reports/{id}/attachments": { "post": { "description": "After uploading the file to the presigned URL (from /attachments/upload-intent), call this endpoint with the upload_intent_uuid, name, and category to create the file node and attach it to the FM report. Valid categories: additional_fm_report, briefing, weight_balance, ofp.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flight Report" ], "summary": "Create FM report attachment from upload intent", "parameters": [ { "type": "string", "description": "FM Report ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "body with upload_intent_uuid, name, and category", "name": "request", "in": "body", "required": true, "schema": { "type": "object" } } ], "responses": { "201": { "description": "Created", "schema": { "type": "object" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fm-reports/{id}/attachments/upload-intent": { "post": { "description": "Returns a presigned PUT URL and upload_intent_uuid. After uploading the file to the presigned URL, call POST /fm-reports/{id}/attachments with the upload_intent_uuid to create the file node and attach it to the report.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flight Report" ], "summary": "Request upload intent for FM report attachment", "parameters": [ { "type": "string", "description": "FM Report ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "body with name, content_type, size_bytes", "name": "request", "in": "body", "required": true, "schema": { "type": "object" } } ], "responses": { "201": { "description": "Created", "schema": { "type": "object" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/fm-reports/{id}/attachments/{att_id}": { "delete": { "description": "Remove a specific attachment from an FM report. Verifies ownership before deletion.", "produces": [ "application/json" ], "tags": [ "Flight Report" ], "summary": "Delete attachment from FM report", "parameters": [ { "type": "string", "description": "FM Report ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "type": "string", "description": "Attachment ID (UUIDv7)", "name": "att_id", "in": "path", "required": true } ], "responses": { "204": { "description": "No Content" }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/forces-present/create": { "post": { "description": "Create a forces present row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "OPC - Forces Present" ], "summary": "Create forces present", "parameters": [ { "description": "JSON:API forces present create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/forces-present/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "OPC - Forces Present" ], "summary": "Delete forces present", "parameters": [ { "type": "string", "description": "Forces Present UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/forces-present/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: name, -name, sortkey, -sortkey, note, -note, is_active, -is_active, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "OPC - Forces Present" ], "summary": "List forces present", "parameters": [ { "type": "string", "description": "Search by name/note", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentListResponse" } } } } }, "/api/v1/forces-present/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "OPC - Forces Present" ], "summary": "List forces present (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentDataTableResponse" } } } } }, "/api/v1/forces-present/update/{uuid}": { "patch": { "description": "Patch forces present by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "OPC - Forces Present" ], "summary": "Update forces present (partial)", "parameters": [ { "type": "string", "description": "Forces Present UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API forces present update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/health-insurance-companies/create": { "post": { "description": "Create a health insurance company row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Hospital - Health Insurance Companies" ], "summary": "Create health insurance company", "parameters": [ { "description": "JSON:API health insurance company create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/health-insurance-companies/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "Hospital - Health Insurance Companies" ], "summary": "Delete health insurance company", "parameters": [ { "type": "string", "description": "Health Insurance Company UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/health-insurance-companies/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: name, -name, sortkey, -sortkey, state, -state, address, -address, mobile_number, -mobile_number, email, -email, note, -note, is_active, -is_active, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "Hospital - Health Insurance Companies" ], "summary": "List health insurance companies", "parameters": [ { "type": "string", "description": "Search by name/state/address/mobile/email", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyListResponse" } } } } }, "/api/v1/health-insurance-companies/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "Hospital - Health Insurance Companies" ], "summary": "List health insurance companies (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyDataTableResponse" } } } } }, "/api/v1/health-insurance-companies/update/{uuid}": { "patch": { "description": "Patch health insurance company by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Hospital - Health Insurance Companies" ], "summary": "Update health insurance company (partial)", "parameters": [ { "type": "string", "description": "Health Insurance Company UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API health insurance company update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/helicopter-files/cancel-upload": { "post": { "description": "Cancel pending upload intents from helicopter file upload flow.\nBulk payload accepts one or many items.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Helicopter - Master File" ], "summary": "Cancel helicopter file upload intent (bulk)", "parameters": [ { "description": "Bulk helicopter file cancel upload intent request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileCancelUploadBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/helicopter-files/create": { "post": { "description": "Create helicopter file template record from upload intent.\nSection allowed values: `bfi` (Before First Flight Inspection), `fpwb` (Flight Preparation and WB), `afi` (After Last Flight Inspection).\nRequired attributes: `section`, `helicopter_id`, `upload_intent_uuid`, `file_name`.\nOptional attributes: `position`, `is_required`, `folder_uuid` (if omitted, file is created in root folder).\nWhen `position` is omitted (or \u003c= 0), backend auto-assigns next position per `helicopter_id + section`.\nIf file name already exists in target folder, existing file is reused and attached.\nSupports single and bulk payload.\nSingle payload example: `{\"data\":{\"type\":\"helicopter_file_create\",\"attributes\":{\"section\":\"bfi\",\"position\":1,\"is_required\":true,\"helicopter_id\":\"019d6771-5fb5-7337-837f-bc5ed85181a1\",\"upload_intent_uuid\":\"019d6d0d-2de2-7db1-80a2-2862d43af620\",\"file_name\":\"A.pdf\"}}}`\nBulk payload example: `{\"data\":[{\"type\":\"helicopter_file_create\",\"attributes\":{\"section\":\"bfi\",\"position\":1,\"is_required\":true,\"helicopter_id\":\"019d6771-5fb5-7337-837f-bc5ed85181a1\",\"upload_intent_uuid\":\"019d6d0d-2de2-7db1-80a2-2862d43af620\",\"file_name\":\"A.pdf\"}}]}`\nNote: OpenAPI 2.0 cannot express object-or-array union in one schema; request schema below represents bulk envelope.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Helicopter - Master File" ], "summary": "Create helicopter file", "parameters": [ { "description": "JSON:API helicopter file create request (single object or bulk array)", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileCreateBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCreateBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCreateBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/helicopter-files/delete": { "delete": { "description": "Delete helicopter file template record", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Helicopter - Master File" ], "summary": "Delete helicopter file", "parameters": [ { "description": "JSON:API helicopter file delete request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileDeleteRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/helicopter-files/get-all": { "get": { "description": "List helicopter file template records grouped by helicopter.\nPagination is applied per helicopter group (not per file row), so one helicopter's files stay in the same page.", "produces": [ "application/json" ], "tags": [ "Helicopter - Master File" ], "summary": "List helicopter files", "parameters": [ { "type": "string", "description": "Search text", "name": "filter[search]", "in": "query" }, { "type": "string", "description": "Search text (fallback)", "name": "search", "in": "query" }, { "type": "string", "description": "Sort field", "name": "sort", "in": "query" }, { "type": "integer", "description": "Page number", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size", "name": "page[size]", "in": "query" }, { "type": "integer", "description": "Page number (fallback)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (fallback)", "name": "size", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/helicopter-files/get/{helicopter_id}": { "get": { "description": "Return helicopter file template collection for selected helicopter", "produces": [ "application/json" ], "tags": [ "Helicopter - Master File" ], "summary": "Get helicopter files by helicopter ID", "parameters": [ { "type": "string", "description": "Helicopter ID", "name": "helicopter_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/helicopter-files/update": { "patch": { "description": "Update a helicopter file template record.\nSection allowed values: `bfi` (Before First Flight Inspection), `fpwb` (Flight Preparation and WB), `afi` (After Last Flight Inspection).\nOptional attributes: `section`, `position`, `is_required`, `helicopter_id`, `file_name`.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Helicopter - Master File" ], "summary": "Update helicopter file", "parameters": [ { "description": "JSON:API helicopter file update request (single object or bulk array)", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileUpdateBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUpdateBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/helicopter-files/upload": { "post": { "description": "Control-plane endpoint for helicopter file upload intent + presigned URL flow.\nPublic flow: POST /api/v1/helicopter-files/upload -\u003e PUT to presigned URL -\u003e POST /api/v1/helicopter-files/create.\nCanonical type is `helicopter_file_upload`.\n`required_headers` must be sent exactly as returned when doing PUT to `upload_url`.\nExample `required_headers`: `{\"content-type\":\"application/pdf\",\"x-amz-acl\":\"private\"}`\nSupports single and bulk payload.\nSingle payload example: `{\"data\":{\"type\":\"helicopter_file_upload\",\"attributes\":{\"name\":\"A.pdf\",\"content_type\":\"application/pdf\",\"size_bytes\":12345}}}`\nBulk payload example: `{\"data\":[{\"type\":\"helicopter_file_upload\",\"attributes\":{\"name\":\"A.pdf\",\"content_type\":\"application/pdf\",\"size_bytes\":12345}}]}`\nNote: OpenAPI 2.0 cannot express object-or-array union in one schema; request schema below represents bulk envelope.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Helicopter - Master File" ], "summary": "Request upload intents + presigned PUT URLs (helicopter file)", "parameters": [ { "description": "Helicopter file upload intent request (single object or bulk array)", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileUploadBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentBulkResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentResponse" } }, "207": { "description": "Multi-Status", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentBulkResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/helicopter-usage/create": { "post": { "description": "Create helicopter usage counters for a helicopter.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Helicopter - Helicopter Usage" ], "summary": "Create helicopter usage", "parameters": [ { "description": "JSON:API helicopter usage create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/helicopter-usage/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "Helicopter - Helicopter Usage" ], "summary": "Delete helicopter usage", "parameters": [ { "type": "string", "description": "Helicopter Usage UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/helicopter-usage/get-all": { "get": { "description": "JSON:API list without pagination. Sort values: helicopter_id, -helicopter_id, total_landing, -total_landing, total_airframe_hours, -total_airframe_hours, total_airframe_cycles, -total_airframe_cycles, total_engine_1_hours, -total_engine_1_hours, total_engine_1_gpc_ng_n1, -total_engine_1_gpc_ng_n1, total_engine_1_ptc_nf_n2, -total_engine_1_ptc_nf_n2, total_engine_1_ccc, -total_engine_1_ccc, total_engine_2_hours, -total_engine_2_hours, total_engine_2_gpc_ng_n1, -total_engine_2_gpc_ng_n1, total_engine_2_ptc_nf_n2, -total_engine_2_ptc_nf_n2, total_engine_2_ccc, -total_engine_2_ccc, total_flight_report, -total_flight_report, total_hook_release, -total_hook_release, total_rotor_brake_cycle, -total_rotor_brake_cycle, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "Helicopter - Helicopter Usage" ], "summary": "List helicopter usage", "parameters": [ { "type": "string", "description": "Search by helicopter or usage ID", "name": "search", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageListResponse" } } } } }, "/api/v1/helicopter-usage/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "Helicopter - Helicopter Usage" ], "summary": "List helicopter usage (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageListResponse" } } } } }, "/api/v1/helicopter-usage/get/{uuid}": { "get": { "produces": [ "application/json" ], "tags": [ "Helicopter - Helicopter Usage" ], "summary": "Get helicopter usage", "parameters": [ { "type": "string", "description": "Helicopter Usage UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/helicopter-usage/update/{uuid}": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Helicopter - Helicopter Usage" ], "summary": "Update helicopter usage (partial)", "parameters": [ { "type": "string", "description": "Helicopter Usage UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API helicopter usage update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/helicopters/create": { "post": { "description": "Create a helicopter configuration row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Facility - Helicopters" ], "summary": "Create helicopter", "parameters": [ { "description": "JSON:API Helicopter create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/helicopters/delete/{id}": { "delete": { "produces": [ "application/json" ], "tags": [ "Facility - Helicopters" ], "summary": "Delete helicopter", "parameters": [ { "type": "string", "description": "Helicopter ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.Document" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/helicopters/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: designation, -designation, sortkey, -sortkey.", "produces": [ "application/json" ], "tags": [ "Facility - Helicopters" ], "summary": "List helicopters", "parameters": [ { "type": "string", "description": "Search by designation/identifier/type", "name": "filter[search]", "in": "query" }, { "type": "string", "description": "Filter by operational status; comma-separated for multiple (e.g. available,booked). Values: available, booked, aog, mcf", "name": "filter[status]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterListResponse" } } } } }, "/api/v1/helicopters/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "Facility - Helicopters" ], "summary": "List helicopters (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" }, { "type": "string", "description": "Filter by operational status; comma-separated for multiple (e.g. available,booked). Values: available, booked, aog, mcf", "name": "status", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterDataTableResponse" } } } } }, "/api/v1/helicopters/get/{id}": { "get": { "produces": [ "application/json" ], "tags": [ "Facility - Helicopters" ], "summary": "Get helicopter by ID", "parameters": [ { "type": "string", "description": "Helicopter ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/helicopters/update/{id}": { "patch": { "description": "Patch helicopter by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Facility - Helicopters" ], "summary": "Update helicopter (partial)", "parameters": [ { "type": "string", "description": "Helicopter ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "JSON:API Helicopter update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/helicopters/{id}/reports/next-number": { "post": { "description": "Returns report number format \u003cidentifier\u003e-NNNN (example: SN0901-0001). The identifier is used as the report-code prefix and the numeric suffix is auto-incremented by backend per helicopter.", "produces": [ "application/json" ], "tags": [ "Facility - Helicopters" ], "summary": "Generate next helicopter report number", "parameters": [ { "type": "string", "description": "Helicopter ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterNextReportNumberResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/hems-operation-category/create": { "post": { "description": "Create a HEMS operation category.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Operation - Category" ], "summary": "Create HEMS operation category", "parameters": [ { "description": "JSON:API HEMS operation category create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hems-operation-category/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "Operation - Category" ], "summary": "Delete HEMS operation category", "parameters": [ { "type": "string", "description": "HEMS operation category UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hems-operation-category/get-all": { "get": { "produces": [ "application/json" ], "tags": [ "Operation - Category" ], "summary": "List HEMS operation categories", "parameters": [ { "type": "string", "description": "Search by name/type", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryListResponse" } } } } }, "/api/v1/hems-operation-category/get-all/dt": { "get": { "produces": [ "application/json" ], "tags": [ "Operation - Category" ], "summary": "List HEMS operation categories (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryDataTableResponse" } } } } }, "/api/v1/hems-operation-category/get/{uuid}": { "get": { "produces": [ "application/json" ], "tags": [ "Operation - Category" ], "summary": "Get HEMS operation category by ID", "parameters": [ { "type": "string", "description": "HEMS operation category UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hems-operation-category/update/{uuid}": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Operation - Category" ], "summary": "Update HEMS operation category (partial)", "parameters": [ { "type": "string", "description": "HEMS operation category UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API HEMS operation category update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hems-operation/create": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Operation - HEMS Operation" ], "summary": "Create HEMS operation", "parameters": [ { "description": "JSON:API HEMS operation create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hems-operation/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "Operation - HEMS Operation" ], "summary": "Delete HEMS operation", "parameters": [ { "type": "string", "description": "HEMS operation UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hems-operation/get-all": { "get": { "produces": [ "application/json" ], "tags": [ "Operation - HEMS Operation" ], "summary": "List HEMS operations", "parameters": [ { "type": "string", "description": "Search by date", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationListResponse" } } } } }, "/api/v1/hems-operation/get-all/dt": { "get": { "produces": [ "application/json" ], "tags": [ "Operation - HEMS Operation" ], "summary": "List HEMS operations (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationDataTableResponse" } } } } }, "/api/v1/hems-operation/get/{uuid}": { "get": { "produces": [ "application/json" ], "tags": [ "Operation - HEMS Operation" ], "summary": "Get HEMS operation by ID", "parameters": [ { "type": "string", "description": "HEMS operation UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hems-operation/update/{uuid}": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Operation - HEMS Operation" ], "summary": "Update HEMS operation (partial)", "parameters": [ { "type": "string", "description": "HEMS operation UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API HEMS operation update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hems-operational-data/create": { "post": { "description": "Create a HEMS operational data record.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Operation - HEMS Operational Data" ], "summary": "Create HEMS operational data", "parameters": [ { "description": "JSON:API HEMS operational data create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hems-operational-data/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "Operation - HEMS Operational Data" ], "summary": "Delete HEMS operational data", "parameters": [ { "type": "string", "description": "HEMS operational data UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hems-operational-data/get-all": { "get": { "produces": [ "application/json" ], "tags": [ "Operation - HEMS Operational Data" ], "summary": "List HEMS operational data", "parameters": [ { "type": "string", "description": "Search by location/notes/additional_info/terrain_index", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataListResponse" } } } } }, "/api/v1/hems-operational-data/get-all/dt": { "get": { "produces": [ "application/json" ], "tags": [ "Operation - HEMS Operational Data" ], "summary": "List HEMS operational data (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataDataTableResponse" } } } } }, "/api/v1/hems-operational-data/get/{uuid}": { "get": { "produces": [ "application/json" ], "tags": [ "Operation - HEMS Operational Data" ], "summary": "Get HEMS operational data by ID", "parameters": [ { "type": "string", "description": "HEMS operational data UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hems-operational-data/update/{uuid}": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Operation - HEMS Operational Data" ], "summary": "Update HEMS operational data (partial)", "parameters": [ { "type": "string", "description": "HEMS operational data UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API HEMS operational data update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hospital/create": { "post": { "description": "Create a hospital row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Hospital - Hospital" ], "summary": "Create hospital", "parameters": [ { "description": "JSON:API hospital create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hospital/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "Hospital - Hospital" ], "summary": "Delete hospital", "parameters": [ { "type": "string", "description": "Hospital UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/hospital/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: name, -name, hospital_name, -hospital_name, sortkey, -sortkey, address, -address, landline_number, -landline_number, mobile_number, -mobile_number, email, -email, note, -note, is_active, -is_active, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "Hospital - Hospital" ], "summary": "List hospital", "parameters": [ { "type": "string", "description": "Search by hospital name/address/contact", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalListResponse" } } } } }, "/api/v1/hospital/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "Hospital - Hospital" ], "summary": "List hospital (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalDataTableResponse" } } } } }, "/api/v1/hospital/update/{uuid}": { "patch": { "description": "Patch hospital by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Hospital - Hospital" ], "summary": "Update hospital (partial)", "parameters": [ { "type": "string", "description": "Hospital UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API hospital update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/icao/create": { "post": { "description": "Create an ICAO row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Hospital - ICAO" ], "summary": "Create ICAO", "parameters": [ { "description": "JSON:API ICAO create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/icao/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "Hospital - ICAO" ], "summary": "Delete ICAO", "parameters": [ { "type": "string", "description": "ICAO UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/icao/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: icao_code, -icao_code, sortkey, -sortkey, address, -address, landline_number, -landline_number, mobile_number, -mobile_number, email, -email, note, -note, is_active, -is_active, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "Hospital - ICAO" ], "summary": "List ICAO", "parameters": [ { "type": "string", "description": "Search by icao_code/address/contact", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOListResponse" } } } } }, "/api/v1/icao/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "Hospital - ICAO" ], "summary": "List ICAO (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAODataTableResponse" } } } } }, "/api/v1/icao/update/{uuid}": { "patch": { "description": "Patch ICAO by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Hospital - ICAO" ], "summary": "Update ICAO (partial)", "parameters": [ { "type": "string", "description": "ICAO UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API ICAO update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/insurance-patient-data/create": { "post": { "description": "Create an InsurancePatientData record.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "PatientData - InsurancePatientData" ], "summary": "Create insurance patient data", "parameters": [ { "description": "JSON:API InsurancePatientData create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/insurance-patient-data/delete/{uuid}": { "delete": { "description": "Soft delete InsurancePatientData by ID.", "produces": [ "application/json" ], "tags": [ "PatientData - InsurancePatientData" ], "summary": "Delete insurance patient data", "parameters": [ { "type": "string", "description": "InsurancePatientData UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/insurance-patient-data/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "PatientData - InsurancePatientData" ], "summary": "List insurance patient data", "parameters": [ { "type": "string", "description": "Search", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataListResponse" } } } } }, "/api/v1/insurance-patient-data/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "PatientData - InsurancePatientData" ], "summary": "List insurance patient data (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataDataTableResponse" } } } } }, "/api/v1/insurance-patient-data/get/{uuid}": { "get": { "description": "Get a single InsurancePatientData record by UUID.", "produces": [ "application/json" ], "tags": [ "PatientData - InsurancePatientData" ], "summary": "Get insurance patient data by ID", "parameters": [ { "type": "string", "description": "InsurancePatientData UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/insurance-patient-data/update/{uuid}": { "patch": { "description": "Patch InsurancePatientData by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "PatientData - InsurancePatientData" ], "summary": "Update insurance patient data (partial)", "parameters": [ { "type": "string", "description": "InsurancePatientData UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API InsurancePatientData update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/land/create": { "post": { "description": "Create a land row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Hospital - Land" ], "summary": "Create land", "parameters": [ { "description": "JSON:API land create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/land/delete/{id}": { "delete": { "produces": [ "application/json" ], "tags": [ "Hospital - Land" ], "summary": "Delete land", "parameters": [ { "type": "string", "description": "Land ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/land/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: name, -name, sortkey, -sortkey, is_active, -is_active, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "Hospital - Land" ], "summary": "List land", "parameters": [ { "type": "string", "description": "Search by name", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandListResponse" } } } } }, "/api/v1/land/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "Hospital - Land" ], "summary": "List land (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 1000)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandDataTableResponse" } } } } }, "/api/v1/land/update/{id}": { "patch": { "description": "Patch land by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Hospital - Land" ], "summary": "Update land (partial)", "parameters": [ { "type": "string", "description": "Land ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "JSON:API land update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/master-settings/create": { "post": { "description": "Create a master settings row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Master Settings" ], "summary": "Create master settings", "parameters": [ { "description": "JSON:API master settings create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/master-settings/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "Master Settings" ], "summary": "Delete master settings", "parameters": [ { "type": "string", "description": "Master Settings UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.Resource" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/master-settings/get": { "get": { "description": "Return singleton master settings object (latest active row).", "produces": [ "application/json" ], "tags": [ "Master Settings" ], "summary": "Get current master settings", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/master-settings/sso/microsoft": { "get": { "description": "Get Microsoft Entra SSO settings from master settings.", "produces": [ "application/json" ], "tags": [ "Master Settings" ], "summary": "Get Microsoft Entra SSO settings", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } }, "put": { "description": "Create or update Microsoft Entra SSO settings as master settings.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Master Settings" ], "summary": "Upsert Microsoft Entra SSO settings", "parameters": [ { "description": "JSON:API Microsoft Entra SSO upsert request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsMicrosoftEntraUpsertRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/master-settings/update/{uuid}": { "patch": { "description": "Patch master settings by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Master Settings" ], "summary": "Update master settings (partial)", "parameters": [ { "type": "string", "description": "Master Settings UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API master settings update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/mcf/get-by-helicopter/{helicopter_id}": { "get": { "produces": [ "application/json" ], "tags": [ "MCF" ], "summary": "List MCFs for a helicopter", "parameters": [ { "type": "string", "description": "Helicopter ID (UUIDv7)", "name": "helicopter_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MCFListResponse" } } } } }, "/api/v1/mcf/get/{id}": { "get": { "produces": [ "application/json" ], "tags": [ "MCF" ], "summary": "Get MCF by ID", "parameters": [ { "type": "string", "description": "MCF ID (UUIDv7)", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MCFResponse" } } } } }, "/api/v1/mcf/set/{helicopter_id}": { "post": { "description": "Toggles and edits a helicopter's MCF. `active:true` (or omitted) ACTIVATES/EDITS it — creates the draft if none is open (201), or UPDATES the open draft with the provided check-flight fields (200; af_hours, landing_count, utc_time, date, result, notes — all optional, partial edits allowed). Finalize it via POST /mcf/sign/{id} (sign:true). `active:false` DEACTIVATES it — cancels the open (unsigned) draft (\"tidak jadi\") and releases the MCF status; the cancelled record stays in the list. A signed MCF is a real event and is not cancelled.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "MCF" ], "summary": "Set a helicopter's MCF Yes/No — draft work endpoint (create/update or cancel)", "parameters": [ { "type": "string", "description": "Helicopter ID (UUIDv7)", "name": "helicopter_id", "in": "path", "required": true }, { "description": "JSON:API MCF set request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MCFSetRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MCFResponse" } }, "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MCFResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/mcf/sign/{id}": { "post": { "description": "Finalizes an MCF's check-flight. `sign` (optional, default true): true FINALIZES it — af_hours, landing_count, utc_time, date, result required; \"passed\" clears the aircraft from MCF, \"failed\" keeps it grounded. false UNSIGNS it — reverts a signed MCF back to a draft (keeps the recorded data). Editing draft fields is done via /mcf/set; cancelling via /mcf/set (active:false).", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "MCF" ], "summary": "Sign (finalize) or unsign an MCF — toggle by MCF id", "parameters": [ { "type": "string", "description": "MCF ID (UUIDv7)", "name": "id", "in": "path", "required": true }, { "description": "JSON:API MCF sign request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MCFCompleteRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MCFResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/medicine-group/create": { "post": { "description": "Create a medicine group row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "OPC - Medicine Group" ], "summary": "Create medicine group", "parameters": [ { "description": "JSON:API medicine group create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/medicine-group/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "OPC - Medicine Group" ], "summary": "Delete medicine group", "parameters": [ { "type": "string", "description": "Medicine Group UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/medicine-group/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: name, -name, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "OPC - Medicine Group" ], "summary": "List medicine groups", "parameters": [ { "type": "string", "description": "Search by group name", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/medicine-group/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "OPC - Medicine Group" ], "summary": "List medicine groups (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupDataTableResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/medicine-group/update/{uuid}": { "patch": { "description": "Patch medicine group by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "OPC - Medicine Group" ], "summary": "Update medicine group (partial)", "parameters": [ { "type": "string", "description": "Medicine Group UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API medicine group update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/medicine/create": { "post": { "description": "Create a medicine row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "OPC - Medicine" ], "summary": "Create medicine", "parameters": [ { "description": "JSON:API medicine create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/medicine/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "OPC - Medicine" ], "summary": "Delete medicine", "parameters": [ { "type": "string", "description": "Medicine UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/medicine/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Search covers name, note, pack, unit, and column. Sort values: name, -name, sortkey, -sortkey, note, -note, pack, -pack, unit, -unit, column, -column, is_active, -is_active, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "OPC - Medicine" ], "summary": "List medicine", "parameters": [ { "type": "string", "description": "Search by name/note/pack/unit/column", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineListResponse" } } } } }, "/api/v1/medicine/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "OPC - Medicine" ], "summary": "List medicine (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineDataTableResponse" } } } } }, "/api/v1/medicine/update/{uuid}": { "patch": { "description": "Patch medicine by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "OPC - Medicine" ], "summary": "Update medicine (partial)", "parameters": [ { "type": "string", "description": "Medicine UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API medicine update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/mission-type/create": { "post": { "description": "Create a mission category master record for use in mission flow.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - Mission" ], "summary": "Create mission type", "parameters": [ { "description": "JSON:API mission type create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MissionTypeCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionTypeResource" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/mission-type/get-all": { "get": { "description": "Returns all mission categories and their available subtypes.", "produces": [ "application/json" ], "tags": [ "Flights - Mission" ], "summary": "List mission types with subtypes", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionTypeListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/mission/create": { "post": { "description": "Create a mission and link it to a flight.\n`type` must be one of: `HEMS`, `CAT`, `SPO`, `NCO`.\n`subtype_id` is required when `type=HEMS` and must reference mission subcategory under `HEMS` category.\n`subtype_id` must be empty when `type` is not `HEMS`.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - Mission" ], "summary": "Create mission", "parameters": [ { "description": "JSON:API mission create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MissionCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/mission/delete-by-id/{mission_id}": { "delete": { "description": "Soft delete mission by its mission UUID. This also soft deletes flight data rows linked to the mission.", "produces": [ "application/json" ], "tags": [ "Flights - Mission" ], "summary": "Delete mission by mission ID", "parameters": [ { "type": "string", "description": "Mission ID (UUIDv7)", "name": "mission_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/mission/delete/{flight_id}": { "delete": { "description": "Soft delete mission by linked flight ID.", "produces": [ "application/json" ], "tags": [ "Flights - Mission" ], "summary": "Delete mission", "parameters": [ { "type": "string", "description": "Flight ID (UUIDv7)", "name": "flight_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/mission/file/{mission_id}/{attachment_id}": { "delete": { "description": "Detaches the file (by its attachment id) from the mission and deletes the attachment.", "produces": [ "application/json" ], "tags": [ "Flights - Mission" ], "summary": "Remove a file from a mission", "parameters": [ { "type": "string", "description": "Mission UUID", "name": "mission_id", "in": "path", "required": true }, { "type": "string", "description": "Attachment UUID (the file's attachment_id)", "name": "attachment_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/mission/get-all": { "get": { "description": "Supports `search`, `filter[search]`, `flight_id`, `sort`, `page[number]`, `page[size]`, `page`, `size`, and `limit`.", "produces": [ "application/json" ], "tags": [ "Flights - Mission" ], "summary": "List missions", "parameters": [ { "type": "string", "description": "Search text", "name": "search", "in": "query" }, { "type": "string", "description": "Search text (JSON:API style)", "name": "filter[search]", "in": "query" }, { "type": "string", "description": "Filter by flight UUID", "name": "flight_id", "in": "query" }, { "type": "string", "description": "Filter missions by flight data status: draft, in_progress, or completed", "name": "flight_data_status", "in": "query" }, { "type": "string", "description": "Sort field: type|-type|flight_date|-flight_date|created_at|-created_at|updated_at|-updated_at", "name": "sort", "in": "query" }, { "type": "integer", "description": "Page number", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size", "name": "page[size]", "in": "query" }, { "type": "integer", "description": "Page number (fallback)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (fallback)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override", "name": "limit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/mission/get-all/dt": { "get": { "description": "Supports `search`, `filter[search]`, `date_from`, `date_to`, `mission_type`, `pilot_id`, `helicopter_id`, `sort`, `start`, `length`, `draw`, `page[number]`, `page[size]`, `page`, `size`, and `limit`.\n`date_from` and `date_to` filter flights by their mission date range (`YYYY-MM-DD`).\n`mission_type` accepts `HEMS`, `CAT`, `SPO`, or `NCO`.\n`pilot_id` filters missions where the pilot is assigned on the linked flight roster.\n`helicopter_id` filters missions by the helicopter used in the linked flight takeover.", "produces": [ "application/json" ], "tags": [ "Flights - Mission" ], "summary": "List missions (datatable)", "parameters": [ { "type": "string", "description": "Search text", "name": "search", "in": "query" }, { "type": "string", "description": "Search text (JSON:API style)", "name": "filter[search]", "in": "query" }, { "type": "string", "description": "Filter by linked flight UUID", "name": "flight_id", "in": "query" }, { "type": "string", "description": "Mission date lower bound (YYYY-MM-DD)", "name": "date_from", "in": "query" }, { "type": "string", "description": "Mission date upper bound (YYYY-MM-DD)", "name": "date_to", "in": "query" }, { "type": "string", "description": "Mission type: HEMS|CAT|SPO|NCO", "name": "mission_type", "in": "query" }, { "type": "string", "description": "Pilot user UUID", "name": "pilot_id", "in": "query" }, { "type": "string", "description": "Helicopter UUID", "name": "helicopter_id", "in": "query" }, { "type": "string", "description": "Sort field: type|-type|flight_date|-flight_date|created_at|-created_at|updated_at|-updated_at", "name": "sort", "in": "query" }, { "type": "integer", "description": "DataTables start index", "name": "start", "in": "query" }, { "type": "integer", "description": "DataTables page size", "name": "length", "in": "query" }, { "type": "integer", "description": "DataTables draw counter", "name": "draw", "in": "query" }, { "type": "integer", "description": "Page number", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size", "name": "page[size]", "in": "query" }, { "type": "integer", "description": "Page number (fallback)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (fallback)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override", "name": "limit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionDataTableResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/mission/get/{flight_id}": { "get": { "description": "Get mission detail by linked flight ID.", "produces": [ "application/json" ], "tags": [ "Flights - Mission" ], "summary": "Get mission by flight ID", "parameters": [ { "type": "string", "description": "Flight ID (UUIDv7)", "name": "flight_id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/mission/update/{mission_id}": { "patch": { "description": "Update mission type/subtype/note by mission ID, and optionally attach files already uploaded via `upload-mission-file`.\n`type` must be one of: `HEMS`, `CAT`, `SPO`, `NCO`.\n`subtype_id` is required when `type=HEMS` and must reference mission subcategory under `HEMS` category.\n`subtype_id` must be empty when `type` is not `HEMS`.\n`files[]` items reference an `upload_intent_uuid` (from `upload-mission-file`) and an optional display `name`.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - Mission" ], "summary": "Update mission", "parameters": [ { "type": "string", "description": "Mission ID (UUIDv7)", "name": "mission_id", "in": "path", "required": true }, { "description": "JSON:API mission update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MissionUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/motor-reaction/create": { "post": { "description": "Create a motor reaction row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "OPC - Motor Reaction" ], "summary": "Create motor reaction", "parameters": [ { "description": "JSON:API motor reaction create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/motor-reaction/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "OPC - Motor Reaction" ], "summary": "Delete motor reaction", "parameters": [ { "type": "string", "description": "Motor Reaction UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/motor-reaction/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: name, -name, score, -score, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "OPC - Motor Reaction" ], "summary": "List motor reactions", "parameters": [ { "type": "string", "description": "Search by reaction name or score", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/motor-reaction/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "OPC - Motor Reaction" ], "summary": "List motor reactions (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionDataTableResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/motor-reaction/update/{uuid}": { "patch": { "description": "Patch motor reaction by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "OPC - Motor Reaction" ], "summary": "Update motor reaction (partial)", "parameters": [ { "type": "string", "description": "Motor Reaction UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API motor reaction update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "503": { "description": "Service Unavailable", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/opc/create": { "post": { "description": "Create an OPC row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "OPC - OPC" ], "summary": "Create opc", "parameters": [ { "description": "JSON:API OPC create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/opc/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "OPC - OPC" ], "summary": "Delete opc", "parameters": [ { "type": "string", "description": "OPC UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/opc/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: title, -title, sortkey, -sortkey, note, -note, is_active, -is_active, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "OPC - OPC" ], "summary": "List opc", "parameters": [ { "type": "string", "description": "Search by title/note", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcListResponse" } } } } }, "/api/v1/opc/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "OPC - OPC" ], "summary": "List opc (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcDataTableResponse" } } } } }, "/api/v1/opc/update/{uuid}": { "patch": { "description": "Patch opc by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "OPC - OPC" ], "summary": "Update opc (partial)", "parameters": [ { "type": "string", "description": "OPC UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API OPC update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/patient-data/create": { "post": { "description": "Create a PatientData record.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "PatientData - PatientData" ], "summary": "Create patient data", "parameters": [ { "description": "JSON:API PatientData create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/patient-data/delete/{uuid}": { "delete": { "description": "Soft delete PatientData by ID.", "produces": [ "application/json" ], "tags": [ "PatientData - PatientData" ], "summary": "Delete patient data", "parameters": [ { "type": "string", "description": "PatientData UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/patient-data/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: family_name, -family_name, first_name, -first_name, birth_date, -birth_date, gender, -gender, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "PatientData - PatientData" ], "summary": "List patient data", "parameters": [ { "type": "string", "description": "Search by family_name/first_name/svnr/email/phone/street", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataListResponse" } } } } }, "/api/v1/patient-data/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "PatientData - PatientData" ], "summary": "List patient data (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search by family_name/first_name/svnr/email/phone/street", "name": "search", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataDataTableResponse" } } } } }, "/api/v1/patient-data/get/{uuid}": { "get": { "description": "Get a single PatientData record by UUID.", "produces": [ "application/json" ], "tags": [ "PatientData - PatientData" ], "summary": "Get patient data by ID", "parameters": [ { "type": "string", "description": "PatientData UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/patient-data/update/{uuid}": { "patch": { "description": "Patch PatientData by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "PatientData - PatientData" ], "summary": "Update patient data (partial)", "parameters": [ { "type": "string", "description": "PatientData UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API PatientData update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/public/branding/email-logo": { "get": { "description": "Return a stable company logo optimized for email clients like Outlook.\nBackend prefers managed raster thumbnail/logo and falls back to backend-generated PNG when necessary.\nSupports conditional requests with `If-None-Match` / `If-Modified-Since`.", "produces": [ "image/png", "image/jpeg", "image/gif", "application/octet-stream" ], "tags": [ "Branding" ], "summary": "Get email-safe branding logo", "responses": { "200": { "description": "Email-safe branding logo binary", "schema": { "type": "file" } }, "304": { "description": "Not Modified", "schema": { "type": "string" } } } } }, "/api/v1/reserve-acs/create": { "post": { "description": "Create reserve AC, create draft inspection, fill before + prepare inspection payload, and assign to flight.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - Reserve AC" ], "summary": "Create reserve aircraft assignment", "parameters": [ { "description": "Create reserve AC request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ReserveAcResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/reserve-acs/delete": { "delete": { "description": "Delete reserve AC by body `data.id`.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - Reserve AC" ], "summary": "Delete reserve AC", "parameters": [ { "description": "Delete reserve AC request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcDeleteRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.Document" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/reserve-acs/get-all": { "get": { "description": "Supports `search`, `filter[search]`, `sort`, `page[number]`, `page[size]`, `page`, `size`, and `limit`.", "produces": [ "application/json" ], "tags": [ "Flights - Reserve AC" ], "summary": "List reserve AC", "parameters": [ { "type": "string", "description": "Search text", "name": "search", "in": "query" }, { "type": "string", "description": "Search text (JSON:API style)", "name": "filter[search]", "in": "query" }, { "type": "string", "description": "Reserve AC UUID (exact match)", "name": "id", "in": "query" }, { "type": "string", "description": "Flight UUID (exact match)", "name": "flight_id", "in": "query" }, { "type": "string", "description": "Sort field", "name": "sort", "in": "query" }, { "type": "integer", "description": "Page number", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size", "name": "page[size]", "in": "query" }, { "type": "integer", "description": "Page number (fallback)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (fallback)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override", "name": "limit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ReserveAcListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/reserve-acs/get-all/dt": { "get": { "description": "Datatable list scoped by auth user. Admin can see all rows; non-admin only sees reserve AC linked to own flight assignments.", "produces": [ "application/json" ], "tags": [ "Flights - Reserve AC" ], "summary": "List reserve AC (datatable)", "parameters": [ { "type": "string", "description": "Search text", "name": "search", "in": "query" }, { "type": "string", "description": "Search text (JSON:API style)", "name": "filter[search]", "in": "query" }, { "type": "string", "description": "Reserve AC UUID (exact match)", "name": "id", "in": "query" }, { "type": "string", "description": "Flight UUID (exact match)", "name": "flight_id", "in": "query" }, { "type": "string", "description": "Sort field", "name": "sort", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ReserveAcListResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/reserve-acs/get/{uuid}": { "get": { "description": "Get reserve AC detail. Path `uuid` accepts reserve_ac id, and supports fallback to flight id.", "produces": [ "application/json" ], "tags": [ "Flights - Reserve AC" ], "summary": "Get reserve AC by UUID or flight UUID", "parameters": [ { "type": "string", "description": "Reserve AC UUID or Flight UUID", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ReserveAcResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/reserve-acs/update": { "patch": { "description": "Update reserve AC using body `data.id`.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flights - Reserve AC" ], "summary": "Update reserve AC", "parameters": [ { "description": "Update reserve AC request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ReserveAcResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/roles/create": { "post": { "description": "Create a new role. Name is required and must be unique.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "Create role", "parameters": [ { "description": "JSON:API Role create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/roles/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "Delete role", "parameters": [ { "type": "string", "description": "Role UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/roles/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: name, -name, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "List roles", "parameters": [ { "type": "string", "description": "Filter by name (contains)", "name": "filter[name]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" }, { "type": "string", "description": "Set to 'permissions' to embed each role's assigned permissions", "name": "include", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleListResponse" } } } } }, "/api/v1/roles/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "List roles (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleDataTableResponse" } } } } }, "/api/v1/roles/get/{uuid}": { "get": { "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "Get role by ID", "parameters": [ { "type": "string", "description": "Role UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/roles/permissions/get-all": { "get": { "description": "Returns every permission grouped by its module, ordered by the module registry. Optional filter[name] narrows by permission name/key.", "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "List permissions grouped by module", "parameters": [ { "type": "string", "description": "Filter by name/key (contains)", "name": "filter[name]", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionGroupedResponse" } } } } }, "/api/v1/roles/permissions/{permission_uuid}": { "patch": { "description": "Patch permission by ID. Currently supports updating requires_pin.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "Update permission", "parameters": [ { "type": "string", "description": "Permission UUID (UUIDv7)", "name": "permission_uuid", "in": "path", "required": true }, { "description": "JSON:API permission update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionResource" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/roles/update/{uuid}": { "patch": { "description": "Patch role by ID. Provide at least one of: name, description. Name must be unique if provided.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "Update role (partial)", "parameters": [ { "type": "string", "description": "Role UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API Role update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/roles/{uuid}/permissions": { "get": { "description": "Returns the permissions currently assigned to the given role. Pair with /roles/permissions/get-all to pre-check a role-permission editor.", "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "List a role's assigned permissions", "parameters": [ { "type": "string", "description": "Role UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionListResponse" } } } }, "post": { "description": "Assign one permission to a role. Idempotent if already assigned.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "Assign permission to role", "parameters": [ { "type": "string", "description": "Role UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API role permission assign request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionAssignRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/roles/{uuid}/permissions/assign-bulk": { "post": { "description": "Assign multiple permissions to role. Idempotent for duplicates/already assigned.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "Assign permissions to role (bulk)", "parameters": [ { "type": "string", "description": "Role UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API role permission bulk request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionAssignBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionListResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/roles/{uuid}/permissions/remove-bulk": { "post": { "description": "Remove multiple permissions from role.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "Remove permissions from role (bulk)", "parameters": [ { "type": "string", "description": "Role UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API role permission bulk request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionRemoveBulkRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionListResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/roles/{uuid}/permissions/{permission_uuid}": { "delete": { "description": "Remove one permission from role.", "produces": [ "application/json" ], "tags": [ "Roles" ], "summary": "Remove permission from role", "parameters": [ { "type": "string", "description": "Role UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "type": "string", "description": "Permission UUID (UUIDv7)", "name": "permission_uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/takeovers/create": { "post": { "description": "Atomic create for duty roster + crews + reserve AC + pre-flight inspection + flight. The takeover inspection payload also includes fleet status files under `inspection.fleet_status_file`.\nOptional takeover file uploads can be included via `data.attributes.files[*]` using upload intent UUIDs.\nEdited template draft files created earlier can be linked by passing `data.attributes.edited_template_file_ids[*]`.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flight - Takeovers" ], "summary": "Create takeover in one request", "parameters": [ { "description": "Create takeover request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/takeovers/delete/{id}": { "delete": { "produces": [ "application/json" ], "tags": [ "Flight - Takeovers" ], "summary": "Delete takeover by flight UUID", "parameters": [ { "type": "string", "description": "Flight UUID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": true } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/takeovers/get-all": { "get": { "description": "Return composite takeover records built from flight, reserve AC, duty roster, and inspection. The inspection payload includes `before`, `prepare`, and `fleet_status_file`.", "produces": [ "application/json" ], "tags": [ "Flight - Takeovers" ], "summary": "List takeovers", "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": true } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/takeovers/get/{id}": { "get": { "produces": [ "application/json" ], "tags": [ "Flight - Takeovers" ], "summary": "Get takeover by flight UUID", "parameters": [ { "type": "string", "description": "Flight UUID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/takeovers/update/{id}": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Flight - Takeovers" ], "summary": "Replace takeover by flight UUID", "parameters": [ { "type": "string", "description": "Flight UUID", "name": "id", "in": "path", "required": true }, { "description": "Update takeover request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorDocument" } } } } }, "/api/v1/users/create": { "post": { "description": "Create a new user. Email, username, first name, last name and role_id are required. Use role_ids to assign additional roles.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Create user", "parameters": [ { "description": "JSON:API User create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/users/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Delete user", "parameters": [ { "type": "string", "description": "User UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/users/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: email, -email, first_name, -first_name, last_name, -last_name, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "List users", "parameters": [ { "type": "string", "description": "Search by username/email/first_name/last_name (contains)", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserListResponse" } } } } }, "/api/v1/users/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "List users (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserDataTableResponse" } } } } }, "/api/v1/users/get/{uuid}": { "get": { "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Get user by ID", "parameters": [ { "type": "string", "description": "User UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/users/update/{uuid}": { "patch": { "description": "Patch user by ID. Provide at least one attribute to update.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Users" ], "summary": "Update user (partial)", "parameters": [ { "type": "string", "description": "User UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API User update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/vocation/create": { "post": { "description": "Create a vocation row.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "OPC - Vocation" ], "summary": "Create vocation", "parameters": [ { "description": "JSON:API vocation create request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationCreateRequest" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/vocation/delete/{uuid}": { "delete": { "produces": [ "application/json" ], "tags": [ "OPC - Vocation" ], "summary": "Delete vocation", "parameters": [ { "type": "string", "description": "Vocation UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } }, "/api/v1/vocation/get-all": { "get": { "description": "JSON:API list with pagination, filtering and sorting. Sort values: name, -name, sortkey, -sortkey, note, -note, is_active, -is_active, created_at, -created_at, updated_at, -updated_at.", "produces": [ "application/json" ], "tags": [ "OPC - Vocation" ], "summary": "List vocation", "parameters": [ { "type": "string", "description": "Search by name/note", "name": "filter[search]", "in": "query" }, { "type": "integer", "description": "Page number (default 1)", "name": "page[number]", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "page[size]", "in": "query" }, { "type": "string", "description": "Sort order", "name": "sort", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationListResponse" } } } } }, "/api/v1/vocation/get-all/dt": { "get": { "description": "Datatable response with simple pagination params.", "produces": [ "application/json" ], "tags": [ "OPC - Vocation" ], "summary": "List vocation (datatable)", "parameters": [ { "type": "integer", "description": "Page number (default 1)", "name": "page", "in": "query" }, { "type": "integer", "description": "Page size (default 20, max 100)", "name": "size", "in": "query" }, { "type": "integer", "description": "Page size override (same as size)", "name": "limit", "in": "query" }, { "type": "integer", "description": "Draw counter (optional)", "name": "draw", "in": "query" }, { "type": "string", "description": "Search term", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationDataTableResponse" } } } } }, "/api/v1/vocation/update/{uuid}": { "patch": { "description": "Patch vocation by ID.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "OPC - Vocation" ], "summary": "Update vocation (partial)", "parameters": [ { "type": "string", "description": "Vocation UUID (UUIDv7)", "name": "uuid", "in": "path", "required": true }, { "description": "JSON:API vocation update request", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationUpdateRequest" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationResponse" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } }, "422": { "description": "Unprocessable Entity", "schema": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ErrorResponse" } } } } } }, "definitions": { "internal_transport_http_handlers.loginBrandingContentAttrsDTO": { "type": "object", "properties": { "subtitle": { "type": "string" }, "title": { "type": "string" }, "updated_at": { "type": "string" }, "version": { "type": "string" } } }, "internal_transport_http_handlers.loginBrandingContentData": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/internal_transport_http_handlers.loginBrandingContentAttrsDTO" }, "type": { "type": "string" } } }, "internal_transport_http_handlers.loginBrandingContentDocument": { "type": "object", "properties": { "data": { "$ref": "#/definitions/internal_transport_http_handlers.loginBrandingContentData" } } }, "wucher_internal_transport_http_dto.AfterFlightInspectionAttributes": { "type": "object", "properties": { "completed": { "type": "integer", "example": 1 }, "created_at": { "type": "string", "example": "2026-04-09T05:00:00Z" }, "done_file_checklist": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionFileChecklistItem" } }, "file_checklist": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionFileChecklistItem" } }, "flight_data_count": { "type": "integer", "example": 2 }, "flight_inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FlightInspectionResource" }, "flight_inspection_id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "flight_time_seconds": { "type": "integer", "example": 9000 }, "helicopter": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterResource" }, "hydraulic_lh_checked": { "type": "string", "example": "1" }, "hydraulic_rh_checked": { "type": "string", "example": "1" }, "id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "mission_code": { "type": "string", "example": "M-2026-001" }, "mission_type": { "type": "array", "items": { "type": "string" } }, "note": { "type": "string", "example": "All checks completed" }, "oil_engine_nr1_checked": { "type": "string", "example": "1" }, "oil_engine_nr2_checked": { "type": "string", "example": "1" }, "oil_transmission_igb_checked": { "type": "string", "example": "1" }, "oil_transmission_mgb_checked": { "type": "string", "example": "1" }, "oil_transmission_tgb_checked": { "type": "string", "example": "1" }, "route": { "type": "array", "items": { "type": "string" } }, "total": { "type": "integer", "example": 3 }, "total_flight": { "type": "integer", "example": 3 }, "updated_at": { "type": "string", "example": "2026-04-09T05:00:00Z" } } }, "wucher_internal_transport_http_dto.AfterFlightInspectionFileChecklistItem": { "type": "object", "properties": { "download_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=..." }, "file_name": { "type": "string", "example": "After Flight Checklist.pdf" }, "helicopter_file_id": { "type": "string", "example": "019d7000-aaaa-7bbb-8ccc-111111111111" }, "is_done": { "type": "boolean", "example": false } } }, "wucher_internal_transport_http_dto.AfterFlightInspectionResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionAttributes" }, "id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "type": { "type": "string", "example": "after_flight_inspection" } } }, "wucher_internal_transport_http_dto.AfterFlightInspectionResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionResource" } } }, "wucher_internal_transport_http_dto.AfterFlightInspectionUpsertAttributes": { "type": "object", "properties": { "hydraulic_lh_checked": { "type": "string" }, "hydraulic_rh_checked": { "type": "string" }, "note": { "type": "string" }, "oil_engine_nr1_checked": { "type": "string" }, "oil_engine_nr2_checked": { "type": "string" }, "oil_transmission_igb_checked": { "type": "string" }, "oil_transmission_mgb_checked": { "type": "string" }, "oil_transmission_tgb_checked": { "type": "string" } } }, "wucher_internal_transport_http_dto.AfterFlightInspectionUpsertData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionUpsertAttributes" }, "type": { "type": "string", "enum": [ "after_flight_inspection_upsert", "after_flight_inspection" ] } } }, "wucher_internal_transport_http_dto.AfterFlightInspectionUpsertRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionUpsertData" } } }, "wucher_internal_transport_http_dto.AirRescuerProfileAttributes": { "type": "object", "properties": { "location": { "type": "string", "maxLength": 255 }, "note": { "type": "string" }, "postcode": { "type": "string", "maxLength": 32 }, "responsible_flight_rescuer": { "type": "boolean" }, "short_name": { "type": "string", "maxLength": 120 }, "street_line": { "type": "string", "maxLength": 255 } } }, "wucher_internal_transport_http_dto.AirRescuerProfileUpdateAttributes": { "type": "object", "properties": { "location": { "type": "string", "maxLength": 255 }, "note": { "type": "string" }, "postcode": { "type": "string", "maxLength": 32 }, "responsible_flight_rescuer": { "type": "boolean" }, "short_name": { "type": "string", "maxLength": 120 }, "street_line": { "type": "string", "maxLength": 255 } } }, "wucher_internal_transport_http_dto.AuthCurrentUserAttributes": { "type": "object", "properties": { "auth_provider": { "type": "string", "example": "email" }, "dul_bases": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULBase" } }, "email": { "type": "string", "example": "user@example.com" }, "email_sso": { "type": "string", "example": "user.sso@example.com" }, "email_verified_at": { "type": "string", "example": "2026-02-05T10:00:00Z" }, "first_name": { "type": "string", "example": "John" }, "foto": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserFoto" }, "is_previously_configured": { "type": "boolean", "example": false }, "last_name": { "type": "string", "example": "Doe" }, "linked_sso": { "type": "boolean", "example": false }, "login_method": { "type": "string", "example": "email" }, "microsoft_scope": { "type": "string", "example": "openid profile email offline_access User.Read" }, "mobile_phone": { "type": "string", "example": "+628123456789" }, "permission_modules": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionGroupResource" } }, "permissions": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionMini" } }, "pin_blocked": { "type": "boolean", "example": false }, "pin_configured": { "type": "boolean", "example": false }, "roles": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleMini" } }, "timezone": { "type": "string", "example": "Asia/Jakarta" }, "totp_enabled": { "type": "boolean", "example": false }, "webauthn_configured": { "type": "boolean", "example": false } } }, "wucher_internal_transport_http_dto.AuthCurrentUserResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthCurrentUserAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "user" } } } } }, "wucher_internal_transport_http_dto.AuthSessionDeleteResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "deleted": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "auth_session_delete" } } } } }, "wucher_internal_transport_http_dto.AuthSessionItem": { "type": "object", "properties": { "active_now": { "type": "boolean", "example": true }, "created_at": { "type": "string", "example": "2026-03-13T12:00:00Z" }, "device_name": { "type": "string", "example": "Chrome on macOS" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "ip_address": { "type": "string", "example": "127.0.0.1" }, "last_active_at": { "type": "string", "example": "2026-03-13T12:10:00Z" }, "user_agent": { "type": "string", "example": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ..." } } }, "wucher_internal_transport_http_dto.AuthSessionsResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "sessions": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AuthSessionItem" } } } }, "type": { "type": "string", "example": "auth_sessions" } } } } }, "wucher_internal_transport_http_dto.BaseAttributes": { "type": "object", "properties": { "address": { "type": "string", "example": "Lude Airfield" }, "base": { "type": "string", "example": "Lude" }, "base_abbreviation": { "type": "string", "example": "LOIG" }, "base_category": { "type": "string", "enum": [ "regular", "hems" ], "example": "regular" }, "checklist": { "type": "boolean", "example": false }, "control_center": { "type": "boolean", "example": false }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "default_end_time_type": { "type": "string", "enum": [ "FIXED", "BMCT", "ECET" ], "example": "FIXED" }, "default_start_time_type": { "type": "string", "enum": [ "FIXED", "BMCT", "ECET" ], "example": "FIXED" }, "dry": { "type": "boolean", "example": false }, "dul": { "type": "boolean", "example": false }, "email": { "type": "string", "example": "lude@wucher.local" }, "foto": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseFoto" }, "hems_edc": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseContact" } }, "hems_edc_contact_ids": { "type": "array", "items": { "type": "string" } }, "is_active": { "type": "boolean", "example": true }, "landline_number": { "type": "string", "example": "+62-21-1234" }, "latitude": { "type": "number", "example": 47.3769 }, "leg_time": { "type": "string", "example": "00:20" }, "longitude": { "type": "number", "example": 8.5417 }, "med_pax": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseContact" } }, "med_pax_contact_ids": { "type": "array", "items": { "type": "string" } }, "mobile_number": { "type": "string", "example": "+62-812-1234" }, "notes": { "type": "string", "example": "Main base" }, "operational_shift_times": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseOperationalShiftTime" } }, "responsible_pilot_contact_ids": { "type": "array", "items": { "type": "string" } }, "responsible_pilots": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseContact" } }, "shift_time": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseShiftTime" }, "sms_alert": { "type": "boolean", "example": false }, "sortkey": { "type": "integer", "example": 1 }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "utc": { "type": "string", "example": "0" } } }, "wucher_internal_transport_http_dto.BaseContact": { "type": "object", "properties": { "first_name": { "type": "string" }, "id": { "type": "string" }, "last_name": { "type": "string" } } }, "wucher_internal_transport_http_dto.BaseCreateAttributes": { "type": "object", "required": [ "base", "latitude", "longitude" ], "properties": { "address": { "type": "string", "example": "Lude Airfield" }, "base": { "type": "string", "example": "Lude" }, "base_abbreviation": { "type": "string", "example": "LOIG" }, "base_category": { "type": "string", "enum": [ "regular", "hems" ], "example": "regular" }, "checklist": { "type": "boolean", "example": false }, "control_center": { "type": "boolean", "example": false }, "default_end_time_type": { "type": "string", "enum": [ "FIXED", "BMCT", "ECET" ], "example": "FIXED" }, "default_shift_end": { "type": "string", "example": "21:00:00" }, "default_shift_start": { "type": "string", "example": "06:00:00" }, "default_shift_time": { "type": "string", "example": "12:00" }, "default_start_time_type": { "type": "string", "enum": [ "FIXED", "BMCT", "ECET" ], "example": "FIXED" }, "dry": { "type": "boolean", "example": false }, "dul": { "type": "boolean", "example": false }, "email": { "type": "string", "example": "lude@wucher.local" }, "file_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e90" }, "hems_edc_contact_ids": { "type": "array", "items": { "type": "string" } }, "is_active": { "type": "boolean", "example": true }, "landline_number": { "type": "string", "example": "+62-21-1234" }, "latitude": { "type": "number", "maximum": 90, "minimum": -90, "example": 47.3769 }, "leg_time": { "type": "string", "example": "00:20" }, "longitude": { "type": "number", "maximum": 180, "minimum": -180, "example": 8.5417 }, "med_pax_contact_ids": { "type": "array", "items": { "type": "string" } }, "mobile_number": { "type": "string", "example": "+62-812-1234" }, "notes": { "type": "string", "example": "Main base" }, "operational_shift_times": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseOperationalShiftTime" } }, "responsible_pilot_contact_ids": { "type": "array", "items": { "type": "string" } }, "shift_time": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseShiftTime" }, "sms_alert": { "type": "boolean", "example": false }, "sortkey": { "type": "integer", "example": 1 }, "utc": { "type": "string", "example": "0" } } }, "wucher_internal_transport_http_dto.BaseCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseCreateAttributes" }, "type": { "type": "string", "enum": [ "base" ], "example": "base" } } }, "wucher_internal_transport_http_dto.BaseCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseCreateData" } } }, "wucher_internal_transport_http_dto.BaseDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.BaseDeleteAttributes": { "type": "object", "properties": { "deleted": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto.BaseDeleteResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseDeleteAttributes" }, "id": { "type": "string", "example": "019d6b10-a385-7e9e-a553-8e892bcec0ef" }, "type": { "type": "string", "example": "base_delete" } } }, "wucher_internal_transport_http_dto.BaseDeleteResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseDeleteResource" } } }, "wucher_internal_transport_http_dto.BaseFoto": { "type": "object", "properties": { "download_url": { "type": "string", "example": "https://storage.example.com/base/lude.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Expires=900\u0026X-Amz-Signature=abc123" }, "original_size_bytes": { "type": "integer", "example": 1024000 }, "thumbnail_download_url": { "type": "string", "example": "https://storage.example.com/base/lude.thumb.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Expires=900\u0026X-Amz-Signature=abc123" }, "uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.BaseListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.BaseOperationalShiftTime": { "type": "object", "properties": { "date_end": { "type": "string", "example": "2026-04-12" }, "date_start": { "type": "string", "example": "2026-04-12" }, "end_time_type": { "type": "string", "enum": [ "FIXED", "BMCT", "ECET" ], "example": "FIXED" }, "shift_time": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseShiftTime" }, "start_time_type": { "type": "string", "enum": [ "FIXED", "BMCT", "ECET" ], "example": "FIXED" } } }, "wucher_internal_transport_http_dto.BaseResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "base" } } }, "wucher_internal_transport_http_dto.BaseResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseResource" } } }, "wucher_internal_transport_http_dto.BaseShiftTime": { "type": "object", "properties": { "end": { "type": "string", "example": "21:00" }, "start": { "type": "string", "example": "06:00" } } }, "wucher_internal_transport_http_dto.BaseUpdateAttributes": { "type": "object", "properties": { "address": { "type": "string", "example": "Lude Airfield" }, "base": { "type": "string", "example": "Lude" }, "base_abbreviation": { "type": "string", "example": "LOIG" }, "base_category": { "type": "string", "enum": [ "regular", "hems" ], "example": "regular" }, "checklist": { "type": "boolean", "example": false }, "control_center": { "type": "boolean", "example": false }, "default_end_time_type": { "type": "string", "enum": [ "FIXED", "BMCT", "ECET" ], "example": "FIXED" }, "default_shift_end": { "type": "string", "example": "21:00:00" }, "default_shift_start": { "type": "string", "example": "06:00:00" }, "default_shift_time": { "type": "string", "example": "12:00" }, "default_start_time_type": { "type": "string", "enum": [ "FIXED", "BMCT", "ECET" ], "example": "FIXED" }, "dry": { "type": "boolean", "example": false }, "dul": { "type": "boolean", "example": false }, "email": { "type": "string", "example": "lude@wucher.local" }, "file_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e90" }, "hems_edc_contact_ids": { "type": "array", "items": { "type": "string" } }, "is_active": { "type": "boolean", "example": true }, "landline_number": { "type": "string", "example": "+62-21-1234" }, "latitude": { "type": "number", "maximum": 90, "minimum": -90, "example": 47.3769 }, "leg_time": { "type": "string", "example": "00:20" }, "longitude": { "type": "number", "maximum": 180, "minimum": -180, "example": 8.5417 }, "med_pax_contact_ids": { "type": "array", "items": { "type": "string" } }, "mobile_number": { "type": "string", "example": "+62-812-1234" }, "notes": { "type": "string", "example": "Main base" }, "operational_shift_times": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseOperationalShiftTime" } }, "responsible_pilot_contact_ids": { "type": "array", "items": { "type": "string" } }, "shift_time": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseShiftTime" }, "sms_alert": { "type": "boolean", "example": false }, "sortkey": { "type": "integer", "example": 1 }, "utc": { "type": "string", "example": "0" } } }, "wucher_internal_transport_http_dto.BaseUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "base_update" ], "example": "base_update" } } }, "wucher_internal_transport_http_dto.BaseUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.BaseUpdateData" } } }, "wucher_internal_transport_http_dto.ContactBaseRole": { "type": "object", "properties": { "base_id": { "type": "string" }, "base_name": { "type": "string" }, "role_code": { "type": "string" } } }, "wucher_internal_transport_http_dto.ContactBulkUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "type": "object", "required": [ "user_ids" ], "properties": { "is_active": { "type": "boolean", "example": true }, "user_ids": { "type": "array", "minItems": 1, "items": { "type": "string" }, "example": [ "0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d1" ] } } }, "type": { "type": "string", "example": "contact_bulk_update" } } }, "wucher_internal_transport_http_dto.ContactBulkUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactBulkUpdateData" } } }, "wucher_internal_transport_http_dto.ContactChiefFlagsUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "type": "object", "properties": { "is_chief_physician": { "type": "boolean" }, "is_chief_pilot": { "type": "boolean" }, "is_chief_technician": { "type": "boolean" } } }, "type": { "type": "string" } } }, "wucher_internal_transport_http_dto.ContactChiefFlagsUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactChiefFlagsUpdateData" } } }, "wucher_internal_transport_http_dto.ContactCreateAttributes": { "type": "object", "properties": { "air_rescuer": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AirRescuerProfileAttributes" }, "doctor": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DoctorProfileAttributes" }, "email": { "type": "string" }, "file_uuid": { "type": "string", "maxLength": 64 }, "first_name": { "type": "string", "maxLength": 100 }, "flight_assistant": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FlightAssistantProfileAttributes" }, "is_active": { "type": "boolean" }, "is_admin": { "type": "boolean" }, "last_name": { "type": "string", "maxLength": 100 }, "mobile_phone": { "type": "string", "maxLength": 32 }, "pilot": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PilotProfileAttributes" }, "role_id": { "type": "string", "example": "0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d1" }, "role_ids": { "type": "array", "items": { "type": "string" }, "example": [ "0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d1", "0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d2" ] }, "sortkey": { "type": "integer" }, "sso_email": { "type": "string" }, "staff": { "$ref": "#/definitions/wucher_internal_transport_http_dto.StaffProfileAttributes" }, "technician": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TechnicianProfileAttributes" }, "timezone": { "type": "string", "maxLength": 64 }, "username": { "type": "string", "maxLength": 100 } } }, "wucher_internal_transport_http_dto.ContactCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactCreateAttributes" }, "type": { "type": "string", "example": "contact_create" } } }, "wucher_internal_transport_http_dto.ContactCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactCreateData" } } }, "wucher_internal_transport_http_dto.ContactDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactListItem" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.ContactLicenseUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "type": "object", "properties": { "license_no": { "type": "string" } } }, "type": { "type": "string" } } }, "wucher_internal_transport_http_dto.ContactLicenseUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactLicenseUpdateData" } } }, "wucher_internal_transport_http_dto.ContactListAttributes": { "type": "object", "properties": { "air_rescuer": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AirRescuerProfileAttributes" }, "base_roles": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactBaseRole" } }, "created_at": { "type": "string" }, "created_by": { "type": "string" }, "doctor": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DoctorProfileAttributes" }, "email": { "type": "string" }, "first_name": { "type": "string" }, "flight_assistant": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FlightAssistantProfileAttributes" }, "is_active": { "type": "boolean" }, "is_admin": { "type": "boolean" }, "last_name": { "type": "string" }, "license_no": { "type": "string" }, "location": { "type": "string" }, "mobile_phone": { "type": "string" }, "note": { "type": "string" }, "pilot": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PilotProfileAttributes" }, "pilot_category": { "type": "string" }, "role_code": { "type": "string" }, "role_name": { "type": "string" }, "roles": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactRole" } }, "set_password": { "type": "boolean" }, "short_name": { "type": "string" }, "sortkey": { "type": "integer" }, "sso_email": { "type": "string" }, "staff": { "$ref": "#/definitions/wucher_internal_transport_http_dto.StaffProfileAttributes" }, "technician": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TechnicianProfileAttributes" }, "updated_at": { "type": "string" }, "updated_by": { "type": "string" }, "username": { "type": "string" } } }, "wucher_internal_transport_http_dto.ContactListItem": { "type": "object", "properties": { "created_at": { "type": "string" }, "created_by": { "type": "string" }, "email": { "type": "string" }, "first_name": { "type": "string" }, "id": { "type": "string" }, "is_active": { "type": "boolean" }, "is_admin": { "type": "boolean" }, "last_name": { "type": "string" }, "license_no": { "type": "string" }, "location": { "type": "string" }, "mobile_phone": { "type": "string" }, "note": { "type": "string" }, "pilot_category": { "type": "string" }, "role_code": { "type": "string" }, "role_name": { "type": "string" }, "set_password": { "type": "boolean" }, "short_name": { "type": "string" }, "sortkey": { "type": "integer" }, "updated_at": { "type": "string" }, "updated_by": { "type": "string" }, "username": { "type": "string" } } }, "wucher_internal_transport_http_dto.ContactListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactListAttributes" }, "id": { "type": "string", "example": "019dcce4-f15e-7685-8e4c-76f8ad20594b" }, "type": { "type": "string", "example": "contact" } } } }, "meta": { "type": "object", "properties": { "limit": { "type": "integer" }, "offset": { "type": "integer" }, "total": { "type": "integer" } } } } }, "wucher_internal_transport_http_dto.ContactPilotCategoryUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "type": "object", "required": [ "pilot_category" ], "properties": { "pilot_category": { "type": "string", "enum": [ "regular", "freelance", "dry_lease" ] } } }, "type": { "type": "string" } } }, "wucher_internal_transport_http_dto.ContactPilotCategoryUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactPilotCategoryUpdateData" } } }, "wucher_internal_transport_http_dto.ContactRole": { "type": "object", "properties": { "id": { "type": "string" }, "role_code": { "type": "string" }, "role_name": { "type": "string" } } }, "wucher_internal_transport_http_dto.ContactRoleUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "type": "object", "required": [ "role_code" ], "properties": { "role_code": { "type": "string", "enum": [ "pilot", "doctor", "air_rescuer", "technician", "flight_assistant", "staff" ] } } }, "type": { "type": "string" } } }, "wucher_internal_transport_http_dto.ContactRoleUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactRoleUpdateData" } } }, "wucher_internal_transport_http_dto.ContactSimpleSuccessResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "count": { "type": "integer" }, "deleted": { "type": "boolean" }, "updated": { "type": "boolean" } } }, "type": { "type": "string" } } } } }, "wucher_internal_transport_http_dto.ContactStatusUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "type": "object", "properties": { "is_active": { "type": "boolean" } } }, "type": { "type": "string" } } }, "wucher_internal_transport_http_dto.ContactStatusUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactStatusUpdateData" } } }, "wucher_internal_transport_http_dto.ContactUpdateAttributes": { "type": "object", "properties": { "air_rescuer": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AirRescuerProfileUpdateAttributes" }, "doctor": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DoctorProfileUpdateAttributes" }, "email": { "type": "string" }, "file_uuid": { "type": "string", "maxLength": 64 }, "first_name": { "type": "string", "maxLength": 100 }, "flight_assistant": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FlightAssistantProfileUpdateAttributes" }, "is_active": { "type": "boolean" }, "is_admin": { "type": "boolean" }, "last_name": { "type": "string", "maxLength": 100 }, "mobile_phone": { "type": "string", "maxLength": 32 }, "pilot": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PilotProfileUpdateAttributes" }, "role_id": { "type": "string", "example": "0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d1" }, "role_ids": { "type": "array", "items": { "type": "string" }, "example": [ "0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d1", "0195f6f8-0f8d-7e3e-b8f2-8abff9b5c1d2" ] }, "sortkey": { "type": "integer" }, "sso_email": { "type": "string" }, "staff": { "$ref": "#/definitions/wucher_internal_transport_http_dto.StaffProfileUpdateAttributes" }, "technician": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TechnicianProfileUpdateAttributes" }, "timezone": { "type": "string", "maxLength": 64 }, "username": { "type": "string", "maxLength": 100 } } }, "wucher_internal_transport_http_dto.ContactUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactUpdateAttributes" }, "type": { "type": "string", "example": "contact_update" } } }, "wucher_internal_transport_http_dto.ContactUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ContactUpdateData" } } }, "wucher_internal_transport_http_dto.DULAttributes": { "type": "object", "properties": { "base": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULBaseRef" }, "created_at": { "type": "string" }, "created_by": { "type": "string" }, "date": { "type": "string", "example": "2026-05-25" }, "images": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULImage" } }, "info": { "type": "string" }, "name": { "type": "string" }, "no": { "type": "integer" }, "updated_at": { "type": "string" }, "updated_by": { "type": "string" } } }, "wucher_internal_transport_http_dto.DULBase": { "type": "object", "properties": { "category": { "type": "string", "example": "hems" }, "id": { "type": "string", "example": "0197f3b2-c4d8-4b12-a1f9-c1de23456789" }, "name": { "type": "string", "example": "Halim Base" } } }, "wucher_internal_transport_http_dto.DULBaseRef": { "type": "object", "properties": { "category": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" } } }, "wucher_internal_transport_http_dto.DULCreateAttributes": { "type": "object", "required": [ "base_id", "date", "name" ], "properties": { "base_id": { "type": "string", "example": "019e3ec1-94f6-7b6b-9cc5-1b5d05f46d74" }, "date": { "type": "string", "example": "2026-05-25" }, "file_uuid": { "type": "array", "items": { "type": "string" } }, "info": { "type": "string" }, "name": { "type": "string", "maxLength": 128 } } }, "wucher_internal_transport_http_dto.DULCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULCreateAttributes" }, "type": { "type": "string", "enum": [ "dul_create", "dul" ] } } }, "wucher_internal_transport_http_dto.DULCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULCreateData" } } }, "wucher_internal_transport_http_dto.DULDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULGroup" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "records_filtered": { "type": "integer", "example": 120 }, "records_total": { "type": "integer", "example": 120 }, "total": { "type": "integer", "example": 120 }, "total_bases": { "type": "integer", "example": 8 } } } } }, "wucher_internal_transport_http_dto.DULDeleteResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "deleted": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "dul_delete" } } } } }, "wucher_internal_transport_http_dto.DULGroup": { "type": "object", "properties": { "base": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULBaseRef" }, "duls": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULResource" } } } }, "wucher_internal_transport_http_dto.DULImage": { "type": "object", "properties": { "download_url": { "type": "string" }, "original_size_bytes": { "type": "integer" }, "thumbnail_download_url": { "type": "string" }, "uuid": { "type": "string" } } }, "wucher_internal_transport_http_dto.DULListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULGroup" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 }, "total_bases": { "type": "integer", "example": 8 } } } } }, "wucher_internal_transport_http_dto.DULResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULAttributes" }, "id": { "type": "string" }, "type": { "type": "string" } } }, "wucher_internal_transport_http_dto.DULResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULResource" } } }, "wucher_internal_transport_http_dto.DULUpdateAttributes": { "type": "object", "properties": { "base_id": { "type": "string" }, "date": { "type": "string", "example": "2026-05-25" }, "file_uuid": { "type": "array", "items": { "type": "string" } }, "info": { "type": "string" }, "name": { "type": "string" } } }, "wucher_internal_transport_http_dto.DULUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULUpdateAttributes" }, "type": { "type": "string", "enum": [ "dul_update", "dul" ] } } }, "wucher_internal_transport_http_dto.DULUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULUpdateData" } } }, "wucher_internal_transport_http_dto.DoctorProfileAttributes": { "type": "object", "properties": { "is_chief_physician": { "type": "boolean" }, "location": { "type": "string", "maxLength": 255 }, "note": { "type": "string" }, "postcode": { "type": "string", "maxLength": 32 }, "short_name": { "type": "string", "maxLength": 120 }, "specialization": { "type": "string", "maxLength": 120 }, "street_line": { "type": "string", "maxLength": 255 }, "sub_specialization": { "type": "string", "maxLength": 120 } } }, "wucher_internal_transport_http_dto.DoctorProfileUpdateAttributes": { "type": "object", "properties": { "is_chief_physician": { "type": "boolean" }, "location": { "type": "string", "maxLength": 255 }, "note": { "type": "string" }, "postcode": { "type": "string", "maxLength": 32 }, "short_name": { "type": "string", "maxLength": 120 }, "specialization": { "type": "string", "maxLength": 120 }, "street_line": { "type": "string", "maxLength": 255 }, "sub_specialization": { "type": "string", "maxLength": 120 } } }, "wucher_internal_transport_http_dto.EmailOTPSendAttributes": { "type": "object", "required": [ "challenge_token" ], "properties": { "challenge_token": { "type": "string", "example": "kP8k2..." } } }, "wucher_internal_transport_http_dto.EmailOTPSendData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.EmailOTPSendAttributes" }, "type": { "type": "string", "example": "auth_email_otp_send" } } }, "wucher_internal_transport_http_dto.EmailOTPSendRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.EmailOTPSendData" } } }, "wucher_internal_transport_http_dto.EmailOTPSendResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "sent": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "auth_email_otp_send" } } } } }, "wucher_internal_transport_http_dto.EmailOTPVerifyAttributes": { "type": "object", "required": [ "challenge_token", "code" ], "properties": { "challenge_token": { "type": "string", "example": "kP8k2..." }, "code": { "type": "string", "example": "123456" } } }, "wucher_internal_transport_http_dto.EmailOTPVerifyData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.EmailOTPVerifyAttributes" }, "type": { "type": "string", "example": "auth_email_otp_verify" } } }, "wucher_internal_transport_http_dto.EmailOTPVerifyRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.EmailOTPVerifyData" } } }, "wucher_internal_transport_http_dto.EmailOTPVerifyResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "requires_totp_setup": { "type": "boolean", "example": true }, "verified": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "auth_email_otp_verify" } } } } }, "wucher_internal_transport_http_dto.ErrorResponse": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string", "example": "email is required" }, "source": { "type": "object", "properties": { "pointer": { "type": "string", "example": "/data/attributes/email" } } }, "status": { "type": "string", "example": "422" }, "title": { "type": "string", "example": "Validation error" } } } } } }, "wucher_internal_transport_http_dto.ExchangeAttributes": { "type": "object", "required": [ "access_token", "id_token" ], "properties": { "access_token": { "type": "string", "example": "eyJ0eXAiOiJKV1Qi..." }, "id_token": { "type": "string", "example": "eyJ0eXAiOiJKV1Qi..." }, "id_token_claims": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ExchangeIDTokenClaims" } } }, "wucher_internal_transport_http_dto.ExchangeData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ExchangeAttributes" }, "type": { "type": "string", "example": "auth_exchange" } } }, "wucher_internal_transport_http_dto.ExchangeIDTokenClaims": { "type": "object", "properties": { "aud": { "type": "string", "example": "12345678-1234-1234-1234-123456789012" }, "email": { "type": "string", "example": "andrio@mybit-innovation.com" }, "exp": { "type": "integer", "example": 1715603600 }, "iat": { "type": "integer", "example": 1715600000 }, "iss": { "type": "string", "example": "https://login.microsoftonline.com/abc-tenant-id/v2.0" }, "name": { "type": "string", "example": "Andrio Effendi" }, "nbf": { "type": "integer", "example": 1715600000 }, "oid": { "type": "string", "example": "00000000-0000-0000-1234-567890abcdef" }, "preferred_username": { "type": "string", "example": "andrio@mybit-innovation.com" }, "sub": { "type": "string", "example": "AbCdEfGhIjKlMnOpQrStUvWxYz" }, "tid": { "type": "string", "example": "abc-tenant-id" }, "ver": { "type": "string", "example": "2.0" } } }, "wucher_internal_transport_http_dto.ExchangeRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ExchangeData" } } }, "wucher_internal_transport_http_dto.FMReportAirframeValues": { "type": "object", "properties": { "cycles": { "type": "number", "example": 320 }, "hours": { "type": "number", "example": 1523.5 } } }, "wucher_internal_transport_http_dto.FMReportAttachmentItem": { "type": "object", "properties": { "download_url": { "type": "string" }, "file_id": { "type": "string" }, "id": { "type": "string" } } }, "wucher_internal_transport_http_dto.FMReportAttachments": { "type": "object", "properties": { "additional_fm_report": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportAttachmentItem" } }, "briefing": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportAttachmentItem" } }, "ofp": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportAttachmentItem" } }, "weight_balance": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportAttachmentItem" } } } }, "wucher_internal_transport_http_dto.FMReportAttributes": { "type": "object", "properties": { "after_flight_inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto.AfterFlightInspectionResource" }, "completed_at": { "type": "string", "example": "2026-04-20T10:15:00Z" }, "completed_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "created_at": { "type": "string", "example": "2026-04-20T08:00:00Z" }, "engine1_gpc_n1": { "type": "string", "example": "GPC/N1 63.2" }, "engine1_ptc_n2": { "type": "string", "example": "PTC/N2 61.8" }, "engine2_gpc_n1": { "type": "string", "example": "GPC/N1 62.9" }, "engine2_ptc_n2": { "type": "string", "example": "PTC/N2 61.5" }, "fleet_status": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResource" }, "flight": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightResource" }, "flight_id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "flight_inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FlightInspectionResource" }, "flight_inspection_id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "fm_report_attachments": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportAttachments" }, "helicopter_identifier": { "type": "string", "example": "OE-TEST" }, "helicopter_usage": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageResource" }, "id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "missions": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionResource" } }, "pilot_name": { "type": "string", "example": "John Doe" }, "report_code": { "type": "string", "example": "EC-135-1" }, "takeover_files": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverFileResource" } }, "takeover_id": { "type": "string", "example": "019e8713-aa19-7fb7-a510-a0332dc69697" }, "updated_at": { "type": "string", "example": "2026-04-20T08:00:00Z" }, "usage_breakdown": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportUsageBreakdown" } } }, "wucher_internal_transport_http_dto.FMReportCountersValues": { "type": "object", "properties": { "flight_reports": { "type": "number", "example": 80 }, "hook_releases": { "type": "number", "example": 10 }, "landings": { "type": "number", "example": 120 }, "rotor_brake_cycles": { "type": "number", "example": 8 } } }, "wucher_internal_transport_http_dto.FMReportEngineValues": { "type": "object", "properties": { "ccc": { "type": "number", "example": 44 }, "gpc_ng_n1": { "type": "number", "example": 63.2 }, "hours": { "type": "number", "example": 1523.5 }, "ptc_nf_n2": { "type": "number", "example": 61.8 } } }, "wucher_internal_transport_http_dto.FMReportListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 1 } } } } }, "wucher_internal_transport_http_dto.FMReportResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportAttributes" }, "id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "type": { "type": "string", "example": "fm_report" } } }, "wucher_internal_transport_http_dto.FMReportResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportResource" } } }, "wucher_internal_transport_http_dto.FMReportUsageBreakdown": { "type": "object", "properties": { "prev": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportUsageSnapshot" }, "today": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportUsageSnapshot" }, "total": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportUsageSnapshot" } } }, "wucher_internal_transport_http_dto.FMReportUsageSnapshot": { "type": "object", "properties": { "airframe": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportAirframeValues" }, "counters": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportCountersValues" }, "engine_1": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportEngineValues" }, "engine_2": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FMReportEngineValues" } } }, "wucher_internal_transport_http_dto.FacilityAttributes": { "type": "object", "properties": { "category": { "type": "string", "example": "heslo-rope-label" }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "electric": { "type": "string", "example": "available" }, "is_active": { "type": "boolean", "example": true }, "length": { "type": "string", "example": "10m" }, "name": { "type": "string", "example": "Fuel Truck Rope Label" }, "note": { "type": "string", "example": "Dry lease fuel truck" }, "sortkey": { "type": "integer", "example": 1 }, "type": { "type": "string", "example": "Sling" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "weight": { "type": "string", "example": "10kg" } } }, "wucher_internal_transport_http_dto.FacilityCreateAttributes": { "type": "object", "required": [ "category", "name" ], "properties": { "category": { "type": "string", "example": "heslo-rope-label" }, "electric": { "type": "string", "example": "available" }, "is_active": { "type": "boolean", "example": true }, "length": { "type": "string", "example": "10m" }, "name": { "type": "string", "example": "Fuel Truck Rope Label" }, "note": { "type": "string", "example": "Dry lease fuel truck" }, "sortkey": { "type": "integer", "example": 1 }, "type": { "type": "string", "example": "Sling" }, "weight": { "type": "string", "example": "10kg" } } }, "wucher_internal_transport_http_dto.FacilityCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityCreateAttributes" }, "type": { "type": "string", "enum": [ "facility_create", "facility" ], "example": "facility_create" } } }, "wucher_internal_transport_http_dto.FacilityCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityCreateData" } } }, "wucher_internal_transport_http_dto.FacilityDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.FacilityDeleteResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "deleted": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "facility_delete" } } } } }, "wucher_internal_transport_http_dto.FacilityListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.FacilityResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "facility" } } }, "wucher_internal_transport_http_dto.FacilityResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityResource" } } }, "wucher_internal_transport_http_dto.FacilityUpdateAttributes": { "type": "object", "properties": { "category": { "type": "string", "example": "heslo-rope-label" }, "electric": { "type": "string", "example": "available" }, "is_active": { "type": "boolean", "example": true }, "length": { "type": "string", "example": "10m" }, "name": { "type": "string", "example": "Fuel Truck Rope Label" }, "note": { "type": "string", "example": "Dry lease fuel truck" }, "sortkey": { "type": "integer", "example": 1 }, "type": { "type": "string", "example": "Sling" }, "weight": { "type": "string", "example": "10kg" } } }, "wucher_internal_transport_http_dto.FacilityUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "facility_update", "facility" ], "example": "facility_update" } } }, "wucher_internal_transport_http_dto.FacilityUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FacilityUpdateData" } } }, "wucher_internal_transport_http_dto.FederalStateAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "is_active": { "type": "boolean", "example": true }, "land_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "land_iso_code": { "type": "string", "example": "DE" }, "land_name": { "type": "string", "example": "Germany" }, "name": { "type": "string", "example": "Bayern" }, "note": { "type": "string", "example": "Central region" }, "sortkey": { "type": "integer", "example": 1 }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.FederalStateCreateAttributes": { "type": "object", "required": [ "land_id", "name" ], "properties": { "is_active": { "type": "boolean", "example": true }, "land_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "Bayern" }, "note": { "type": "string", "example": "Central region" }, "sortkey": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto.FederalStateCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateCreateAttributes" }, "type": { "type": "string", "enum": [ "federal_state_create", "federal_state" ], "example": "federal_state_create" } } }, "wucher_internal_transport_http_dto.FederalStateCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateCreateData" } } }, "wucher_internal_transport_http_dto.FederalStateDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.FederalStateDeleteResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "deleted": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "federal_state_delete" } } } } }, "wucher_internal_transport_http_dto.FederalStateListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.FederalStateResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "federal_state" } } }, "wucher_internal_transport_http_dto.FederalStateResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateResource" } } }, "wucher_internal_transport_http_dto.FederalStateUpdateAttributes": { "type": "object", "properties": { "is_active": { "type": "boolean", "example": true }, "land_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "Bayern" }, "note": { "type": "string", "example": "Central region" }, "sortkey": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto.FederalStateUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "federal_state_update", "federal_state" ], "example": "federal_state_update" } } }, "wucher_internal_transport_http_dto.FederalStateUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FederalStateUpdateData" } } }, "wucher_internal_transport_http_dto.FlightAssistantProfileAttributes": { "type": "object", "properties": { "location": { "type": "string", "maxLength": 255 }, "note": { "type": "string" }, "postcode": { "type": "string", "maxLength": 32 }, "short_name": { "type": "string", "maxLength": 120 }, "street_line": { "type": "string", "maxLength": 255 } } }, "wucher_internal_transport_http_dto.FlightAssistantProfileUpdateAttributes": { "type": "object", "properties": { "location": { "type": "string", "maxLength": 255 }, "note": { "type": "string" }, "postcode": { "type": "string", "maxLength": 32 }, "short_name": { "type": "string", "maxLength": 120 }, "street_line": { "type": "string", "maxLength": 255 } } }, "wucher_internal_transport_http_dto.FlightInspectionAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-04-09T05:00:00Z" }, "created_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "inspection_date": { "type": "string", "example": "2026-04-09" }, "status": { "type": "string", "example": "Draft" }, "updated_at": { "type": "string", "example": "2026-04-09T05:00:00Z" }, "updated_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" } } }, "wucher_internal_transport_http_dto.FlightInspectionCreateAttributes": { "type": "object", "required": [ "inspection_date" ], "properties": { "inspection_date": { "type": "string", "example": "2026-04-09" } } }, "wucher_internal_transport_http_dto.FlightInspectionCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FlightInspectionCreateAttributes" }, "type": { "type": "string", "enum": [ "flight_inspection_create", "flight_inspection" ] } } }, "wucher_internal_transport_http_dto.FlightInspectionCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FlightInspectionCreateData" } } }, "wucher_internal_transport_http_dto.FlightInspectionListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FlightInspectionResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 1 } } } } }, "wucher_internal_transport_http_dto.FlightInspectionResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FlightInspectionAttributes" }, "id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "type": { "type": "string", "example": "flight_inspection" } } }, "wucher_internal_transport_http_dto.FlightInspectionResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FlightInspectionResource" } } }, "wucher_internal_transport_http_dto.FlightInspectionUpdateAttributes": { "type": "object", "properties": { "inspection_date": { "type": "string", "example": "2026-04-09" }, "status": { "type": "string", "example": "InProgress" } } }, "wucher_internal_transport_http_dto.FlightInspectionUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FlightInspectionUpdateAttributes" }, "id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "type": { "type": "string", "enum": [ "flight_inspection_update", "flight_inspection" ] } } }, "wucher_internal_transport_http_dto.FlightInspectionUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.FlightInspectionUpdateData" } } }, "wucher_internal_transport_http_dto.ForcesPresentAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "is_active": { "type": "boolean", "example": true }, "name": { "type": "string", "example": "Firefighter Team A" }, "note": { "type": "string", "example": "On-site responders" }, "sortkey": { "type": "integer", "example": 1 }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.ForcesPresentCreateAttributes": { "type": "object", "required": [ "name" ], "properties": { "is_active": { "type": "boolean", "example": true }, "name": { "type": "string", "example": "Firefighter Team A" }, "note": { "type": "string", "example": "On-site responders" }, "sortkey": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto.ForcesPresentCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentCreateAttributes" }, "type": { "type": "string", "enum": [ "forces_present_create", "forces_present" ], "example": "forces_present_create" } } }, "wucher_internal_transport_http_dto.ForcesPresentCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentCreateData" } } }, "wucher_internal_transport_http_dto.ForcesPresentDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.ForcesPresentListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.ForcesPresentResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "forces_present" } } }, "wucher_internal_transport_http_dto.ForcesPresentResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentResource" } } }, "wucher_internal_transport_http_dto.ForcesPresentUpdateAttributes": { "type": "object", "properties": { "is_active": { "type": "boolean", "example": true }, "name": { "type": "string", "example": "Firefighter Team A" }, "note": { "type": "string", "example": "On-site responders" }, "sortkey": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto.ForcesPresentUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "forces_present_update", "forces_present" ], "example": "forces_present_update" } } }, "wucher_internal_transport_http_dto.ForcesPresentUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForcesPresentUpdateData" } } }, "wucher_internal_transport_http_dto.ForgotPasswordAttributes": { "type": "object", "required": [ "email" ], "properties": { "email": { "type": "string", "example": "user@example.com" } } }, "wucher_internal_transport_http_dto.ForgotPasswordData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForgotPasswordAttributes" }, "type": { "type": "string", "example": "auth_forgot_password" } } }, "wucher_internal_transport_http_dto.ForgotPasswordRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForgotPasswordData" } } }, "wucher_internal_transport_http_dto.ForgotSecurityPINAttributes": { "type": "object", "required": [ "email" ], "properties": { "email": { "type": "string", "example": "user@example.com" } } }, "wucher_internal_transport_http_dto.ForgotSecurityPINData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForgotSecurityPINAttributes" }, "type": { "type": "string", "example": "auth_forgot_pin" } } }, "wucher_internal_transport_http_dto.ForgotSecurityPINRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ForgotSecurityPINData" } } }, "wucher_internal_transport_http_dto.GenericDeleteAttributes": { "type": "object", "properties": { "deleted": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto.GenericDeleteResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteResponseData" } } }, "wucher_internal_transport_http_dto.GenericDeleteResponseData": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.GenericDeleteAttributes" }, "type": { "type": "string", "example": "delete_result" } } }, "wucher_internal_transport_http_dto.HEMSOperationAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "date": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "hems_operation_category": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryRef" }, "hems_operation_category_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "mission": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationMissionRef" }, "mission_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "operational_data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationOperationalDataRef" }, "operational_data_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.HEMSOperationCategoryAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "Firefighting" }, "type": { "type": "string", "example": "first" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.HEMSOperationCategoryCreateAttributes": { "type": "object", "required": [ "name", "type" ], "properties": { "name": { "type": "string", "example": "Firefighting" }, "type": { "type": "string", "enum": [ "first", "secondary", "misuse" ], "example": "first" } } }, "wucher_internal_transport_http_dto.HEMSOperationCategoryCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryCreateAttributes" }, "type": { "type": "string", "enum": [ "hems_operation_category_create", "hems_operation_category" ], "example": "hems_operation_category_create" } } }, "wucher_internal_transport_http_dto.HEMSOperationCategoryCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryCreateData" } } }, "wucher_internal_transport_http_dto.HEMSOperationCategoryDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.HEMSOperationCategoryListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.HEMSOperationCategoryRef": { "type": "object", "properties": { "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "Firefighting" }, "type": { "type": "string", "example": "first" } } }, "wucher_internal_transport_http_dto.HEMSOperationCategoryResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "hems_operation_category" } } }, "wucher_internal_transport_http_dto.HEMSOperationCategoryResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryResource" } } }, "wucher_internal_transport_http_dto.HEMSOperationCategoryUpdateAttributes": { "type": "object", "properties": { "name": { "type": "string", "example": "Firefighting" }, "type": { "type": "string", "enum": [ "first", "secondary", "misuse" ], "example": "first" } } }, "wucher_internal_transport_http_dto.HEMSOperationCategoryUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryUpdateAttributes" }, "type": { "type": "string", "enum": [ "hems_operation_category_update", "hems_operation_category" ], "example": "hems_operation_category_update" } } }, "wucher_internal_transport_http_dto.HEMSOperationCategoryUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCategoryUpdateData" } } }, "wucher_internal_transport_http_dto.HEMSOperationCreateAttributes": { "type": "object", "required": [ "date" ], "properties": { "date": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "hems_operation_category_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "mission_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "operational_data_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.HEMSOperationCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCreateAttributes" }, "type": { "type": "string", "enum": [ "hems_operation_create", "hems_operation" ], "example": "hems_operation_create" } } }, "wucher_internal_transport_http_dto.HEMSOperationCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationCreateData" } } }, "wucher_internal_transport_http_dto.HEMSOperationDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.HEMSOperationListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.HEMSOperationMissionRef": { "type": "object", "properties": { "flight_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "HEMS" } } }, "wucher_internal_transport_http_dto.HEMSOperationOperationalDataRef": { "type": "object", "properties": { "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.HEMSOperationResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "hems_operation" } } }, "wucher_internal_transport_http_dto.HEMSOperationResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationResource" } } }, "wucher_internal_transport_http_dto.HEMSOperationUpdateAttributes": { "type": "object", "properties": { "date": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "hems_operation_category_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "mission_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "operational_data_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.HEMSOperationUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationUpdateAttributes" }, "type": { "type": "string", "enum": [ "hems_operation_update", "hems_operation" ], "example": "hems_operation_update" } } }, "wucher_internal_transport_http_dto.HEMSOperationUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationUpdateData" } } }, "wucher_internal_transport_http_dto.HEMSOperationalDataAttributes": { "type": "object", "properties": { "additional_info": { "type": "string", "example": "Additional information about the operational data" }, "altitude": { "type": "number", "example": 5.2 }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "darkness": { "type": "boolean" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "false_information": { "type": "boolean" }, "files": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataFileAttributes" } }, "fog": { "type": "boolean" }, "force_present_ids": { "type": "array", "items": { "type": "string" }, "example": [ "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" ] }, "instrument_flight": { "type": "boolean" }, "land_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "landing_site_search": { "type": "boolean" }, "location": { "type": "string", "example": "123 Main St, Anytown, USA" }, "mountain_use": { "type": "boolean" }, "nfo_search": { "type": "boolean" }, "night_flight": { "type": "boolean" }, "notes": { "type": "string", "example": "Notes about the operational data" }, "postcode": { "type": "string", "example": "12345" }, "precipitation": { "type": "boolean" }, "rope_recovery": { "type": "boolean" }, "state_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "temperature": { "type": "number", "example": 23.5 }, "terrain_index": { "type": "string", "example": "Only helicopter landing" }, "time": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "vocation_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "wind": { "type": "boolean" } } }, "wucher_internal_transport_http_dto.HEMSOperationalDataCreateAttributes": { "type": "object", "required": [ "location", "time" ], "properties": { "additional_info": { "type": "string", "example": "Additional information about the operational data" }, "altitude": { "type": "number", "example": 5.2 }, "darkness": { "type": "boolean" }, "false_information": { "type": "boolean" }, "file_attachment_ids": { "type": "array", "items": { "type": "string" }, "example": [ "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" ] }, "fog": { "type": "boolean" }, "force_present_ids": { "type": "array", "items": { "type": "string" }, "example": [ "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" ] }, "instrument_flight": { "type": "boolean" }, "land_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "landing_site_search": { "type": "boolean" }, "location": { "type": "string", "example": "123 Main St, Anytown, USA" }, "mountain_use": { "type": "boolean" }, "nfo_search": { "type": "boolean" }, "night_flight": { "type": "boolean" }, "notes": { "type": "string", "example": "Notes about the operational data" }, "postcode": { "type": "string", "example": "12345" }, "precipitation": { "type": "boolean" }, "rope_recovery": { "type": "boolean" }, "state_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "temperature": { "type": "number", "example": 23.5 }, "terrain_index": { "type": "string", "example": "Only helicopter landing" }, "time": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "vocation_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "wind": { "type": "boolean" } } }, "wucher_internal_transport_http_dto.HEMSOperationalDataCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataCreateAttributes" }, "type": { "type": "string", "enum": [ "hems_operational_data_create", "hems_operational_data" ], "example": "hems_operational_data_create" } } }, "wucher_internal_transport_http_dto.HEMSOperationalDataCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataCreateData" } } }, "wucher_internal_transport_http_dto.HEMSOperationalDataDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.HEMSOperationalDataFileAttributes": { "type": "object", "properties": { "file_attachment_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.HEMSOperationalDataListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.HEMSOperationalDataResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "hems_operational_data" } } }, "wucher_internal_transport_http_dto.HEMSOperationalDataResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataResource" } } }, "wucher_internal_transport_http_dto.HEMSOperationalDataUpdateAttributes": { "type": "object", "properties": { "additional_info": { "type": "string", "example": "Additional information about the operational data" }, "altitude": { "type": "number", "example": 5.2 }, "darkness": { "type": "boolean" }, "false_information": { "type": "boolean" }, "file_attachment_ids": { "type": "array", "items": { "type": "string" } }, "fog": { "type": "boolean" }, "force_present_ids": { "type": "array", "items": { "type": "string" } }, "instrument_flight": { "type": "boolean" }, "land_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "landing_site_search": { "type": "boolean" }, "location": { "type": "string", "example": "123 Main St, Anytown, USA" }, "mountain_use": { "type": "boolean" }, "nfo_search": { "type": "boolean" }, "night_flight": { "type": "boolean" }, "notes": { "type": "string", "example": "Notes about the operational data" }, "postcode": { "type": "string", "example": "12345" }, "precipitation": { "type": "boolean" }, "rope_recovery": { "type": "boolean" }, "state_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "temperature": { "type": "number", "example": 23.5 }, "terrain_index": { "type": "string", "example": "Only helicopter landing" }, "time": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "vocation_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "wind": { "type": "boolean" } } }, "wucher_internal_transport_http_dto.HEMSOperationalDataUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataUpdateAttributes" }, "type": { "type": "string", "enum": [ "hems_operational_data_update", "hems_operational_data" ], "example": "hems_operational_data_update" } } }, "wucher_internal_transport_http_dto.HEMSOperationalDataUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HEMSOperationalDataUpdateData" } } }, "wucher_internal_transport_http_dto.HealthInsuranceCompanyAttributes": { "type": "object", "properties": { "address": { "type": "string", "example": "Main Street 10" }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "email": { "type": "string", "example": "info@abc-insurance.local" }, "federal_state": { "type": "string", "example": "Bayern" }, "federal_state_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "is_active": { "type": "boolean", "example": true }, "land_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "land_iso_code": { "type": "string", "example": "DE" }, "land_name": { "type": "string", "example": "Germany" }, "mobile_number": { "type": "string", "example": "+4912345678" }, "name": { "type": "string", "example": "ABC Insurance" }, "note": { "type": "string", "example": "Preferred insurance provider" }, "sortkey": { "type": "integer", "example": 1 }, "state": { "type": "string", "example": "Berlin" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.HealthInsuranceCompanyCreateAttributes": { "type": "object", "required": [ "name" ], "properties": { "address": { "type": "string", "example": "Main Street 10" }, "email": { "type": "string", "example": "info@abc-insurance.local" }, "is_active": { "type": "boolean", "example": true }, "land_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "mobile_number": { "type": "string", "example": "+4912345678" }, "name": { "type": "string", "example": "ABC Insurance" }, "note": { "type": "string", "example": "Preferred insurance provider" }, "sortkey": { "type": "integer", "example": 1 }, "state": { "type": "string", "example": "Berlin" } } }, "wucher_internal_transport_http_dto.HealthInsuranceCompanyCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyCreateAttributes" }, "type": { "type": "string", "enum": [ "health_insurance_company_create", "health_insurance_company" ], "example": "health_insurance_company_create" } } }, "wucher_internal_transport_http_dto.HealthInsuranceCompanyCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyCreateData" } } }, "wucher_internal_transport_http_dto.HealthInsuranceCompanyDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.HealthInsuranceCompanyListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.HealthInsuranceCompanyResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "health_insurance_company" } } }, "wucher_internal_transport_http_dto.HealthInsuranceCompanyResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyResource" } } }, "wucher_internal_transport_http_dto.HealthInsuranceCompanyUpdateAttributes": { "type": "object", "properties": { "address": { "type": "string", "example": "Main Street 10" }, "email": { "type": "string", "example": "info@abc-insurance.local" }, "is_active": { "type": "boolean", "example": true }, "land_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "mobile_number": { "type": "string", "example": "+4912345678" }, "name": { "type": "string", "example": "ABC Insurance" }, "note": { "type": "string", "example": "Preferred insurance provider" }, "sortkey": { "type": "integer", "example": 1 }, "state": { "type": "string", "example": "Berlin" } } }, "wucher_internal_transport_http_dto.HealthInsuranceCompanyUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "health_insurance_company_update", "health_insurance_company" ], "example": "health_insurance_company_update" } } }, "wucher_internal_transport_http_dto.HealthInsuranceCompanyUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HealthInsuranceCompanyUpdateData" } } }, "wucher_internal_transport_http_dto.HelicopterUsageAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "helicopter_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "total_airframe_cycles": { "type": "number", "example": 320 }, "total_airframe_hours": { "type": "number", "example": 1523.5 }, "total_engine_1_ccc": { "type": "number", "example": 44 }, "total_engine_1_gpc_ng_n1": { "type": "number", "example": 98.7 }, "total_engine_1_hours": { "type": "number", "example": 1523.5 }, "total_engine_1_ptc_nf_n2": { "type": "number", "example": 97.2 }, "total_engine_2_ccc": { "type": "number", "example": 44 }, "total_engine_2_gpc_ng_n1": { "type": "number", "example": 98.7 }, "total_engine_2_hours": { "type": "number", "example": 1523.5 }, "total_engine_2_ptc_nf_n2": { "type": "number", "example": 97.2 }, "total_flight_report": { "type": "number", "example": 80 }, "total_hook_release": { "type": "number", "example": 10 }, "total_landing": { "type": "number", "example": 120 }, "total_rotor_brake_cycle": { "type": "number", "example": 8 }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.HelicopterUsageCreateAttributes": { "type": "object", "required": [ "helicopter_id" ], "properties": { "helicopter_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "total_airframe_cycles": { "type": "number", "example": 320 }, "total_airframe_hours": { "type": "number", "example": 1523.5 }, "total_engine_1_ccc": { "type": "number", "example": 44 }, "total_engine_1_gpc_ng_n1": { "type": "number", "example": 98.7 }, "total_engine_1_hours": { "type": "number", "example": 1523.5 }, "total_engine_1_ptc_nf_n2": { "type": "number", "example": 97.2 }, "total_engine_2_ccc": { "type": "number", "example": 44 }, "total_engine_2_gpc_ng_n1": { "type": "number", "example": 98.7 }, "total_engine_2_hours": { "type": "number", "example": 1523.5 }, "total_engine_2_ptc_nf_n2": { "type": "number", "example": 97.2 }, "total_flight_report": { "type": "number", "example": 80 }, "total_hook_release": { "type": "number", "example": 10 }, "total_landing": { "type": "number", "example": 120 }, "total_rotor_brake_cycle": { "type": "number", "example": 8 } } }, "wucher_internal_transport_http_dto.HelicopterUsageCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageCreateAttributes" }, "type": { "type": "string", "enum": [ "helicopter_usage_create", "helicopter_usage" ], "example": "helicopter_usage_create" } } }, "wucher_internal_transport_http_dto.HelicopterUsageCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageCreateData" } } }, "wucher_internal_transport_http_dto.HelicopterUsageListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.HelicopterUsageResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "helicopter_usage" } } }, "wucher_internal_transport_http_dto.HelicopterUsageResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageResource" } } }, "wucher_internal_transport_http_dto.HelicopterUsageUpdateAttributes": { "type": "object", "properties": { "helicopter_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "total_airframe_cycles": { "type": "number", "example": 320 }, "total_airframe_hours": { "type": "number", "example": 1523.5 }, "total_engine_1_ccc": { "type": "number", "example": 44 }, "total_engine_1_gpc_ng_n1": { "type": "number", "example": 98.7 }, "total_engine_1_hours": { "type": "number", "example": 1523.5 }, "total_engine_1_ptc_nf_n2": { "type": "number", "example": 97.2 }, "total_engine_2_ccc": { "type": "number", "example": 44 }, "total_engine_2_gpc_ng_n1": { "type": "number", "example": 98.7 }, "total_engine_2_hours": { "type": "number", "example": 1523.5 }, "total_engine_2_ptc_nf_n2": { "type": "number", "example": 97.2 }, "total_flight_report": { "type": "number", "example": 80 }, "total_hook_release": { "type": "number", "example": 10 }, "total_landing": { "type": "number", "example": 120 }, "total_rotor_brake_cycle": { "type": "number", "example": 8 } } }, "wucher_internal_transport_http_dto.HelicopterUsageUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "helicopter_usage_update", "helicopter_usage" ], "example": "helicopter_usage_update" } } }, "wucher_internal_transport_http_dto.HelicopterUsageUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HelicopterUsageUpdateData" } } }, "wucher_internal_transport_http_dto.HospitalAttributes": { "type": "object", "properties": { "address": { "type": "string", "example": "Jl. Merdeka No. 10" }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "email": { "type": "string", "example": "info@hospital.local" }, "is_active": { "type": "boolean", "example": true }, "landline_number": { "type": "string", "example": "0211234567" }, "mobile_number": { "type": "string", "example": "08123456789" }, "name": { "type": "string", "example": "RSUD Kota" }, "note": { "type": "string", "example": "Nearest trauma center" }, "sortkey": { "type": "integer", "example": 1 }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.HospitalCreateAttributes": { "type": "object", "required": [ "name" ], "properties": { "address": { "type": "string", "example": "Jl. Merdeka No. 10" }, "email": { "type": "string", "example": "info@hospital.local" }, "is_active": { "type": "boolean", "example": true }, "landline_number": { "type": "string", "example": "0211234567" }, "mobile_number": { "type": "string", "example": "08123456789" }, "name": { "type": "string", "example": "RSUD Kota" }, "note": { "type": "string", "example": "Nearest trauma center" }, "sortkey": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto.HospitalCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalCreateAttributes" }, "type": { "type": "string", "enum": [ "hospital_create", "hospital" ], "example": "hospital_create" } } }, "wucher_internal_transport_http_dto.HospitalCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalCreateData" } } }, "wucher_internal_transport_http_dto.HospitalDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.HospitalListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.HospitalResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "hospital" } } }, "wucher_internal_transport_http_dto.HospitalResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalResource" } } }, "wucher_internal_transport_http_dto.HospitalUpdateAttributes": { "type": "object", "properties": { "address": { "type": "string", "example": "Jl. Merdeka No. 10" }, "email": { "type": "string", "example": "info@hospital.local" }, "is_active": { "type": "boolean", "example": true }, "landline_number": { "type": "string", "example": "0211234567" }, "mobile_number": { "type": "string", "example": "08123456789" }, "name": { "type": "string", "example": "RSUD Kota" }, "note": { "type": "string", "example": "Nearest trauma center" }, "sortkey": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto.HospitalUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "hospital_update", "hospital" ], "example": "hospital_update" } } }, "wucher_internal_transport_http_dto.HospitalUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.HospitalUpdateData" } } }, "wucher_internal_transport_http_dto.ICAOAttributes": { "type": "object", "properties": { "address": { "type": "string", "example": "Muehlenstrasse 1" }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "email": { "type": "string", "example": "ops@example.local" }, "federal_state": { "type": "string", "example": "Bayern" }, "federal_state_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "icao_code": { "type": "string", "example": "EDDB" }, "is_active": { "type": "boolean", "example": true }, "land_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "land_iso_code": { "type": "string", "example": "DE" }, "land_name": { "type": "string", "example": "Germany" }, "landline_number": { "type": "string", "example": "030123456" }, "mobile_number": { "type": "string", "example": "0170123456" }, "name": { "type": "string", "example": "Berlin Base" }, "note": { "type": "string", "example": "Night operations supported" }, "sortkey": { "type": "integer", "example": 1 }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.ICAOCreateAttributes": { "type": "object", "required": [ "icao_code" ], "properties": { "address": { "type": "string", "example": "Muehlenstrasse 1" }, "email": { "type": "string", "example": "ops@example.local" }, "federal_state_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "icao_code": { "type": "string", "example": "EDDB" }, "is_active": { "type": "boolean", "example": true }, "land_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "landline_number": { "type": "string", "example": "030123456" }, "mobile_number": { "type": "string", "example": "0170123456" }, "name": { "type": "string", "example": "Berlin Base" }, "note": { "type": "string", "example": "Night operations supported" }, "sortkey": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto.ICAOCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOCreateAttributes" }, "type": { "type": "string", "enum": [ "icao_create", "icao" ], "example": "icao_create" } } }, "wucher_internal_transport_http_dto.ICAOCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOCreateData" } } }, "wucher_internal_transport_http_dto.ICAODataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.ICAOListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.ICAOResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "icao" } } }, "wucher_internal_transport_http_dto.ICAOResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOResource" } } }, "wucher_internal_transport_http_dto.ICAOUpdateAttributes": { "type": "object", "properties": { "address": { "type": "string", "example": "Muehlenstrasse 1" }, "email": { "type": "string", "example": "ops@example.local" }, "federal_state_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "icao_code": { "type": "string", "example": "EDDB" }, "is_active": { "type": "boolean", "example": true }, "land_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "landline_number": { "type": "string", "example": "030123456" }, "mobile_number": { "type": "string", "example": "0170123456" }, "name": { "type": "string", "example": "Berlin Base" }, "note": { "type": "string", "example": "Night operations supported" }, "sortkey": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto.ICAOUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "icao_update", "icao" ], "example": "icao_update" } } }, "wucher_internal_transport_http_dto.ICAOUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ICAOUpdateData" } } }, "wucher_internal_transport_http_dto.InsurancePatientDataAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "federal_state": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataFederalState" }, "federal_state_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "health_insurance_companies_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "health_insurance_company": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataHealthInsuranceCompany" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.InsurancePatientDataCreateAttributes": { "type": "object", "required": [ "federal_state_id", "health_insurance_companies_id" ], "properties": { "federal_state_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "health_insurance_companies_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.InsurancePatientDataCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataCreateAttributes" }, "type": { "type": "string", "enum": [ "insurance_patient_data_create", "insurance_patient_data" ], "example": "insurance_patient_data_create" } } }, "wucher_internal_transport_http_dto.InsurancePatientDataCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataCreateData" } } }, "wucher_internal_transport_http_dto.InsurancePatientDataDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.InsurancePatientDataFederalState": { "type": "object", "properties": { "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "Bayern" } } }, "wucher_internal_transport_http_dto.InsurancePatientDataHealthInsuranceCompany": { "type": "object", "properties": { "address": { "type": "string", "example": "Main Street 10" }, "email": { "type": "string", "example": "info@abc-insurance.local" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "mobile_number": { "type": "string", "example": "+4912345678" }, "name": { "type": "string", "example": "ABC Insurance" }, "state": { "type": "string", "example": "Berlin" } } }, "wucher_internal_transport_http_dto.InsurancePatientDataListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.InsurancePatientDataResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "insurance_patient_data" } } }, "wucher_internal_transport_http_dto.InsurancePatientDataResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataResource" } } }, "wucher_internal_transport_http_dto.InsurancePatientDataUpdateAttributes": { "type": "object", "properties": { "federal_state_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "health_insurance_companies_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.InsurancePatientDataUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "insurance_patient_data_update", "insurance_patient_data" ], "example": "insurance_patient_data_update" } } }, "wucher_internal_transport_http_dto.InsurancePatientDataUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataUpdateData" } } }, "wucher_internal_transport_http_dto.InviteAttributes": { "type": "object", "required": [ "email", "first_name", "last_name", "role_id", "username" ], "properties": { "email": { "type": "string", "example": "user@example.com" }, "first_name": { "type": "string", "example": "John" }, "last_name": { "type": "string", "example": "Doe" }, "mobile_phone": { "type": "string", "example": "+628123456789" }, "role_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "role_ids": { "type": "array", "items": { "type": "string" }, "example": [ "[\"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d\"", "\"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9e\"]" ] }, "username": { "type": "string", "maxLength": 100, "minLength": 3, "example": "john.doe" } } }, "wucher_internal_transport_http_dto.InviteData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InviteAttributes" }, "type": { "type": "string", "example": "auth_invite" } } }, "wucher_internal_transport_http_dto.InviteRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InviteData" } } }, "wucher_internal_transport_http_dto.LandAttributes": { "type": "object", "properties": { "bmd_export_id": { "type": "string", "example": "DE001" }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "federal_state_list": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandFederalStateDTO" } }, "federal_state_total": { "type": "integer", "example": 2 }, "is_active": { "type": "boolean", "example": true }, "iso_code": { "type": "string", "example": "DE" }, "name": { "type": "string", "example": "Germany" }, "note": { "type": "string", "example": "Central Europe" }, "sortkey": { "type": "integer", "example": 1 }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.LandCreateAttributes": { "type": "object", "required": [ "name" ], "properties": { "bmd_export_id": { "type": "string", "example": "DE001" }, "is_active": { "type": "boolean", "example": true }, "iso_code": { "type": "string", "example": "DE" }, "name": { "type": "string", "example": "Germany" }, "note": { "type": "string", "example": "Central Europe" }, "sortkey": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto.LandCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandCreateAttributes" }, "type": { "type": "string", "enum": [ "land_create", "land" ], "example": "land_create" } } }, "wucher_internal_transport_http_dto.LandCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandCreateData" } } }, "wucher_internal_transport_http_dto.LandDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.LandFederalStateDTO": { "type": "object", "properties": { "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "Bayern" } } }, "wucher_internal_transport_http_dto.LandListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.LandResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "land" } } }, "wucher_internal_transport_http_dto.LandResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandResource" } } }, "wucher_internal_transport_http_dto.LandUpdateAttributes": { "type": "object", "properties": { "bmd_export_id": { "type": "string", "example": "DE001" }, "is_active": { "type": "boolean", "example": true }, "iso_code": { "type": "string", "example": "DE" }, "name": { "type": "string", "example": "Germany" }, "note": { "type": "string", "example": "Central Europe" }, "sortkey": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto.LandUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "land_update", "land" ], "example": "land_update" } } }, "wucher_internal_transport_http_dto.LandUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LandUpdateData" } } }, "wucher_internal_transport_http_dto.LoginAttributes": { "type": "object", "required": [ "email", "password" ], "properties": { "email": { "type": "string", "example": "user@example.com" }, "password": { "type": "string", "example": "StrongP@ssw0rd" } } }, "wucher_internal_transport_http_dto.LoginData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LoginAttributes" }, "type": { "type": "string", "example": "auth_login" } } }, "wucher_internal_transport_http_dto.LoginEmailOTPRequiredResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "challenge_token": { "type": "string", "example": "kP8k2..." }, "linked_sso": { "type": "boolean", "example": false }, "max_resend_per_hour": { "type": "integer", "example": 5 }, "pin_configured": { "type": "boolean", "example": false }, "requires_email_otp": { "type": "boolean", "example": true }, "requires_totp_setup": { "type": "boolean", "example": true }, "resend_cooldown_seconds": { "type": "integer", "example": 60 }, "webauthn_configured": { "type": "boolean", "example": false } } }, "type": { "type": "string", "example": "auth_email_otp_required" } } } } }, "wucher_internal_transport_http_dto.LoginRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.LoginData" } } }, "wucher_internal_transport_http_dto.LoginTOTPRequiredResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "challenge_token": { "type": "string", "example": "kP8k2..." }, "email_otp_challenge_token": { "type": "string", "example": "qA9j1..." }, "email_otp_enabled": { "type": "boolean", "example": false }, "email_otp_max_resend_per_hour": { "type": "integer", "example": 5 }, "email_otp_resend_cooldown_seconds": { "type": "integer", "example": 60 }, "linked_sso": { "type": "boolean", "example": false }, "pin_configured": { "type": "boolean", "example": false }, "requires_totp": { "type": "boolean", "example": true }, "totp_enabled": { "type": "boolean", "example": true }, "webauthn_configured": { "type": "boolean", "example": false } } }, "type": { "type": "string", "example": "auth_totp_required" } } } } }, "wucher_internal_transport_http_dto.MedicineAttributes": { "type": "object", "properties": { "column": { "type": "integer", "example": 1 }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "is_active": { "type": "boolean", "example": true }, "medicine_group": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupResource" }, "medicine_group_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "motor_reaction": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionResource" }, "motor_reaction_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "motor_reaction_ids": { "type": "array", "items": { "type": "string" }, "example": [ "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" ] }, "motor_reactions": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionResource" } }, "name": { "type": "string", "example": "Paracetamol" }, "note": { "type": "string", "example": "Main stock medicine" }, "pack": { "type": "string", "example": "500mg" }, "sortkey": { "type": "integer", "example": 1 }, "unit": { "type": "string", "example": "tablet" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.MedicineCreateAttributes": { "type": "object", "required": [ "name" ], "properties": { "column": { "type": "integer", "example": 1 }, "is_active": { "type": "boolean", "example": true }, "medicine_group_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "motor_reaction_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "motor_reaction_ids": { "type": "array", "items": { "type": "string" }, "example": [ "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" ] }, "name": { "type": "string", "example": "Paracetamol" }, "note": { "type": "string", "example": "Main stock medicine" }, "pack": { "type": "string", "example": "500mg" }, "sortkey": { "type": "integer", "example": 1 }, "unit": { "type": "string", "maxLength": 50, "example": "tablet" } } }, "wucher_internal_transport_http_dto.MedicineCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineCreateAttributes" }, "type": { "type": "string", "enum": [ "medicine_create", "medicine" ], "example": "medicine_create" } } }, "wucher_internal_transport_http_dto.MedicineCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineCreateData" } } }, "wucher_internal_transport_http_dto.MedicineDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.MedicineGroupAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "Spritze" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.MedicineGroupCreateAttributes": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "example": "Spritze" } } }, "wucher_internal_transport_http_dto.MedicineGroupCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupCreateAttributes" }, "type": { "type": "string", "enum": [ "medicine_group_create", "medicine_group" ], "example": "medicine_group_create" } } }, "wucher_internal_transport_http_dto.MedicineGroupCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupCreateData" } } }, "wucher_internal_transport_http_dto.MedicineGroupDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.MedicineGroupListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.MedicineGroupResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "medicine_group" } } }, "wucher_internal_transport_http_dto.MedicineGroupResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupResource" } } }, "wucher_internal_transport_http_dto.MedicineGroupUpdateAttributes": { "type": "object", "properties": { "name": { "type": "string", "example": "Spritze" } } }, "wucher_internal_transport_http_dto.MedicineGroupUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "medicine_group_update", "medicine_group" ], "example": "medicine_group_update" } } }, "wucher_internal_transport_http_dto.MedicineGroupUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineGroupUpdateData" } } }, "wucher_internal_transport_http_dto.MedicineListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.MedicineResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "medicine" } } }, "wucher_internal_transport_http_dto.MedicineResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineResource" } } }, "wucher_internal_transport_http_dto.MedicineUpdateAttributes": { "type": "object", "properties": { "column": { "type": "integer", "example": 1 }, "is_active": { "type": "boolean", "example": true }, "medicine_group_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "motor_reaction_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "motor_reaction_ids": { "type": "array", "items": { "type": "string" }, "example": [ "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" ] }, "name": { "type": "string", "example": "Paracetamol" }, "note": { "type": "string", "example": "Main stock medicine" }, "pack": { "type": "string", "example": "500mg" }, "sortkey": { "type": "integer", "example": 1 }, "unit": { "type": "string", "maxLength": 50, "example": "tablet" } } }, "wucher_internal_transport_http_dto.MedicineUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "medicine_update", "medicine" ], "example": "medicine_update" } } }, "wucher_internal_transport_http_dto.MedicineUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MedicineUpdateData" } } }, "wucher_internal_transport_http_dto.MicrosoftCallbackResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "email": { "type": "string", "example": "user@example.com" }, "provider": { "type": "string", "example": "microsoft" }, "provider_subject": { "type": "string", "example": "00000000-0000-0000-0000-000000000000" } } }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "auth_identity" } } } } }, "wucher_internal_transport_http_dto.MicrosoftLoginResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "redirect_url": { "type": "string", "example": "https://login.microsoftonline.com/..." }, "url": { "type": "string", "example": "https://login.microsoftonline.com/..." } } }, "type": { "type": "string", "example": "auth_microsoft_url" } } } } }, "wucher_internal_transport_http_dto.MotorReactionAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "gezielt auf Schmerzreiz" }, "score": { "type": "integer", "example": 5 }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.MotorReactionCreateAttributes": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "example": "gezielt auf Schmerzreiz" }, "score": { "type": "integer", "example": 5 } } }, "wucher_internal_transport_http_dto.MotorReactionCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionCreateAttributes" }, "type": { "type": "string", "enum": [ "motor_reaction_create", "motor_reaction" ], "example": "motor_reaction_create" } } }, "wucher_internal_transport_http_dto.MotorReactionCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionCreateData" } } }, "wucher_internal_transport_http_dto.MotorReactionDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.MotorReactionListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.MotorReactionResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "motor_reaction" } } }, "wucher_internal_transport_http_dto.MotorReactionResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionResource" } } }, "wucher_internal_transport_http_dto.MotorReactionUpdateAttributes": { "type": "object", "properties": { "name": { "type": "string", "example": "gezielt auf Schmerzreiz" }, "score": { "type": "integer", "example": 5 } } }, "wucher_internal_transport_http_dto.MotorReactionUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "motor_reaction_update", "motor_reaction" ], "example": "motor_reaction_update" } } }, "wucher_internal_transport_http_dto.MotorReactionUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.MotorReactionUpdateData" } } }, "wucher_internal_transport_http_dto.OpcAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "is_active": { "type": "boolean", "example": true }, "note": { "type": "string", "example": "Primary operation control center" }, "sortkey": { "type": "integer", "example": 1 }, "title": { "type": "string", "example": "Main OPC Base" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.OpcCreateAttributes": { "type": "object", "required": [ "title" ], "properties": { "is_active": { "type": "boolean", "example": true }, "note": { "type": "string", "example": "Primary operation control center" }, "sortkey": { "type": "integer", "example": 1 }, "title": { "type": "string", "example": "Main OPC Base" } } }, "wucher_internal_transport_http_dto.OpcCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcCreateAttributes" }, "type": { "type": "string", "enum": [ "opc_create", "opc" ], "example": "opc_create" } } }, "wucher_internal_transport_http_dto.OpcCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcCreateData" } } }, "wucher_internal_transport_http_dto.OpcDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.OpcListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.OpcResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "opc" } } }, "wucher_internal_transport_http_dto.OpcResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcResource" } } }, "wucher_internal_transport_http_dto.OpcUpdateAttributes": { "type": "object", "properties": { "is_active": { "type": "boolean", "example": true }, "note": { "type": "string", "example": "Primary operation control center" }, "sortkey": { "type": "integer", "example": 1 }, "title": { "type": "string", "example": "Main OPC Base" } } }, "wucher_internal_transport_http_dto.OpcUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "opc_update", "opc" ], "example": "opc_update" } } }, "wucher_internal_transport_http_dto.OpcUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.OpcUpdateData" } } }, "wucher_internal_transport_http_dto.PatientDataAttributes": { "type": "object", "properties": { "age": { "type": "integer", "example": 35 }, "birth_date": { "type": "string", "example": "1990-01-15" }, "co_insured": { "type": "boolean", "example": false }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "email": { "type": "string", "example": "max.muster@example.com" }, "family_name": { "type": "string", "example": "Muster" }, "first_name": { "type": "string", "example": "Max" }, "gender": { "type": "string", "example": "male" }, "insurance_patient_data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataInsuranceDetail" }, "insurance_patient_data_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "opc": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataOPC" }, "opc_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "phone": { "type": "string", "example": "+431234567" }, "street": { "type": "string", "example": "Hauptstraße 1" }, "svnr": { "type": "string", "example": "1234150190" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.PatientDataCreateAttributes": { "type": "object", "required": [ "family_name", "first_name", "gender" ], "properties": { "birth_date": { "type": "string", "example": "1990-01-15" }, "co_insured": { "type": "boolean", "example": false }, "email": { "type": "string", "example": "max.muster@example.com" }, "family_name": { "type": "string", "example": "Muster" }, "first_name": { "type": "string", "example": "Max" }, "gender": { "type": "string", "enum": [ "male", "female" ], "example": "male" }, "insurance_patient_data_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "opc_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "phone": { "type": "string", "example": "+431234567" }, "street": { "type": "string", "example": "Hauptstraße 1" }, "svnr": { "type": "string", "example": "1234150190" } } }, "wucher_internal_transport_http_dto.PatientDataCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataCreateAttributes" }, "type": { "type": "string", "enum": [ "patient_data_create", "patient_data" ], "example": "patient_data_create" } } }, "wucher_internal_transport_http_dto.PatientDataCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataCreateData" } } }, "wucher_internal_transport_http_dto.PatientDataDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.PatientDataInsuranceDetail": { "type": "object", "properties": { "federal_state": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataFederalState" }, "federal_state_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "health_insurance_companies_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "health_insurance_company": { "$ref": "#/definitions/wucher_internal_transport_http_dto.InsurancePatientDataHealthInsuranceCompany" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.PatientDataListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.PatientDataOPC": { "type": "object", "properties": { "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "title": { "type": "string", "example": "Primary OPC" } } }, "wucher_internal_transport_http_dto.PatientDataResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "patient_data" } } }, "wucher_internal_transport_http_dto.PatientDataResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataResource" } } }, "wucher_internal_transport_http_dto.PatientDataUpdateAttributes": { "type": "object", "properties": { "birth_date": { "type": "string", "example": "1990-01-15" }, "co_insured": { "type": "boolean", "example": false }, "email": { "type": "string", "example": "max.muster@example.com" }, "family_name": { "type": "string", "example": "Muster" }, "first_name": { "type": "string", "example": "Max" }, "gender": { "type": "string", "example": "male" }, "insurance_patient_data_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "opc_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "phone": { "type": "string", "example": "+431234567" }, "street": { "type": "string", "example": "Hauptstraße 1" }, "svnr": { "type": "string", "example": "1234150190" } } }, "wucher_internal_transport_http_dto.PatientDataUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "patient_data_update", "patient_data" ], "example": "patient_data_update" } } }, "wucher_internal_transport_http_dto.PatientDataUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PatientDataUpdateData" } } }, "wucher_internal_transport_http_dto.PermissionAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-02-05T10:00:00Z" }, "description": { "type": "string", "example": "Allows managing users." }, "key": { "type": "string", "example": "user.manage" }, "name": { "type": "string", "example": "User Management" }, "requires_pin": { "type": "boolean", "example": true }, "updated_at": { "type": "string", "example": "2026-02-05T10:00:00Z" } } }, "wucher_internal_transport_http_dto.PermissionGroupResource": { "type": "object", "properties": { "module": { "type": "string", "example": "dul" }, "module_label": { "type": "string", "example": "DUL" }, "permissions": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionResource" } } } }, "wucher_internal_transport_http_dto.PermissionGroupedResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionGroupResource" } } } }, "wucher_internal_transport_http_dto.PermissionListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.PermissionMini": { "type": "object", "properties": { "description": { "type": "string", "example": "Permission to view users." }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9a" }, "key": { "type": "string", "example": "users.read" }, "name": { "type": "string", "example": "View Users" }, "requires_pin": { "type": "boolean", "example": false } } }, "wucher_internal_transport_http_dto.PermissionResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "permission" } } }, "wucher_internal_transport_http_dto.PermissionUpdateAttributes": { "type": "object", "required": [ "requires_pin" ], "properties": { "requires_pin": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto.PermissionUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "permission_update", "permission" ], "example": "permission_update" } } }, "wucher_internal_transport_http_dto.PermissionUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionUpdateData" } } }, "wucher_internal_transport_http_dto.PilotProfileAttributes": { "type": "object", "properties": { "double_command_minutes": { "type": "integer" }, "dul_base": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULBase" } }, "flight_instructor_minutes": { "type": "integer" }, "has_ifr_qualification": { "type": "boolean" }, "ifr_flight_minutes": { "type": "integer" }, "is_chief_pilot": { "type": "boolean" }, "license_expired_at": { "type": "string" }, "license_issued_at": { "type": "string" }, "license_no": { "type": "string", "maxLength": 120 }, "location": { "type": "string", "maxLength": 255 }, "night_flight_minutes": { "type": "integer" }, "note": { "type": "string" }, "pilot_category": { "type": "string", "enum": [ "regular", "freelance", "dry_lease" ] }, "postcode": { "type": "string", "maxLength": 32 }, "responsible_pilot_minutes": { "type": "integer" }, "second_pilot_minutes": { "type": "integer" }, "short_name": { "type": "string", "maxLength": 120 }, "street_line": { "type": "string", "maxLength": 255 }, "technician_license_no": { "type": "string", "maxLength": 120 }, "total_flight_minutes": { "type": "integer" }, "weight_kg": { "type": "number" } } }, "wucher_internal_transport_http_dto.PilotProfileUpdateAttributes": { "type": "object", "properties": { "double_command_minutes": { "type": "integer" }, "dul_base": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.DULBase" } }, "flight_instructor_minutes": { "type": "integer" }, "has_ifr_qualification": { "type": "boolean" }, "ifr_flight_minutes": { "type": "integer" }, "is_chief_pilot": { "type": "boolean" }, "license_expired_at": { "type": "string" }, "license_issued_at": { "type": "string" }, "license_no": { "type": "string", "maxLength": 120 }, "location": { "type": "string", "maxLength": 255 }, "night_flight_minutes": { "type": "integer" }, "note": { "type": "string" }, "pilot_category": { "type": "string", "enum": [ "regular", "freelance", "dry_lease" ] }, "postcode": { "type": "string", "maxLength": 32 }, "responsible_pilot_minutes": { "type": "integer" }, "second_pilot_minutes": { "type": "integer" }, "short_name": { "type": "string", "maxLength": 120 }, "street_line": { "type": "string", "maxLength": 255 }, "technician_license_no": { "type": "string", "maxLength": 120 }, "total_flight_minutes": { "type": "integer" }, "weight_kg": { "type": "number" } } }, "wucher_internal_transport_http_dto.ReauthAttributes": { "type": "object", "required": [ "method" ], "properties": { "method": { "type": "string", "enum": [ "pin", "password" ], "example": "pin" }, "password": { "type": "string", "minLength": 1, "example": "StrongP@ssw0rd" } } }, "wucher_internal_transport_http_dto.RegisterAttributes": { "type": "object", "required": [ "email", "first_name", "last_name", "password", "username" ], "properties": { "email": { "type": "string", "example": "user@example.com" }, "first_name": { "type": "string", "example": "John" }, "last_name": { "type": "string", "example": "Doe" }, "mobile_phone": { "type": "string", "example": "+628123456789" }, "password": { "type": "string", "minLength": 8, "example": "StrongP@ssw0rd" }, "username": { "type": "string", "maxLength": 100, "minLength": 3, "example": "john.doe" } } }, "wucher_internal_transport_http_dto.RegisterData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RegisterAttributes" }, "type": { "type": "string", "example": "auth_register" } } }, "wucher_internal_transport_http_dto.RegisterRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RegisterData" } } }, "wucher_internal_transport_http_dto.RequestSecurityPINAttributes": { "type": "object", "properties": { "method": { "type": "string", "example": "password" }, "password": { "type": "string", "example": "StrongP@ssw0rd" }, "reauth_token": { "type": "string", "example": "sso_reauth_1234567890abcdef" } } }, "wucher_internal_transport_http_dto.RequestSecurityPINData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RequestSecurityPINAttributes" }, "type": { "type": "string", "example": "auth_pin_request_reset" } } }, "wucher_internal_transport_http_dto.RequestSecurityPINRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RequestSecurityPINData" } } }, "wucher_internal_transport_http_dto.RequestSecurityPINResetResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "message": { "type": "string", "example": "If allowed, a security PIN reset link has been sent to your email." } } }, "type": { "type": "string", "example": "auth_pin_request_reset" } } } } }, "wucher_internal_transport_http_dto.ResendSetPasswordInviteAttributes": { "type": "object", "required": [ "user_id" ], "properties": { "user_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.ResendSetPasswordInviteData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ResendSetPasswordInviteAttributes" }, "type": { "type": "string", "example": "auth_resend_set_password" } } }, "wucher_internal_transport_http_dto.ResendSetPasswordInviteRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ResendSetPasswordInviteData" } } }, "wucher_internal_transport_http_dto.ResetPasswordAttributes": { "type": "object", "required": [ "confirm_password", "new_password", "token" ], "properties": { "confirm_password": { "type": "string", "minLength": 8, "example": "StrongP@ssw0rd!LongPassphrase" }, "new_password": { "type": "string", "minLength": 8, "example": "StrongP@ssw0rd!LongPassphrase" }, "token": { "type": "string", "example": "kP8k2..." } } }, "wucher_internal_transport_http_dto.ResetPasswordData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ResetPasswordAttributes" }, "type": { "type": "string", "example": "auth_reset_password" } } }, "wucher_internal_transport_http_dto.ResetPasswordRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ResetPasswordData" } } }, "wucher_internal_transport_http_dto.ResetSecurityPINAttributes": { "type": "object", "required": [ "confirm_pin", "new_pin" ], "properties": { "confirm_pin": { "type": "string", "example": "123456" }, "method": { "type": "string", "example": "password" }, "new_pin": { "type": "string", "example": "123456" }, "password": { "type": "string", "example": "StrongP@ssw0rd" }, "reauth_token": { "type": "string", "example": "sso_reauth_1234567890abcdef" }, "token": { "type": "string", "example": "kP8k2..." } } }, "wucher_internal_transport_http_dto.ResetSecurityPINData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ResetSecurityPINAttributes" }, "type": { "type": "string", "example": "auth_reset_pin" } } }, "wucher_internal_transport_http_dto.ResetSecurityPINRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ResetSecurityPINData" } } }, "wucher_internal_transport_http_dto.RoleAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-02-05T10:00:00Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "description": { "type": "string", "example": "Full access to all resources." }, "name": { "type": "string", "example": "admin" }, "updated_at": { "type": "string", "example": "2026-02-05T10:00:00Z" } } }, "wucher_internal_transport_http_dto.RoleCreateAttributes": { "type": "object", "required": [ "name" ], "properties": { "description": { "type": "string", "example": "Full access to all resources." }, "name": { "type": "string", "example": "admin" } } }, "wucher_internal_transport_http_dto.RoleCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleCreateAttributes" }, "type": { "type": "string", "enum": [ "role_create", "role" ], "example": "role_create" } } }, "wucher_internal_transport_http_dto.RoleCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleCreateData" } } }, "wucher_internal_transport_http_dto.RoleDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.RoleListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.RoleMini": { "type": "object", "properties": { "description": { "type": "string", "example": "Full access to all resources." }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "admin" } } }, "wucher_internal_transport_http_dto.RolePermissionAssignAttributes": { "type": "object", "required": [ "permission_id" ], "properties": { "permission_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9e" } } }, "wucher_internal_transport_http_dto.RolePermissionAssignBulkData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionBulkAttributes" }, "type": { "type": "string", "example": "role_assign_permission_bulk" } } }, "wucher_internal_transport_http_dto.RolePermissionAssignBulkRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionAssignBulkData" } } }, "wucher_internal_transport_http_dto.RolePermissionAssignData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionAssignAttributes" }, "type": { "type": "string", "example": "role_permission" } } }, "wucher_internal_transport_http_dto.RolePermissionAssignRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionAssignData" } } }, "wucher_internal_transport_http_dto.RolePermissionAttributes": { "type": "object", "properties": { "permission_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9e" }, "role_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.RolePermissionBulkAttributes": { "type": "object", "required": [ "permission_ids" ], "properties": { "permission_ids": { "type": "array", "items": { "type": "string" }, "example": [ "[\"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9e\"", "\"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9f\"]" ] } } }, "wucher_internal_transport_http_dto.RolePermissionListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionResource" } } } }, "wucher_internal_transport_http_dto.RolePermissionRemoveBulkData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionBulkAttributes" }, "type": { "type": "string", "example": "role_remove_permission_bulk" } } }, "wucher_internal_transport_http_dto.RolePermissionRemoveBulkRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionRemoveBulkData" } } }, "wucher_internal_transport_http_dto.RolePermissionResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9f" }, "type": { "type": "string", "example": "role_permission" } } }, "wucher_internal_transport_http_dto.RolePermissionResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RolePermissionResource" } } }, "wucher_internal_transport_http_dto.RoleResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "permissions": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.PermissionResource" } }, "type": { "type": "string", "example": "role" } } }, "wucher_internal_transport_http_dto.RoleResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleResource" } } }, "wucher_internal_transport_http_dto.RoleUpdateAttributes": { "type": "object", "properties": { "description": { "type": "string", "example": "Full access to all resources." }, "name": { "type": "string", "example": "admin" } } }, "wucher_internal_transport_http_dto.RoleUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "role_update", "role" ], "example": "role_update" } } }, "wucher_internal_transport_http_dto.RoleUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleUpdateData" } } }, "wucher_internal_transport_http_dto.SSOLinkAttributes": { "type": "object", "required": [ "code", "provider" ], "properties": { "code": { "type": "string", "example": "0.AXkA..." }, "provider": { "type": "string", "example": "microsoft" } } }, "wucher_internal_transport_http_dto.SSOLinkData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SSOLinkAttributes" }, "type": { "type": "string", "example": "auth_sso_link" } } }, "wucher_internal_transport_http_dto.SSOLinkRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SSOLinkData" } } }, "wucher_internal_transport_http_dto.SSOLinkResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "email": { "type": "string", "example": "user@example.com" }, "provider": { "type": "string", "example": "microsoft" }, "provider_subject": { "type": "string", "example": "00000000-0000-0000-0000-000000000000" } } }, "type": { "type": "string", "example": "auth_sso_link" } } } } }, "wucher_internal_transport_http_dto.SSOUnlinkAttributes": { "type": "object", "required": [ "provider" ], "properties": { "provider": { "type": "string", "example": "microsoft" } } }, "wucher_internal_transport_http_dto.SSOUnlinkData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SSOUnlinkAttributes" }, "type": { "type": "string", "example": "auth_sso_unlink" } } }, "wucher_internal_transport_http_dto.SSOUnlinkRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SSOUnlinkData" } } }, "wucher_internal_transport_http_dto.SSOUnlinkResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "provider": { "type": "string", "example": "microsoft" }, "unlinked": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "auth_sso_unlink" } } } } }, "wucher_internal_transport_http_dto.SecurityPINChangeAttributes": { "type": "object", "required": [ "confirm_pin", "current_pin", "new_pin" ], "properties": { "confirm_pin": { "type": "string", "example": "654321" }, "current_pin": { "type": "string", "example": "123456" }, "new_pin": { "type": "string", "example": "654321" } } }, "wucher_internal_transport_http_dto.SecurityPINChangeData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SecurityPINChangeAttributes" }, "type": { "type": "string", "example": "auth_pin_change" } } }, "wucher_internal_transport_http_dto.SecurityPINChangeRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SecurityPINChangeData" } } }, "wucher_internal_transport_http_dto.SecurityPINSetupAttributes": { "type": "object", "required": [ "confirm_pin", "pin" ], "properties": { "confirm_pin": { "type": "string", "example": "123456" }, "pin": { "type": "string", "example": "123456" } } }, "wucher_internal_transport_http_dto.SecurityPINSetupData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SecurityPINSetupAttributes" }, "type": { "type": "string", "example": "auth_pin_setup" } } }, "wucher_internal_transport_http_dto.SecurityPINSetupRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SecurityPINSetupData" } } }, "wucher_internal_transport_http_dto.SecurityPINSetupResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "configured": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "auth_pin_setup" } } } } }, "wucher_internal_transport_http_dto.SecurityPINVerifyAttributes": { "type": "object", "required": [ "action", "pin" ], "properties": { "action": { "type": "string", "example": "a546de2f-f1e6-4c2c-ab03-9b4bf39f4d74" }, "pin": { "type": "string", "example": "123456" } } }, "wucher_internal_transport_http_dto.SecurityPINVerifyData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SecurityPINVerifyAttributes" }, "type": { "type": "string", "example": "auth_pin_verify" } } }, "wucher_internal_transport_http_dto.SecurityPINVerifyRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SecurityPINVerifyData" } } }, "wucher_internal_transport_http_dto.SecurityPINVerifyResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "action_token": { "type": "string", "example": "pinv_1234567890abcdef" }, "action_token_ttl_ms": { "type": "integer", "example": 900000 }, "verified": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "auth_pin_verify" } } } } }, "wucher_internal_transport_http_dto.SetPasswordAttributes": { "type": "object", "required": [ "password", "token" ], "properties": { "password": { "type": "string", "minLength": 8, "example": "StrongP@ssw0rd" }, "token": { "type": "string", "example": "kP8k2..." } } }, "wucher_internal_transport_http_dto.SetPasswordData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SetPasswordAttributes" }, "type": { "type": "string", "example": "auth_set_password" } } }, "wucher_internal_transport_http_dto.SetPasswordRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.SetPasswordData" } } }, "wucher_internal_transport_http_dto.StaffProfileAttributes": { "type": "object", "properties": { "location": { "type": "string", "maxLength": 255 }, "note": { "type": "string" }, "postcode": { "type": "string", "maxLength": 32 }, "role_label": { "type": "string", "maxLength": 120 }, "short_name": { "type": "string", "maxLength": 120 }, "street_line": { "type": "string", "maxLength": 255 } } }, "wucher_internal_transport_http_dto.StaffProfileUpdateAttributes": { "type": "object", "properties": { "location": { "type": "string", "maxLength": 255 }, "note": { "type": "string" }, "postcode": { "type": "string", "maxLength": 32 }, "role_label": { "type": "string", "maxLength": 120 }, "short_name": { "type": "string", "maxLength": 120 }, "street_line": { "type": "string", "maxLength": 255 } } }, "wucher_internal_transport_http_dto.TOTPConfirmAttributes": { "type": "object", "required": [ "code", "user_id" ], "properties": { "code": { "type": "string", "example": "123456" }, "user_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.TOTPConfirmData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPConfirmAttributes" }, "type": { "type": "string", "example": "auth_totp_confirm" } } }, "wucher_internal_transport_http_dto.TOTPConfirmRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPConfirmData" } } }, "wucher_internal_transport_http_dto.TOTPDisableAttributes": { "type": "object", "required": [ "user_id" ], "properties": { "user_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.TOTPDisableData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPDisableAttributes" }, "type": { "type": "string", "example": "auth_totp_disable" } } }, "wucher_internal_transport_http_dto.TOTPDisableRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPDisableData" } } }, "wucher_internal_transport_http_dto.TOTPResetSetupData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ReauthAttributes" }, "type": { "type": "string", "example": "auth_totp_reset_setup" } } }, "wucher_internal_transport_http_dto.TOTPResetSetupRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPResetSetupData" } } }, "wucher_internal_transport_http_dto.TOTPSetupAttributes": { "type": "object", "required": [ "email", "user_id" ], "properties": { "email": { "type": "string", "example": "user@example.com" }, "user_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.TOTPSetupData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPSetupAttributes" }, "type": { "type": "string", "example": "auth_totp_setup" } } }, "wucher_internal_transport_http_dto.TOTPSetupRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPSetupData" } } }, "wucher_internal_transport_http_dto.TOTPSetupResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "issuer": { "type": "string", "example": "Wucher" }, "otpauth_url": { "type": "string", "example": "otpauth://totp/Wucher:user@example.com?..." }, "secret": { "type": "string", "example": "JBSWY3DPEHPK3PXP" } } }, "type": { "type": "string", "example": "auth_totp_setup" } } } } }, "wucher_internal_transport_http_dto.TOTPVerifyAttributes": { "type": "object", "required": [ "challenge_token", "code" ], "properties": { "challenge_token": { "type": "string", "example": "kP8k2..." }, "code": { "type": "string", "example": "123456" } } }, "wucher_internal_transport_http_dto.TOTPVerifyData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPVerifyAttributes" }, "type": { "type": "string", "example": "auth_totp_verify" } } }, "wucher_internal_transport_http_dto.TOTPVerifyRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TOTPVerifyData" } } }, "wucher_internal_transport_http_dto.TechnicianProfileAttributes": { "type": "object", "properties": { "is_chief_technician": { "type": "boolean" }, "is_responsible_complaints": { "type": "boolean" }, "license_no": { "type": "string", "maxLength": 120 }, "location": { "type": "string", "maxLength": 255 }, "note": { "type": "string" }, "postcode": { "type": "string", "maxLength": 32 }, "short_name": { "type": "string", "maxLength": 120 }, "street_line": { "type": "string", "maxLength": 255 } } }, "wucher_internal_transport_http_dto.TechnicianProfileUpdateAttributes": { "type": "object", "properties": { "is_chief_technician": { "type": "boolean" }, "is_responsible_complaints": { "type": "boolean" }, "license_no": { "type": "string", "maxLength": 120 }, "location": { "type": "string", "maxLength": 255 }, "note": { "type": "string" }, "postcode": { "type": "string", "maxLength": 32 }, "short_name": { "type": "string", "maxLength": 120 }, "street_line": { "type": "string", "maxLength": 255 } } }, "wucher_internal_transport_http_dto.TimezoneUpdateAttributes": { "type": "object", "required": [ "timezone" ], "properties": { "timezone": { "type": "string", "example": "Asia/Jakarta" } } }, "wucher_internal_transport_http_dto.TimezoneUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TimezoneUpdateAttributes" }, "type": { "type": "string", "example": "auth_timezone_update" } } }, "wucher_internal_transport_http_dto.TimezoneUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.TimezoneUpdateData" } } }, "wucher_internal_transport_http_dto.TokenResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "access_expires_in": { "type": "integer", "example": 900 }, "refresh_expires_in": { "type": "integer", "example": 2592000 } } }, "type": { "type": "string", "example": "auth_tokens" } } } } }, "wucher_internal_transport_http_dto.UserAttributes": { "type": "object", "properties": { "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "email": { "type": "string", "example": "user@example.com" }, "email_verified_at": { "type": "string", "example": "2026-02-05T10:00:00Z" }, "first_name": { "type": "string", "example": "John" }, "is_previously_configured": { "type": "boolean", "example": false }, "last_name": { "type": "string", "example": "Doe" }, "linked_sso": { "type": "boolean", "example": false }, "mobile_phone": { "type": "string", "example": "+628123456789" }, "pin_configured": { "type": "boolean", "example": false }, "profile_picture": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserImage" }, "role": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleMini" }, "role_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "role_ids": { "type": "array", "items": { "type": "string" }, "example": [ "[\"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d\"", "\"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9e\"]" ] }, "roles": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.RoleMini" } }, "timezone": { "type": "string", "example": "Asia/Jakarta" }, "totp_enabled": { "type": "boolean", "example": false }, "username": { "type": "string", "example": "john.doe" }, "webauthn_configured": { "type": "boolean", "example": false } } }, "wucher_internal_transport_http_dto.UserCreateAttributes": { "type": "object", "required": [ "email", "first_name", "last_name", "role_id", "username" ], "properties": { "email": { "type": "string", "example": "user@example.com" }, "first_name": { "type": "string", "example": "John" }, "image_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e90" }, "last_name": { "type": "string", "example": "Doe" }, "mobile_phone": { "type": "string", "example": "+628123456789" }, "role_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "role_ids": { "type": "array", "items": { "type": "string" }, "example": [ "[\"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d\"", "\"018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9e\"]" ] }, "timezone": { "type": "string", "example": "Asia/Jakarta" }, "username": { "type": "string", "maxLength": 100, "minLength": 3, "example": "john.doe" } } }, "wucher_internal_transport_http_dto.UserCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserCreateAttributes" }, "type": { "type": "string", "enum": [ "user_create", "user" ], "example": "user_create" } } }, "wucher_internal_transport_http_dto.UserCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserCreateData" } } }, "wucher_internal_transport_http_dto.UserDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.UserFoto": { "type": "object", "properties": { "download_url": { "type": "string", "example": "https://storage.example.com/base/lude.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Expires=900\u0026X-Amz-Signature=abc123" }, "original_size_bytes": { "type": "integer", "example": 1024000 }, "thumbnail_download_url": { "type": "string", "example": "https://storage.example.com/base/lude.thumb.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Expires=900\u0026X-Amz-Signature=abc123" }, "uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9f" } } }, "wucher_internal_transport_http_dto.UserImage": { "type": "object", "properties": { "download_url": { "type": "string", "example": "https://example.com/presigned-url" }, "original_size_bytes": { "type": "integer", "example": 1024000 }, "thumbnail_download_url": { "type": "string", "example": "https://example.com/presigned-thumb-url" }, "uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9f" } } }, "wucher_internal_transport_http_dto.UserListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.UserResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "user" } } }, "wucher_internal_transport_http_dto.UserResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "user" } } } } }, "wucher_internal_transport_http_dto.UserUpdateAttributes": { "type": "object", "properties": { "email": { "type": "string", "example": "user@example.com" }, "first_name": { "type": "string", "example": "John" }, "image_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e90" }, "last_name": { "type": "string", "example": "Doe" }, "mobile_phone": { "type": "string", "example": "+628123456789" }, "timezone": { "type": "string", "example": "Asia/Jakarta" } } }, "wucher_internal_transport_http_dto.UserUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "user_update", "user" ], "example": "user_update" } } }, "wucher_internal_transport_http_dto.UserUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.UserUpdateData" } } }, "wucher_internal_transport_http_dto.VerifyEmailResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "verified": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "auth_verify_email" } } } } }, "wucher_internal_transport_http_dto.VocationAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "is_active": { "type": "boolean", "example": true }, "name": { "type": "string", "example": "Pilot" }, "note": { "type": "string", "example": "Helicopter pilot vocation" }, "sortkey": { "type": "integer", "example": 1 }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto.VocationCreateAttributes": { "type": "object", "required": [ "name" ], "properties": { "is_active": { "type": "boolean", "example": true }, "name": { "type": "string", "example": "Pilot" }, "note": { "type": "string", "example": "Helicopter pilot vocation" }, "sortkey": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto.VocationCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationCreateAttributes" }, "type": { "type": "string", "enum": [ "vocation_create", "vocation" ], "example": "vocation_create" } } }, "wucher_internal_transport_http_dto.VocationCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationCreateData" } } }, "wucher_internal_transport_http_dto.VocationDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.VocationListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto.VocationResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "vocation" } } }, "wucher_internal_transport_http_dto.VocationResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationResource" } } }, "wucher_internal_transport_http_dto.VocationUpdateAttributes": { "type": "object", "properties": { "is_active": { "type": "boolean", "example": true }, "name": { "type": "string", "example": "Pilot" }, "note": { "type": "string", "example": "Helicopter pilot vocation" }, "sortkey": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto.VocationUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "vocation_update", "vocation" ], "example": "vocation_update" } } }, "wucher_internal_transport_http_dto.VocationUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.VocationUpdateData" } } }, "wucher_internal_transport_http_dto.WebAuthnBeginResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "challenge_token": { "type": "string", "example": "kP8k2..." }, "challenge_ttl_ms": { "type": "integer", "example": 300000 }, "public_key": { "type": "object", "additionalProperties": true } } }, "type": { "type": "string", "example": "auth_webauthn_register_options" } } } } }, "wucher_internal_transport_http_dto.WebAuthnLoginBeginAttributes": { "type": "object", "required": [ "email" ], "properties": { "email": { "type": "string", "example": "user@example.com" } } }, "wucher_internal_transport_http_dto.WebAuthnLoginBeginData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnLoginBeginAttributes" }, "type": { "type": "string", "example": "auth_webauthn_login_begin" } } }, "wucher_internal_transport_http_dto.WebAuthnLoginBeginRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnLoginBeginData" } } }, "wucher_internal_transport_http_dto.WebAuthnLoginFinishAttributes": { "type": "object", "required": [ "challenge_token", "credential" ], "properties": { "challenge_token": { "type": "string", "example": "kP8k2..." }, "credential": { "type": "array", "items": { "type": "integer" } } } }, "wucher_internal_transport_http_dto.WebAuthnLoginFinishData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnLoginFinishAttributes" }, "type": { "type": "string", "example": "auth_webauthn_login_finish" } } }, "wucher_internal_transport_http_dto.WebAuthnLoginFinishRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnLoginFinishData" } } }, "wucher_internal_transport_http_dto.WebAuthnRegisterBeginData": { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "example": "auth_webauthn_register_begin" } } }, "wucher_internal_transport_http_dto.WebAuthnRegisterBeginRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnRegisterBeginData" } } }, "wucher_internal_transport_http_dto.WebAuthnRegisterFinishAttributes": { "type": "object", "required": [ "challenge_token", "credential" ], "properties": { "challenge_token": { "type": "string", "example": "kP8k2..." }, "credential": { "type": "array", "items": { "type": "integer" } }, "name": { "type": "string", "maxLength": 100, "example": "MacBook Touch ID" } } }, "wucher_internal_transport_http_dto.WebAuthnRegisterFinishData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnRegisterFinishAttributes" }, "type": { "type": "string", "example": "auth_webauthn_register_finish" } } }, "wucher_internal_transport_http_dto.WebAuthnRegisterFinishRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnRegisterFinishData" } } }, "wucher_internal_transport_http_dto.WebAuthnResetSetupData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto.ReauthAttributes" }, "type": { "type": "string", "example": "auth_webauthn_reset_setup" } } }, "wucher_internal_transport_http_dto.WebAuthnResetSetupRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto.WebAuthnResetSetupData" } } }, "wucher_internal_transport_http_dto.WebAuthnResetSetupResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "reset": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "auth_webauthn_reset_setup" } } } } }, "wucher_internal_transport_http_dto_request.ActionSignoffSignAttributes": { "type": "object", "properties": { "complaint_id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "flight_id": { "description": "FlightID — REQUIRED for the fleet (complaint-independent) sign-off; scopes it to a\nflight so it no longer leaks across takeovers of the same aircraft. Ignored when\ncomplaint_id is set (that sign-off is keyed by the complaint).", "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "sign": { "description": "Sign toggles the sign-off: true (or omitted) signs it, false unsigns (clears the\nsignature). Combine with complaint_id to toggle a specific complaint's sign-off.", "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_request.ActionSignoffSignData": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ActionSignoffSignAttributes" }, "type": { "type": "string", "example": "action_signoff" } } }, "wucher_internal_transport_http_dto_request.ActionSignoffSignRequest": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ActionSignoffSignData" } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateAttributes": { "type": "object", "required": [ "base_id", "checklists" ], "properties": { "base_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "checklists": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateEntry" } } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateAttributes" }, "type": { "type": "string", "enum": [ "air_rescuer_checklist_create" ] } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateEntry": { "type": "object", "required": [ "scope_code", "title" ], "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.AirRescuerChecklistItemInput" } }, "position": { "type": "integer", "example": 1 }, "scope_code": { "type": "string", "example": "MO" }, "title": { "type": "string", "example": "Monday Checklist" } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistCreateData" } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistItemCreateAttributes": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.AirRescuerChecklistItemInput" } } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistItemCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemCreateAttributes" }, "type": { "type": "string", "enum": [ "air_rescuer_checklist_item_create" ] } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistItemCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemCreateData" } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderAttributes": { "type": "object", "required": [ "items" ], "properties": { "items": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderEntry" } } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderAttributes" }, "type": { "type": "string", "enum": [ "air_rescuer_checklist_item_reorder" ] } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderEntry": { "type": "object", "required": [ "item_uuid", "position" ], "properties": { "item_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "position": { "type": "integer", "example": 2 } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemReorderData" } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistItemUpdateAttributes": { "type": "object", "properties": { "name": { "type": "string", "example": "Check radio" }, "position": { "type": "integer", "example": 2 } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistItemUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "air_rescuer_checklist_item_update" ] } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistItemUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistItemUpdateData" } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistUpdateAttributes": { "type": "object", "properties": { "new_items": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.AirRescuerChecklistItemInput" } }, "position": { "type": "integer", "example": 1 }, "scope_code": { "type": "string", "example": "MO" }, "title": { "type": "string", "example": "Monday Checklist Updated" } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "air_rescuer_checklist_update" ] } } }, "wucher_internal_transport_http_dto_request.AirRescuerChecklistUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.AirRescuerChecklistUpdateData" } } }, "wucher_internal_transport_http_dto_request.ComplaintActionTakenAttributes": { "type": "object", "properties": { "action_taken": { "description": "ActionTaken — corrective action text. Required when recording (create); on update an\nempty value clears it (allowed only while the action has not been signed off).", "type": "string", "example": "Tightened engine mount and rechecked torque" }, "aircraft_hours_at_fix": { "type": "string", "example": "1250.1" } } }, "wucher_internal_transport_http_dto_request.ComplaintActionTakenData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintActionTakenAttributes" }, "type": { "type": "string", "enum": [ "complaint_action_taken", "complaint" ], "example": "complaint_action_taken" } } }, "wucher_internal_transport_http_dto_request.ComplaintActionTakenRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintActionTakenData" } } }, "wucher_internal_transport_http_dto_request.ComplaintCreateAttributes": { "type": "object", "required": [ "description", "helicopter_id" ], "properties": { "aircraft_hours_at_report": { "description": "AircraftHoursAtReport — OPTIONAL airframe hours recorded when the defect was reported.", "type": "string", "example": "1245.3" }, "description": { "description": "Description — the defect description. REQUIRED.", "type": "string", "example": "Engine 2 N2 vibration intermittent during cruise above 110 KIAS" }, "flight_id": { "description": "FlightID — the flight/report this complaint was filed in (attribution). OPTIONAL;\nopen-defect tracking stays per-helicopter so defects carry forward across flights.", "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "helicopter_id": { "description": "HelicopterID — the helicopter this complaint is filed against. REQUIRED.", "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "mel_severity": { "description": "MELSeverity — MEL (Minimum Equipment List) classification. OPTIONAL at creation:\nomit it to file the complaint as \"pending_mel\" and classify later. It MUST be\nclassified (via update) before recording action taken. A pending complaint does\nNOT ground the aircraft — grounding starts at classification. Values: 0 = NON-MEL\n(grounds immediately), 1 = A (grace 1 day), 2 = B (3 days), 3 = C (10 days), 4 = D (120 days).", "type": "integer", "enum": [ 0, 1, 2, 3, 4 ], "example": 2 } } }, "wucher_internal_transport_http_dto_request.ComplaintCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintCreateAttributes" }, "type": { "type": "string", "enum": [ "complaint_create", "complaint" ], "example": "complaint_create" } } }, "wucher_internal_transport_http_dto_request.ComplaintCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintCreateData" } } }, "wucher_internal_transport_http_dto_request.ComplaintNSRSignAttributes": { "type": "object", "properties": { "nsr_reason": { "description": "NSRReason — OPTIONAL free-text justification for the NSR (MEL deferral) decision.", "type": "string", "example": "Released under MEL A, defect deferred" } } }, "wucher_internal_transport_http_dto_request.ComplaintNSRSignData": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintNSRSignAttributes" }, "type": { "type": "string", "enum": [ "complaint_nsr_sign", "complaint_nsr" ], "example": "complaint_nsr_sign" } } }, "wucher_internal_transport_http_dto_request.ComplaintNSRSignRequest": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintNSRSignData" } } }, "wucher_internal_transport_http_dto_request.ComplaintUpdateAttributes": { "type": "object", "properties": { "aircraft_hours_at_report": { "description": "AircraftHoursAtReport — airframe hours at report time.", "type": "string", "example": "1245.3" }, "description": { "description": "Description — defect description.", "type": "string", "example": "Engine 2 vibration confirmed" }, "mel_severity": { "description": "MELSeverity — MEL classification. 0 = NON-MEL (immediate AOG), 1 = A (1 day),\n2 = B (3 days), 3 = C (10 days), 4 = D (120 days). AOG after grace passes.", "type": "integer", "enum": [ 0, 1, 2, 3, 4 ], "example": 2 } } }, "wucher_internal_transport_http_dto_request.ComplaintUpdateData": { "type": "object", "required": [ "attributes", "id", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintUpdateAttributes" }, "id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "type": { "type": "string", "enum": [ "complaint_update", "complaint" ], "example": "complaint_update" } } }, "wucher_internal_transport_http_dto_request.ComplaintUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ComplaintUpdateData" } } }, "wucher_internal_transport_http_dto_request.DutyRosterAnyDeleteData": { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.DutyRosterAnyDeleteRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterAnyDeleteData" } } }, "wucher_internal_transport_http_dto_request.DutyRosterCreateAttributes": { "type": "object", "required": [ "base_id", "duty_date" ], "properties": { "base_id": { "type": "string" }, "duty_date": { "type": "string" }, "roster_detail": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDetailsInput" }, "shift_time": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterShiftTime" } } }, "wucher_internal_transport_http_dto_request.DutyRosterCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterCreateAttributes" }, "type": { "type": "string", "enum": [ "duty_roster_create", "duty_roster" ] } } }, "wucher_internal_transport_http_dto_request.DutyRosterCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterCreateData" } } }, "wucher_internal_transport_http_dto_request.DutyRosterCrewInput": { "type": "object", "properties": { "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "shift_date": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterShiftDate" } } }, "wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewAttributes": { "type": "object", "properties": { "roster_detail": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDetailsInput" } } }, "wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewByIDAttributes": { "type": "object", "required": [ "crew_id", "roster_id" ], "properties": { "crew_id": { "type": "string" }, "roster_id": { "type": "string" } } }, "wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewByIDData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewByIDAttributes" }, "type": { "type": "string", "enum": [ "duty_roster_crew_delete", "duty_roster_update", "duty_roster" ] } } }, "wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewByIDRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewByIDData" } } }, "wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewAttributes" }, "type": { "type": "string", "enum": [ "duty_roster_crew_delete", "duty_roster_update", "duty_roster" ] } } }, "wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDeleteCrewData" } } }, "wucher_internal_transport_http_dto_request.DutyRosterDetailsInput": { "type": "object", "properties": { "doctor": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterCrewInput" } }, "helper": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterCrewInput" } }, "other_person": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterOtherPersonInput" } }, "pilot": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterPilotCrewInput" } }, "rescuer": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterCrewInput" } } } }, "wucher_internal_transport_http_dto_request.DutyRosterOtherPersonInput": { "type": "object", "properties": { "email": { "type": "string", "example": "guest@example.com" }, "mobile_phone": { "type": "string", "example": "+43-1234" }, "name": { "type": "string", "example": "Guest Person" }, "other_person_id": { "description": "OtherPersonID — OPTIONAL master person id to reuse (from GET /contact/other).\nWhen set, name/mobile_phone/email are snapshotted from the master (may be omitted).", "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" } } }, "wucher_internal_transport_http_dto_request.DutyRosterPilotCrewInput": { "type": "object", "properties": { "co_pilot": { "type": "boolean" }, "crew_type": { "type": "string", "enum": [ "main", "additional" ], "example": "main" }, "examiner": { "type": "boolean" }, "flight_instructor": { "type": "boolean" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "line_checker": { "type": "boolean" }, "shift_date": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterShiftDate" }, "supervisor": { "type": "boolean" } } }, "wucher_internal_transport_http_dto_request.DutyRosterShiftDate": { "type": "object", "properties": { "date_end": { "type": "string", "example": "2026-03-16" }, "date_start": { "type": "string", "example": "2026-03-16" } } }, "wucher_internal_transport_http_dto_request.DutyRosterShiftTime": { "type": "object", "properties": { "shift_end": { "type": "string", "example": "21:00" }, "shift_start": { "type": "string", "example": "06:00" } } }, "wucher_internal_transport_http_dto_request.DutyRosterUpdateAttributes": { "type": "object", "properties": { "base_id": { "type": "string" }, "duty_date": { "type": "string" }, "roster_detail": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterDetailsInput" }, "shift_time": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterShiftTime" } } }, "wucher_internal_transport_http_dto_request.DutyRosterUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterUpdateAttributes" }, "id": { "type": "string" }, "type": { "type": "string", "enum": [ "duty_roster_update", "duty_roster" ] } } }, "wucher_internal_transport_http_dto_request.DutyRosterUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.DutyRosterUpdateData" } } }, "wucher_internal_transport_http_dto_request.EASAReleaseCreateAttributes": { "type": "object", "required": [ "helicopter_id" ], "properties": { "complaint_id": { "description": "ComplaintID — OPTIONAL complaint (UUIDv7) this release closes. Set it to scope the\nrelease to a specific defect; leave empty for a standalone (aircraft-clear) release.", "type": "string", "example": "019d6774-1111-7fba-9ef4-3795c0da8a13" }, "easa_ac_hours": { "type": "string", "example": "1245.3" }, "easa_date": { "type": "string", "example": "2026-06-16" }, "easa_location": { "type": "string", "example": "LOWI" }, "easa_maint_manual_rev_airframe": { "type": "string", "example": "Rev 12" }, "easa_maint_manual_rev_engine": { "type": "string", "example": "Rev 8" }, "easa_permit_no": { "type": "string", "example": "145.A.50" }, "easa_signer_id": { "description": "EASASignerID — OPTIONAL contact id (UUIDv7) of the signer/technician. Required only to sign.", "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "easa_wo_no": { "type": "string", "example": "WO-2026-001" }, "flight_id": { "description": "FlightID — OPTIONAL flight context. Used for the standalone (no-complaint) sign-off gate.", "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "helicopter_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "sign": { "description": "Sign, when true, signs the release immediately at creation. Requires all\nrequired fields to be present; otherwise the request is rejected.", "type": "boolean", "example": false } } }, "wucher_internal_transport_http_dto_request.EASAReleaseCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.EASAReleaseCreateAttributes" }, "type": { "type": "string", "enum": [ "easa_release_create", "easa_release" ], "example": "easa_release_create" } } }, "wucher_internal_transport_http_dto_request.EASAReleaseCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.EASAReleaseCreateData" } } }, "wucher_internal_transport_http_dto_request.EASAReleaseUpdateAttributes": { "type": "object", "properties": { "easa_ac_hours": { "type": "string", "example": "1245.3" }, "easa_date": { "type": "string", "example": "2026-06-16" }, "easa_location": { "type": "string", "example": "LOWI" }, "easa_maint_manual_rev_airframe": { "type": "string", "example": "Rev 12" }, "easa_maint_manual_rev_engine": { "type": "string", "example": "Rev 8" }, "easa_permit_no": { "type": "string", "example": "145.A.50" }, "easa_signer_id": { "description": "EASASignerID — OPTIONAL contact id (UUIDv7) of the signer/technician. Required only to sign.", "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "easa_wo_no": { "type": "string", "example": "WO-2026-001" } } }, "wucher_internal_transport_http_dto_request.EASAReleaseUpdateData": { "type": "object", "required": [ "attributes", "id", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.EASAReleaseUpdateAttributes" }, "id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "type": { "type": "string", "enum": [ "easa_release_update", "easa_release" ], "example": "easa_release_update" } } }, "wucher_internal_transport_http_dto_request.EASAReleaseUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.EASAReleaseUpdateData" } } }, "wucher_internal_transport_http_dto_request.FMReportUpdateAttributes": { "type": "object", "properties": { "engine1_gpc_n1": { "description": "Engine1GpcN1 - GPC/N1 value for engine 1. Optional.", "type": "string", "example": "GPC/N1 63.2" }, "engine1_ptc_n2": { "description": "Engine1PtcN2 - PTC/N2 value for engine 1. Optional.", "type": "string", "example": "PTC/N2 61.8" }, "engine2_gpc_n1": { "description": "Engine2GpcN1 - GPC/N1 value for engine 2. Optional.", "type": "string", "example": "GPC/N1 63.2" }, "engine2_ptc_n2": { "description": "Engine2PtcN2 - PTC/N2 value for engine 2. Optional.", "type": "string", "example": "PTC/N2 61.8" } } }, "wucher_internal_transport_http_dto_request.FMReportUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FMReportUpdateAttributes" }, "type": { "type": "string", "enum": [ "fm_report_update", "fm_report" ], "example": "fm_report_update" } } }, "wucher_internal_transport_http_dto_request.FMReportUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FMReportUpdateData" } } }, "wucher_internal_transport_http_dto_request.FileManagerAttachmentCreateAttributes": { "type": "object", "required": [ "file_id", "ref_id", "ref_type" ], "properties": { "category": { "type": "string", "example": "document" }, "file_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "is_primary": { "type": "boolean", "example": false }, "ref_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "ref_type": { "type": "string", "example": "helicopter" }, "sort_order": { "type": "integer", "example": 0 } } }, "wucher_internal_transport_http_dto_request.FileManagerAttachmentCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerAttachmentCreateAttributes" }, "type": { "type": "string", "enum": [ "file_manager_attachment_create", "file_manager_attachment" ], "example": "file_manager_attachment_create" } } }, "wucher_internal_transport_http_dto_request.FileManagerAttachmentCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerAttachmentCreateData" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileAircraftBulkCreateItem": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileAircraftCreateAttributes" }, "type": { "type": "string", "enum": [ "file_manager_file_create", "file_manager_file" ], "example": "file_manager_file_create" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileAircraftBulkCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileAircraftBulkCreateItem" } } } }, "wucher_internal_transport_http_dto_request.FileManagerFileAircraftCreateAttributes": { "type": "object", "required": [ "aircraft_uuid", "name", "upload_intent_uuid" ], "properties": { "aircraft_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "aircraft.jpg" }, "upload_intent_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileBaseBulkCreateItem": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileBaseCreateAttributes" }, "type": { "type": "string", "enum": [ "file_manager_file_create", "file_manager_file" ], "example": "file_manager_file_create" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileBaseBulkCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileBaseBulkCreateItem" } } } }, "wucher_internal_transport_http_dto_request.FileManagerFileBaseCreateAttributes": { "type": "object", "required": [ "base_uuid", "name", "upload_intent_uuid" ], "properties": { "base_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "base.jpg" }, "upload_intent_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileCancelUploadAttributes": { "type": "object", "required": [ "upload_intent_uuid" ], "properties": { "upload_intent_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileCancelUploadBulkRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileCancelUploadData" } } } }, "wucher_internal_transport_http_dto_request.FileManagerFileCancelUploadData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileCancelUploadAttributes" }, "type": { "type": "string", "enum": [ "file_manager_file_cancel_upload" ], "example": "file_manager_file_cancel_upload" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileDULBulkCreateItem": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileDULCreateAttributes" }, "type": { "type": "string", "enum": [ "file_manager_file_create", "file_manager_file" ], "example": "file_manager_file_create" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileDULBulkCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileDULBulkCreateItem" } } } }, "wucher_internal_transport_http_dto_request.FileManagerFileDULCreateAttributes": { "type": "object", "required": [ "name", "upload_intent_uuid" ], "properties": { "dul_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "dul.jpg" }, "upload_intent_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileMissionBulkCreateItem": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileMissionCreateAttributes" }, "type": { "type": "string", "enum": [ "file_manager_file_create", "file_manager_file" ], "example": "file_manager_file_create" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileMissionBulkCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileMissionBulkCreateItem" } } } }, "wucher_internal_transport_http_dto_request.FileManagerFileMissionCreateAttributes": { "type": "object", "required": [ "mission_uuid", "name", "upload_intent_uuid" ], "properties": { "mission_uuid": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "name": { "type": "string", "example": "mission-brief.pdf" }, "upload_intent_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileTakeoverBulkCreateItem": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileTakeoverCreateAttributes" }, "type": { "type": "string", "enum": [ "file_manager_file_create", "file_manager_file" ], "example": "file_manager_file_create" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileTakeoverBulkCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileTakeoverBulkCreateItem" } } } }, "wucher_internal_transport_http_dto_request.FileManagerFileTakeoverCreateAttributes": { "type": "object", "required": [ "name", "upload_intent_uuid" ], "properties": { "name": { "type": "string", "example": "takeover-report.pdf" }, "takeover_uuid": { "type": "string", "example": "019e8713-aa19-7fb7-a510-a0332dc69697" }, "upload_intent_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileTemplateCreateAttributes": { "type": "object", "required": [ "helicopter_id", "name", "template_uuid" ], "properties": { "helicopter_id": { "type": "string", "example": "019e8713-aa19-7fb7-a510-a0332dc69697" }, "name": { "type": "string", "example": "collabora-draft.docx" }, "takeover_id": { "type": "string", "example": "019e8713-aa19-7fb7-a510-a0332dc69697" }, "template_uuid": { "type": "string", "example": "019f0386-0a00-7a4a-a2d8-30afc0e0c3ad" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileTemplateCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileTemplateCreateAttributes" }, "type": { "type": "string", "enum": [ "file_manager_file_create_from_template", "file_manager_file_create" ] } } } } }, "wucher_internal_transport_http_dto_request.FileManagerFileUpdateAttributes": { "type": "object", "properties": { "folder_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "policy-v2.pdf" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "file_manager_file_update", "file_manager_file" ], "example": "file_manager_file_update" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUpdateData" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentAttributes": { "type": "object", "required": [ "content_type", "name", "size_bytes" ], "properties": { "content_type": { "type": "string", "example": "application/pdf" }, "name": { "type": "string", "example": "policy-final.pdf" }, "size_bytes": { "type": "integer", "minimum": 0, "example": 1024 } } }, "wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentBulkRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentData" } } } }, "wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUploadIntentAttributes" }, "type": { "type": "string", "enum": [ "file_manager_file_upload_intent" ], "example": "file_manager_file_upload_intent" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileUserBulkCreateItem": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUserCreateAttributes" }, "type": { "type": "string", "enum": [ "file_manager_file_create", "file_manager_file" ], "example": "file_manager_file_create" } } }, "wucher_internal_transport_http_dto_request.FileManagerFileUserBulkCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFileUserBulkCreateItem" } } } }, "wucher_internal_transport_http_dto_request.FileManagerFileUserCreateAttributes": { "type": "object", "required": [ "name", "upload_intent_uuid", "user_uuid" ], "properties": { "name": { "type": "string", "example": "profile.jpg" }, "upload_intent_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "user_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.FileManagerFolderCreateAttributes": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "example": "operations" }, "parent_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.FileManagerFolderCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFolderCreateAttributes" }, "type": { "type": "string", "enum": [ "file_manager_folder_create", "file_manager_folder" ], "example": "file_manager_folder_create" } } }, "wucher_internal_transport_http_dto_request.FileManagerFolderCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFolderCreateData" } } }, "wucher_internal_transport_http_dto_request.FileManagerFolderUpdateAttributes": { "type": "object", "properties": { "name": { "type": "string", "example": "operations-updated" }, "parent_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.FileManagerFolderUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFolderUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "file_manager_folder_update", "file_manager_folder" ], "example": "file_manager_folder_update" } } }, "wucher_internal_transport_http_dto_request.FileManagerFolderUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerFolderUpdateData" } } }, "wucher_internal_transport_http_dto_request.FileManagerNodeMoveBulkRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerNodeMoveItem" } } } }, "wucher_internal_transport_http_dto_request.FileManagerNodeMoveItem": { "type": "object", "required": [ "uuid" ], "properties": { "destination_folder_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.FileManagerNodePurgeBulkRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FileManagerNodePurgeItem" } } } }, "wucher_internal_transport_http_dto_request.FileManagerNodePurgeItem": { "type": "object", "required": [ "uuid" ], "properties": { "uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.FleetStatusCreateAttributes": { "type": "object", "required": [ "helicopter_id" ], "properties": { "files": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusFileAttributes" } }, "helicopter_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "maintenance_schedules": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.MaintenanceScheduleAttributes" } } } }, "wucher_internal_transport_http_dto_request.FleetStatusCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FleetStatusCreateAttributes" }, "type": { "type": "string", "enum": [ "fleet_status_create", "fleet_status" ], "example": "fleet_status_create" } } }, "wucher_internal_transport_http_dto_request.FleetStatusCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FleetStatusCreateData" } } }, "wucher_internal_transport_http_dto_request.FleetStatusSummaryAirframeUpdate": { "type": "object", "properties": { "cycles": { "type": "number", "example": 320 }, "hours": { "type": "number", "example": 6610.5 } } }, "wucher_internal_transport_http_dto_request.FleetStatusSummaryEngineUpdate": { "type": "object", "properties": { "ccc": { "type": "number", "example": 44 }, "gpc_ng_n1": { "type": "number", "example": 98.7 }, "hours": { "type": "number", "example": 8001.7 }, "ptc_nf_n2": { "type": "number", "example": 97.2 } } }, "wucher_internal_transport_http_dto_request.FleetStatusSummaryUpdate": { "type": "object", "properties": { "airframe": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FleetStatusSummaryAirframeUpdate" }, "engine_1": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FleetStatusSummaryEngineUpdate" }, "engine_2": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FleetStatusSummaryEngineUpdate" }, "flight_reports": { "type": "number", "example": 80 }, "hook_releases": { "type": "number", "example": 10 }, "landings": { "type": "number", "example": 120 }, "rotor_brake_cycles": { "type": "number", "example": 8 } } }, "wucher_internal_transport_http_dto_request.FleetStatusUpdateAttributes": { "type": "object", "properties": { "files": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusFileAttributes" } }, "helicopter_id": { "type": "string" }, "maintenance_schedules": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.MaintenanceScheduleAttributes" } }, "summary": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FleetStatusSummaryUpdate" } } }, "wucher_internal_transport_http_dto_request.FleetStatusUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FleetStatusUpdateAttributes" }, "id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "type": { "type": "string", "enum": [ "fleet_status_update", "fleet_status" ], "example": "fleet_status_update" } } }, "wucher_internal_transport_http_dto_request.FleetStatusUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FleetStatusUpdateData" } } }, "wucher_internal_transport_http_dto_request.FlightDataCreateAttributes": { "type": "object", "required": [ "mission_id" ], "properties": { "co_pilot_id": { "type": "string" }, "customer_name": { "type": "string" }, "delivery_note_number": { "type": "string" }, "engine": { "type": "string" }, "flight_duration_seconds": { "type": "integer" }, "flight_landing": { "type": "string" }, "flight_plan_distance": { "type": "number" }, "flight_plan_time_seconds": { "type": "integer" }, "flight_plan_true_course": { "type": "number" }, "flight_positioning": { "type": "boolean", "example": false }, "flight_red_seconds": { "type": "integer" }, "flight_take_off": { "type": "string" }, "from_hospital_id": { "type": "string" }, "from_icao_id": { "type": "string" }, "fuel_after_flight": { "type": "number" }, "fuel_before_flight": { "type": "number" }, "fuel_planning": { "type": "number" }, "fuel_upload": { "type": "number" }, "hec": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECAttributes" }, "heslo": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHESLOAttributes" }, "hook_releases": { "type": "integer" }, "landing_count": { "type": "integer" }, "logging": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOLoggingAttributes" }, "max_n1": { "type": "number" }, "max_n2": { "type": "number" }, "mission_id": { "type": "string" }, "other_information": { "type": "string" }, "pax_count": { "type": "integer" }, "rotor_brake_cycle": { "type": "integer" }, "ticket_no": { "type": "string" }, "to_hospital_id": { "type": "string" }, "to_icao_id": { "type": "string" } } }, "wucher_internal_transport_http_dto_request.FlightDataCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateAttributes" }, "type": { "type": "string", "enum": [ "flight_data_create", "flight_data" ], "example": "flight_data_create" } } }, "wucher_internal_transport_http_dto_request.FlightDataCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateData" } } }, "wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECAttributes": { "type": "object", "properties": { "flights": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECFlight" } }, "loads": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECLoad" } }, "slings": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECSling" } } } }, "wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECFlight": { "type": "object", "properties": { "equipment_id": { "description": "Facility category: hec-rope-label.", "type": "string", "example": "string" }, "equipment_name": { "type": "string", "example": "string" }, "hec_cycle": { "type": "integer", "example": 0 }, "rot": { "type": "integer", "example": 0 } } }, "wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECLoad": { "type": "object", "properties": { "load_category": { "description": "Weight band for the HEC load, e.g. \"bis 199 kg\", \"200-600 kg\", \"600-800 kg\", \"800-1000 kg\".", "type": "string", "example": "200-600 kg" }, "quantity": { "type": "integer", "example": 3 } } }, "wucher_internal_transport_http_dto_request.FlightDataCreateSPOHECSling": { "type": "object", "properties": { "sling_id": { "description": "Facility category: hec-rope-length.", "type": "string", "example": "string" }, "sling_name": { "type": "string", "example": "string" } } }, "wucher_internal_transport_http_dto_request.FlightDataCreateSPOHESLOAttributes": { "type": "object", "properties": { "flights": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHESLOFlight" } } } }, "wucher_internal_transport_http_dto_request.FlightDataCreateSPOHESLOFlight": { "type": "object", "properties": { "heslo_rope_label_id": { "description": "Facility category: heslo-rope-label.", "type": "string", "example": "string" }, "heslo_rope_label_name": { "type": "string", "example": "string" }, "rot": { "type": "integer", "example": 0 }, "slings": { "description": "Facility category: heslo-rope-length.", "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOHESLOSling" } } } }, "wucher_internal_transport_http_dto_request.FlightDataCreateSPOHESLOSling": { "type": "object", "properties": { "sling_id": { "description": "Facility category: heslo-rope-length.", "type": "string", "example": "string" }, "sling_name": { "type": "string", "example": "string" } } }, "wucher_internal_transport_http_dto_request.FlightDataCreateSPOLoggingAttributes": { "type": "object", "properties": { "slings": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateSPOLoggingSling" } } } }, "wucher_internal_transport_http_dto_request.FlightDataCreateSPOLoggingSling": { "type": "object", "properties": { "sling_id": { "description": "Facility category: heslo-hook.", "type": "string", "example": "string" }, "sling_name": { "type": "string", "example": "string" } } }, "wucher_internal_transport_http_dto_request.FlightDataUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataCreateAttributes" }, "type": { "type": "string", "enum": [ "flight_data_update" ], "example": "flight_data_update" } } }, "wucher_internal_transport_http_dto_request.FlightDataUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.FlightDataUpdateData" } } }, "wucher_internal_transport_http_dto_request.HelicopterCreateAttributes": { "type": "object", "required": [ "designation", "identifier", "type" ], "properties": { "aog": { "type": "boolean", "example": false }, "aog_reason": { "type": "string", "example": "Main rotor gearbox fault" }, "consumption_lt_min": { "type": "number", "example": 4.1 }, "designation": { "type": "string", "example": "OE-XHZ" }, "dry": { "type": "boolean", "example": false }, "engine_1": { "type": "string", "example": "TM" }, "engine_2": { "type": "string", "example": "TM" }, "file_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e90" }, "identifier": { "type": "string", "example": "ABC" }, "igb": { "type": "boolean", "example": false }, "is_active": { "type": "boolean", "example": true }, "lh": { "type": "boolean", "example": true }, "mgb": { "type": "boolean", "example": true }, "note": { "type": "string", "example": "Primary HEMS helicopter" }, "nr1": { "type": "boolean", "example": true }, "nr2": { "type": "boolean", "example": true }, "rh": { "type": "boolean", "example": true }, "sortkey": { "type": "integer", "example": 10 }, "tgb": { "type": "boolean", "example": true }, "type": { "type": "string", "example": "EC-135" }, "utc_offset": { "type": "integer", "example": -1 } } }, "wucher_internal_transport_http_dto_request.HelicopterCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterCreateAttributes" }, "type": { "type": "string", "enum": [ "helicopter_create", "helicopter" ], "example": "helicopter_create" } } }, "wucher_internal_transport_http_dto_request.HelicopterCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterCreateData" } } }, "wucher_internal_transport_http_dto_request.HelicopterFileCancelUploadAttributes": { "type": "object", "required": [ "upload_intent_uuid" ], "properties": { "upload_intent_uuid": { "type": "string", "example": "019d6d0d-2de2-7db1-80a2-2862d43af620" } } }, "wucher_internal_transport_http_dto_request.HelicopterFileCancelUploadBulkRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileCancelUploadData" } } } }, "wucher_internal_transport_http_dto_request.HelicopterFileCancelUploadData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileCancelUploadAttributes" }, "type": { "type": "string", "enum": [ "helicopter_file_cancel_upload" ], "example": "helicopter_file_cancel_upload" } } }, "wucher_internal_transport_http_dto_request.HelicopterFileCreateAttributes": { "type": "object", "required": [ "file_name", "section", "upload_intent_uuid" ], "properties": { "file_name": { "type": "string", "example": "Before Flight Checklist.pdf" }, "folder_uuid": { "type": "string", "example": "019d6d0d-8c24-72e3-9f58-c9ea0fbf0bb1" }, "helicopter_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "is_mandatory": { "type": "boolean", "example": true }, "position": { "type": "integer", "example": 1 }, "section": { "type": "string", "enum": [ "bfi", "fpwb", "afi" ], "example": "bfi" }, "upload_intent_uuid": { "type": "string", "example": "019d6d0d-2de2-7db1-80a2-2862d43af620" } } }, "wucher_internal_transport_http_dto_request.HelicopterFileCreateBulkRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileCreateData" } } } }, "wucher_internal_transport_http_dto_request.HelicopterFileCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileCreateAttributes" }, "type": { "type": "string", "enum": [ "helicopter_file_create", "helicopter_file" ], "example": "helicopter_file_create" } } }, "wucher_internal_transport_http_dto_request.HelicopterFileDeleteData": { "type": "object", "required": [ "id", "type" ], "properties": { "id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "type": { "type": "string", "enum": [ "helicopter_file_delete", "helicopter_file" ], "example": "helicopter_file_delete" } } }, "wucher_internal_transport_http_dto_request.HelicopterFileDeleteRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileDeleteData" } } }, "wucher_internal_transport_http_dto_request.HelicopterFileUpdateAttributes": { "type": "object", "properties": { "file_name": { "type": "string", "example": "Before Flight Checklist v2.pdf" }, "helicopter_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "is_mandatory": { "type": "boolean", "example": true }, "position": { "type": "integer", "example": 1 }, "section": { "type": "string", "enum": [ "bfi", "fpwb", "afi" ], "example": "fpwb" } } }, "wucher_internal_transport_http_dto_request.HelicopterFileUpdateBulkRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileUpdateData" } } } }, "wucher_internal_transport_http_dto_request.HelicopterFileUpdateData": { "type": "object", "required": [ "attributes", "id", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileUpdateAttributes" }, "id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "type": { "type": "string", "enum": [ "helicopter_file_update", "helicopter_file" ], "example": "helicopter_file_update" } } }, "wucher_internal_transport_http_dto_request.HelicopterFileUploadAttributes": { "type": "object", "required": [ "content_type", "name", "size_bytes" ], "properties": { "content_type": { "type": "string", "example": "application/pdf" }, "name": { "type": "string", "example": "Before Flight Checklist.pdf" }, "size_bytes": { "type": "integer", "minimum": 0, "example": 1024 } } }, "wucher_internal_transport_http_dto_request.HelicopterFileUploadBulkRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileUploadData" } } } }, "wucher_internal_transport_http_dto_request.HelicopterFileUploadData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterFileUploadAttributes" }, "type": { "type": "string", "enum": [ "helicopter_file_upload" ], "example": "helicopter_file_upload" } } }, "wucher_internal_transport_http_dto_request.HelicopterUpdateAttributes": { "type": "object", "properties": { "aog": { "type": "boolean", "example": false }, "aog_reason": { "type": "string", "example": "Main rotor gearbox fault" }, "consumption_lt_min": { "type": "number", "example": 4.1 }, "designation": { "type": "string", "example": "OE-XHZ" }, "dry": { "type": "boolean", "example": false }, "engine_1": { "type": "string", "example": "TM" }, "engine_2": { "type": "string", "example": "TM" }, "file_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e90" }, "identifier": { "type": "string", "example": "ABC" }, "igb": { "type": "boolean", "example": false }, "is_active": { "type": "boolean", "example": true }, "lh": { "type": "boolean", "example": true }, "mgb": { "type": "boolean", "example": true }, "note": { "type": "string", "example": "Primary HEMS helicopter" }, "nr1": { "type": "boolean", "example": true }, "nr2": { "type": "boolean", "example": true }, "rh": { "type": "boolean", "example": true }, "sortkey": { "type": "integer", "example": 10 }, "tgb": { "type": "boolean", "example": true }, "type": { "type": "string", "example": "EC-135" }, "utc_offset": { "type": "integer", "example": -1 } } }, "wucher_internal_transport_http_dto_request.HelicopterUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "helicopter_update", "helicopter" ], "example": "helicopter_update" } } }, "wucher_internal_transport_http_dto_request.HelicopterUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.HelicopterUpdateData" } } }, "wucher_internal_transport_http_dto_request.LastFlightsInspectionCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionUpsertAttributes" }, "type": { "type": "string", "enum": [ "last_flights_inspection_create", "last_flights_inspection" ] } } }, "wucher_internal_transport_http_dto_request.LastFlightsInspectionCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionCreateData" } } }, "wucher_internal_transport_http_dto_request.LastFlightsInspectionDeleteAttributes": { "type": "object", "required": [ "flight_inspection_id" ], "properties": { "flight_inspection_id": { "type": "string" } } }, "wucher_internal_transport_http_dto_request.LastFlightsInspectionDeleteData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionDeleteAttributes" }, "type": { "type": "string", "enum": [ "last_flights_inspection_delete", "last_flights_inspection" ] } } }, "wucher_internal_transport_http_dto_request.LastFlightsInspectionDeleteRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionDeleteData" } } }, "wucher_internal_transport_http_dto_request.LastFlightsInspectionUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionUpsertAttributes" }, "type": { "type": "string", "enum": [ "last_flights_inspection_update", "last_flights_inspection" ] } } }, "wucher_internal_transport_http_dto_request.LastFlightsInspectionUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.LastFlightsInspectionUpdateData" } } }, "wucher_internal_transport_http_dto_request.LastFlightsInspectionUpsertAttributes": { "type": "object", "required": [ "flight_inspection_id" ], "properties": { "file_checklist": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcFileChecklistItem" } }, "flight_inspection_id": { "type": "string" }, "hydraulic_lh_checked": { "type": "string" }, "hydraulic_rh_checked": { "type": "string" }, "note": { "type": "string" }, "oil_engine_nr1_checked": { "type": "string" }, "oil_engine_nr2_checked": { "type": "string" }, "oil_transmission_igb_checked": { "type": "string" }, "oil_transmission_mgb_checked": { "type": "string" }, "oil_transmission_tgb_checked": { "type": "string" } } }, "wucher_internal_transport_http_dto_request.MCFCompleteAttributes": { "type": "object", "properties": { "af_hours": { "type": "string", "example": "1245.3" }, "date": { "type": "string", "example": "2026-06-17" }, "landing_count": { "type": "integer", "example": 3 }, "notes": { "type": "string", "example": "Vibration within limits after check flight" }, "result": { "type": "string", "enum": [ "passed", "failed" ], "example": "passed" }, "sign": { "type": "boolean", "example": true }, "utc_time": { "type": "string", "example": "2026-06-17T08:30:00Z" } } }, "wucher_internal_transport_http_dto_request.MCFCompleteData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MCFCompleteAttributes" }, "type": { "type": "string", "enum": [ "mcf_complete", "mcf_sign", "mcf" ], "example": "mcf_sign" } } }, "wucher_internal_transport_http_dto_request.MCFCompleteRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MCFCompleteData" } } }, "wucher_internal_transport_http_dto_request.MCFSetAttributes": { "type": "object", "properties": { "active": { "type": "boolean", "example": true }, "af_hours": { "type": "string", "example": "1245.3" }, "date": { "type": "string", "example": "2026-06-17" }, "flight_id": { "description": "FlightID — OPTIONAL flight this check flight is performed on (on activate).", "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "landing_count": { "type": "integer", "example": 3 }, "notes": { "type": "string", "example": "MCF required after engine mount work" }, "result": { "type": "string", "enum": [ "passed", "failed" ], "example": "passed" }, "utc_time": { "type": "string", "example": "2026-06-17T08:30:00Z" } } }, "wucher_internal_transport_http_dto_request.MCFSetData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MCFSetAttributes" }, "type": { "type": "string", "enum": [ "mcf_set", "mcf" ], "example": "mcf_set" } } }, "wucher_internal_transport_http_dto_request.MCFSetRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MCFSetData" } } }, "wucher_internal_transport_http_dto_request.MasterSettingsCreateAttributes": { "type": "object", "required": [ "company_name" ], "properties": { "company_name": { "type": "string", "example": "Wucher" }, "cover_file_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "logo_file_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "subtitle": { "type": "string", "example": "Flight operations platform" }, "title": { "type": "string", "example": "Welcome to Wucher" } } }, "wucher_internal_transport_http_dto_request.MasterSettingsCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsCreateAttributes" }, "type": { "type": "string", "enum": [ "master_settings_create", "master_settings" ], "example": "master_settings_create" } } }, "wucher_internal_transport_http_dto_request.MasterSettingsCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsCreateData" } } }, "wucher_internal_transport_http_dto_request.MasterSettingsMicrosoftEntraUpsertAttributes": { "type": "object", "required": [ "MS_ENTRA_AUTHORITY", "MS_ENTRA_CLIENT_ID", "MS_ENTRA_REDIRECT_URL", "MS_ENTRA_SCOPES", "MS_ENTRA_TENANT_ID" ], "properties": { "MS_ENTRA_AUTHORITY": { "type": "string", "example": "https://login.microsoftonline.com/" }, "MS_ENTRA_CLIENT_ID": { "type": "string", "example": "your-client-id" }, "MS_ENTRA_CLIENT_SECRET": { "type": "string", "example": "********" }, "MS_ENTRA_REDIRECT_URL": { "type": "string", "example": "https://example.com/api/v1/auth/microsoft/callback" }, "MS_ENTRA_SCOPES": { "type": "string", "example": "openid,profile,email" }, "MS_ENTRA_TENANT_ID": { "type": "string", "example": "your-tenant-id" } } }, "wucher_internal_transport_http_dto_request.MasterSettingsMicrosoftEntraUpsertData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsMicrosoftEntraUpsertAttributes" }, "type": { "type": "string", "enum": [ "master_settings_microsoft_entra_upsert", "master_settings" ], "example": "master_settings_microsoft_entra_upsert" } } }, "wucher_internal_transport_http_dto_request.MasterSettingsMicrosoftEntraUpsertRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsMicrosoftEntraUpsertData" } } }, "wucher_internal_transport_http_dto_request.MasterSettingsUpdateAttributes": { "type": "object", "properties": { "company_name": { "type": "string", "example": "Wucher" }, "cover_file_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "logo_file_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "subtitle": { "type": "string", "example": "Flight operations platform" }, "title": { "type": "string", "example": "Welcome to Wucher" } } }, "wucher_internal_transport_http_dto_request.MasterSettingsUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsUpdateAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "enum": [ "master_settings_update", "master_settings" ], "example": "master_settings_update" } } }, "wucher_internal_transport_http_dto_request.MasterSettingsUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MasterSettingsUpdateData" } } }, "wucher_internal_transport_http_dto_request.MissionCreateAttributes": { "type": "object", "required": [ "flight_id", "type" ], "properties": { "files": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MissionFileInput" } }, "flight_id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "note": { "type": "string", "example": "Mission note" }, "subtype_id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a99" }, "type": { "type": "string", "example": "HEMS" } } }, "wucher_internal_transport_http_dto_request.MissionCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MissionCreateAttributes" }, "type": { "type": "string", "enum": [ "mission_create", "mission" ], "example": "mission_create" } } }, "wucher_internal_transport_http_dto_request.MissionCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MissionCreateData" } } }, "wucher_internal_transport_http_dto_request.MissionFileInput": { "type": "object", "properties": { "name": { "type": "string", "example": "mission-brief.pdf" }, "upload_intent_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.MissionTypeCreateAttributes": { "type": "object", "required": [ "code_type", "name" ], "properties": { "code_type": { "type": "string", "example": "HEMS" }, "name": { "type": "string", "example": "HEMS" } } }, "wucher_internal_transport_http_dto_request.MissionTypeCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MissionTypeCreateAttributes" }, "type": { "type": "string", "enum": [ "mission_type_create", "mission_type" ], "example": "mission_type_create" } } }, "wucher_internal_transport_http_dto_request.MissionTypeCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MissionTypeCreateData" } } }, "wucher_internal_transport_http_dto_request.MissionUpdateAttributes": { "type": "object", "required": [ "type" ], "properties": { "files": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MissionFileInput" } }, "note": { "type": "string", "example": "Mission note" }, "subtype_id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a99" }, "type": { "type": "string", "example": "SPO" } } }, "wucher_internal_transport_http_dto_request.MissionUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MissionUpdateAttributes" }, "type": { "type": "string", "enum": [ "mission_update", "mission" ], "example": "mission_update" } } }, "wucher_internal_transport_http_dto_request.MissionUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.MissionUpdateData" } } }, "wucher_internal_transport_http_dto_request.OtherPersonAttributesInput": { "type": "object", "properties": { "email": { "type": "string", "example": "guest@example.com" }, "mobile_phone": { "type": "string", "example": "+43-1234" }, "name": { "type": "string", "example": "Guest Person" } } }, "wucher_internal_transport_http_dto_request.OtherPersonRequest": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.OtherPersonRequestData" } } }, "wucher_internal_transport_http_dto_request.OtherPersonRequestData": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.OtherPersonAttributesInput" }, "type": { "type": "string", "example": "other_person" } } }, "wucher_internal_transport_http_dto_request.ReserveAcBeforeInspectionAttributes": { "type": "object", "properties": { "file_checklist": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcFileChecklistItem" } }, "fuel_added_amount": { "type": "number" }, "fuel_amount": { "type": "number" }, "fuel_unit": { "type": "string" }, "hydraulic_lh_checked": { "type": "boolean" }, "hydraulic_rh_checked": { "type": "boolean" }, "note": { "type": "string" }, "oil_engine_nr1_checked": { "type": "boolean" }, "oil_engine_nr2_checked": { "type": "boolean" }, "oil_transmission_igb_checked": { "type": "boolean" }, "oil_transmission_mgb_checked": { "type": "boolean" }, "oil_transmission_tgb_checked": { "type": "boolean" } } }, "wucher_internal_transport_http_dto_request.ReserveAcCreateAttributes": { "type": "object", "required": [ "flight_id", "helicopter_id", "inspection" ], "properties": { "flight_id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "helicopter_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcInspectionCreateAttributes" } } }, "wucher_internal_transport_http_dto_request.ReserveAcCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcCreateAttributes" }, "type": { "type": "string", "enum": [ "reserve_ac_create", "reserve_ac" ], "example": "reserve_ac_create" } } }, "wucher_internal_transport_http_dto_request.ReserveAcCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcCreateData" } } }, "wucher_internal_transport_http_dto_request.ReserveAcDeleteData": { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" } } }, "wucher_internal_transport_http_dto_request.ReserveAcDeleteRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcDeleteData" } } }, "wucher_internal_transport_http_dto_request.ReserveAcFileChecklistItem": { "type": "object", "required": [ "helicopter_file_id" ], "properties": { "helicopter_file_id": { "type": "string", "example": "019d7000-aaaa-7bbb-8ccc-111111111111" }, "is_done": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_request.ReserveAcFleetStatusFileAttributes": { "type": "object", "properties": { "file_checklist": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcFileChecklistItem" } } } }, "wucher_internal_transport_http_dto_request.ReserveAcInspectionCreateAttributes": { "type": "object", "required": [ "before", "inspection_date", "prepare" ], "properties": { "before": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcBeforeInspectionAttributes" }, "fleet_status_file": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcFleetStatusFileAttributes" }, "inspection_date": { "type": "string", "example": "2026-04-15" }, "prepare": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcPrepareInspectionAttributes" } } }, "wucher_internal_transport_http_dto_request.ReserveAcInspectionUpdateAttributes": { "type": "object", "properties": { "before": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcBeforeInspectionAttributes" }, "inspection_date": { "type": "string", "example": "2026-04-15" }, "prepare": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcPrepareInspectionAttributes" } } }, "wucher_internal_transport_http_dto_request.ReserveAcPrepareInspectionAttributes": { "type": "object", "properties": { "file_checklist": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcFileChecklistItem" } }, "notam_briefing": { "type": "boolean" }, "operational_flight_plan": { "type": "boolean" }, "weather_briefing": { "type": "boolean" } } }, "wucher_internal_transport_http_dto_request.ReserveAcUpdateAttributes": { "type": "object", "properties": { "flight_id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "helicopter_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcInspectionUpdateAttributes" } } }, "wucher_internal_transport_http_dto_request.ReserveAcUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcUpdateAttributes" }, "id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "type": { "type": "string", "enum": [ "reserve_ac_update", "reserve_ac" ], "example": "reserve_ac_update" } } }, "wucher_internal_transport_http_dto_request.ReserveAcUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcUpdateData" } } }, "wucher_internal_transport_http_dto_request.TakeoverBaseRef": { "type": "object", "properties": { "id": { "type": "string" } } }, "wucher_internal_transport_http_dto_request.TakeoverCreateAttributes": { "type": "object", "required": [ "duty_date" ], "properties": { "base_id": { "type": "string" }, "duty_date": { "type": "string" }, "edited_template_file_ids": { "type": "array", "items": { "type": "string" } }, "files": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateFileInput" } }, "helicopter_id": { "type": "string" }, "inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcInspectionCreateAttributes" }, "notes": { "type": "string" }, "roster_detail": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterDetailsInput" } } }, "wucher_internal_transport_http_dto_request.TakeoverCreateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateAttributes" }, "type": { "type": "string", "enum": [ "takeover_create", "takeover" ] } } }, "wucher_internal_transport_http_dto_request.TakeoverCreateFileInput": { "type": "object", "properties": { "file_id": { "type": "string", "example": "019e8713-aa19-7fb7-a510-a0332dc69697" }, "name": { "type": "string", "example": "takeover-report.pdf" }, "upload_intent_uuid": { "type": "string", "example": "019e8713-aa19-7fb7-a510-a0332dc69697" } } }, "wucher_internal_transport_http_dto_request.TakeoverCreateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateData" } } }, "wucher_internal_transport_http_dto_request.TakeoverRosterCrewInput": { "type": "object", "properties": { "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_request.TakeoverRosterDetailsInput": { "type": "object", "properties": { "doctor": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterCrewInput" } }, "helper": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterCrewInput" } }, "other_person": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterOtherPersonInput" } }, "pilot": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterPilotInput" } }, "rescuer": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterCrewInput" } } } }, "wucher_internal_transport_http_dto_request.TakeoverRosterOtherPersonInput": { "type": "object", "properties": { "email": { "type": "string", "example": "guest@example.com" }, "mobile_phone": { "type": "string", "example": "+43-1234" }, "name": { "type": "string", "example": "Guest Person" }, "other_person_id": { "description": "OtherPersonID — OPTIONAL master person id to reuse (from GET /contact/other).", "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" } } }, "wucher_internal_transport_http_dto_request.TakeoverRosterPilotInput": { "type": "object", "properties": { "co_pilot": { "type": "boolean" }, "crew_type": { "type": "string", "enum": [ "main", "additional" ], "example": "main" }, "examiner": { "type": "boolean" }, "flight_instructor": { "type": "boolean" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "line_checker": { "type": "boolean" }, "supervisor": { "type": "boolean" } } }, "wucher_internal_transport_http_dto_request.TakeoverUpdateAttributes": { "type": "object", "properties": { "base_id": { "type": "string" }, "bases": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverBaseRef" }, "duty_date": { "type": "string" }, "files": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateFileInput" } }, "files_add": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateFileInput" } }, "files_remove": { "type": "array", "items": { "type": "string" } }, "files_replace": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverCreateFileInput" } }, "helicopter_id": { "type": "string" }, "inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.ReserveAcInspectionCreateAttributes" }, "notes": { "type": "string" }, "roster_detail": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterDetailsInput" }, "roster_details": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverRosterDetailsInput" } } }, "wucher_internal_transport_http_dto_request.TakeoverUpdateData": { "type": "object", "required": [ "attributes", "type" ], "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverUpdateAttributes" }, "id": { "type": "string" }, "type": { "type": "string", "enum": [ "takeover_update", "takeover" ] } } }, "wucher_internal_transport_http_dto_request.TakeoverUpdateRequest": { "type": "object", "required": [ "data" ], "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_request.TakeoverUpdateData" } } }, "wucher_internal_transport_http_dto_response.ActionSignoffAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-06-16T03:04:05Z" }, "flight_id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "helicopter_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "signed": { "description": "Signed — true once checked; gates the maintenance release form.", "type": "boolean", "example": false }, "signed_at": { "description": "SignedAt / SignedBy — when/who signed; empty until signed.", "type": "string", "example": "2026-06-16T03:04:05Z" }, "signed_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "signed_by_name": { "description": "SignedByName / SignedByShort — resolved display name + 3-letter short of the signer.", "type": "string", "example": "John Doe" }, "signed_by_short": { "type": "string", "example": "JDO" }, "updated_at": { "type": "string", "example": "2026-06-16T03:04:05Z" } } }, "wucher_internal_transport_http_dto_response.ActionSignoffResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ActionSignoffAttributes" }, "id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "type": { "type": "string", "example": "action_signoff" } } }, "wucher_internal_transport_http_dto_response.ActionSignoffResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ActionSignoffResource" } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistAttributes": { "type": "object", "properties": { "bases": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.AirRescuerChecklistBaseInfo" }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "items": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemResource" } }, "position": { "type": "integer", "example": 1 }, "scope_code": { "type": "string", "example": "TU" }, "scope_code_de": { "type": "string", "example": "DI" }, "title": { "type": "string", "example": "Monday Checklist" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistBaseGroupAttributes": { "type": "object", "properties": { "bases": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.AirRescuerChecklistBaseInfo" }, "tabs": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistTabResource" } } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistBaseGroupResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistBaseGroupAttributes" }, "id": { "type": "string", "example": "base-018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "air_rescuer_checklist_group" } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistBulkResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistResource" } } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistCATChecklistSummary": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "position": { "type": "integer", "example": 1 }, "title": { "type": "string", "example": "Cockpit Flugretter" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistCATGroup": { "type": "object", "properties": { "checklists": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistCATChecklistSummary" } }, "scope_code": { "type": "string", "example": "DA" }, "scope_code_de": { "type": "string", "example": "TA" }, "scope_code_name": { "type": "string", "example": "Daily" }, "scope_code_name_de": { "type": "string", "example": "Taeglich" } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistGroupedDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistBaseGroupResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 8 }, "records_total": { "type": "integer", "example": 8 } } } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistGroupedListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistBaseGroupResource" } }, "meta": { "type": "object", "properties": { "total_bases": { "type": "integer", "example": 8 } } } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistItemAttributes": { "type": "object", "properties": { "checklist_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "Check radio" }, "position": { "type": "integer", "example": 1 }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistItemBulkResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemData" } } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistItemData": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "air_rescuer_checklist_item" } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistItemResource": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "Oxygen supply check" }, "position": { "type": "integer", "example": 1 }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistItemResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemData" } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "air_rescuer_checklist" } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistResource" } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistTabChecklistDetail": { "type": "object", "properties": { "checklist_items": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistItemResource" } }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "position": { "type": "integer", "example": 1 }, "title": { "type": "string", "example": "Monday Checklist" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" } } }, "wucher_internal_transport_http_dto_response.AirRescuerChecklistTabResource": { "type": "object", "properties": { "checklists": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistTabChecklistDetail" } }, "groups": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.AirRescuerChecklistCATGroup" } }, "scope_code": { "type": "string", "example": "DA" }, "scope_code_de": { "type": "string", "example": "TA" }, "scope_code_name": { "type": "string", "example": "Daily" }, "scope_code_name_de": { "type": "string", "example": "Taeglich" } } }, "wucher_internal_transport_http_dto_response.ComplaintAttributes": { "type": "object", "properties": { "action_signed": { "type": "boolean", "example": true }, "action_signed_at": { "type": "string", "example": "2026-06-15T03:04:05Z" }, "action_signed_by_name": { "type": "string", "example": "John Doe" }, "action_signed_by_short": { "type": "string", "example": "JDO" }, "action_taken": { "type": "string", "example": "tightened mount" }, "aircraft_hours_at_fix": { "type": "string", "example": "1250.1" }, "aircraft_hours_at_report": { "type": "string", "example": "1245.3" }, "created_at": { "type": "string", "example": "2026-06-15T03:04:05Z" }, "description": { "type": "string", "example": "Engine 2 N2 vibration intermittent during cruise above 110 KIAS" }, "flight_id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "helicopter": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusHelicopter" }, "helicopter_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "mel": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintMEL" }, "nsr": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintNSR" }, "reported_at": { "type": "string", "example": "2026-06-15T03:04:05Z" }, "reported_by": { "type": "string", "example": "John Doe" }, "reported_by_short": { "type": "string", "example": "JDO" }, "status": { "type": "string", "enum": [ "active_non_mel", "active_mel", "serviced" ], "example": "active_mel" }, "updated_at": { "type": "string", "example": "2026-06-15T03:04:05Z" } } }, "wucher_internal_transport_http_dto_response.ComplaintGroupedDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintHelicopterGroupResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 1 }, "records_total": { "type": "integer", "example": 1 } } } } }, "wucher_internal_transport_http_dto_response.ComplaintGroupedListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintHelicopterGroupResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 1 } } } } }, "wucher_internal_transport_http_dto_response.ComplaintHelicopterGroupAttributes": { "type": "object", "properties": { "complaints": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintResource" } }, "helicopter": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusHelicopter" } } }, "wucher_internal_transport_http_dto_response.ComplaintHelicopterGroupResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintHelicopterGroupAttributes" }, "type": { "type": "string", "example": "complaint_helicopter_group" } } }, "wucher_internal_transport_http_dto_response.ComplaintMEL": { "type": "object", "properties": { "classified_at": { "description": "ClassifiedAt / ClassifiedByName / ClassifiedByShort — when/who classified the MEL.", "type": "string", "example": "2026-06-15T03:04:05Z" }, "classified_by_name": { "type": "string", "example": "John Doe" }, "classified_by_short": { "type": "string", "example": "JDO" }, "deadline": { "description": "Deadline — grace deadline; after this the aircraft is AOG. null for NON-MEL.", "type": "string", "example": "2026-06-18T03:04:05Z" }, "severity": { "description": "Severity — MEL class: 0=NON-MEL, 1=A, 2=B, 3=C, 4=D. Always set (classification is required at creation).", "type": "integer", "enum": [ 0, 1, 2, 3, 4 ], "example": 2 }, "severity_label": { "description": "SeverityLabel — human label of the severity (NON-MEL/A/B/C/D).", "type": "string", "example": "B" } } }, "wucher_internal_transport_http_dto_response.ComplaintNSR": { "type": "object", "properties": { "decided_at": { "description": "DecidedAt / DecidedByName / DecidedByShort — when/who decided NSR (may differ from the reporter).", "type": "string", "example": "2026-06-15T03:04:05Z" }, "decided_by_name": { "type": "string", "example": "John Doe" }, "decided_by_short": { "type": "string", "example": "JDO" }, "is_nsr": { "description": "IsNSR — Non-Safety Release: true = aircraft released to fly despite the open defect.", "type": "boolean", "example": false }, "reason": { "description": "Reason — optional justification for the NSR decision.", "type": "string", "example": "not required" } } }, "wucher_internal_transport_http_dto_response.ComplaintResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintAttributes" }, "id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "type": { "type": "string", "example": "complaint" } } }, "wucher_internal_transport_http_dto_response.ComplaintResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ComplaintResource" } } }, "wucher_internal_transport_http_dto_response.DutyRosterAttributes": { "type": "object", "properties": { "bases": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterBaseInfo" }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "duty_date": { "type": "string", "example": "2026-03-16" }, "flight_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "helicopter": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterHelicopterSummary" }, "roster_detail": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterDetailsResponse" }, "shift_time": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterShiftTime" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" } } }, "wucher_internal_transport_http_dto_response.DutyRosterBaseGroupAttributes": { "type": "object", "properties": { "bases": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterBaseInfo" }, "rosters": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterGroupRoster" } } } }, "wucher_internal_transport_http_dto_response.DutyRosterBaseGroupResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterBaseGroupAttributes" }, "type": { "type": "string", "example": "hems_base_roster_group" } } }, "wucher_internal_transport_http_dto_response.DutyRosterBaseInfo": { "type": "object", "properties": { "base_abbreviation": { "type": "string", "example": "G1" }, "base_name": { "type": "string", "example": "Gallus 1 - Zurs Lech" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "shift_time": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterShiftTime" }, "type": { "type": "string", "example": "hems" } } }, "wucher_internal_transport_http_dto_response.DutyRosterCrew": { "type": "object", "properties": { "email": { "type": "string", "example": "doctor@example.com" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "mobile_phone": { "type": "string", "example": "+43-1234" }, "name": { "type": "string", "example": "Hunter Wolfgang" }, "role": { "type": "string", "example": "doctor" }, "shift_date": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterShiftDate" }, "shift_time": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterShiftTime" } } }, "wucher_internal_transport_http_dto_response.DutyRosterCrewDeleteAttributes": { "type": "object", "properties": { "deleted": { "type": "boolean", "example": true }, "deleted_count": { "type": "integer", "example": 1 }, "deleted_items": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterDeletedCrewItem" } } } }, "wucher_internal_transport_http_dto_response.DutyRosterCrewDeleteResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrewDeleteAttributes" }, "type": { "type": "string", "example": "duty_roster_crew_delete" } } }, "wucher_internal_transport_http_dto_response.DutyRosterCrewDeleteResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrewDeleteResource" } } }, "wucher_internal_transport_http_dto_response.DutyRosterDeletedCrewItem": { "type": "object", "properties": { "crew_type": { "type": "string", "example": "main" }, "date_end": { "type": "string", "example": "2026-03-22" }, "date_start": { "type": "string", "example": "2026-03-20" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "Pilot One" }, "role_code": { "type": "string", "example": "pilot" }, "roster_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "user_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_response.DutyRosterDetailsResponse": { "type": "object", "properties": { "doctor": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrew" } }, "helper": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrew" } }, "other_person": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrew" } }, "pilot": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterPilotCrew" } }, "rescuer": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterCrew" } } } }, "wucher_internal_transport_http_dto_response.DutyRosterGroupRoster": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "duty_date": { "type": "string", "example": "2026-03-16" }, "flight_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "helicopter": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterHelicopterSummary" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "roster_detail": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterDetailsResponse" }, "shift_time": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterShiftTime" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" } } }, "wucher_internal_transport_http_dto_response.DutyRosterGroupedDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterBaseGroupResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 8 }, "records_total": { "type": "integer", "example": 8 } } } } }, "wucher_internal_transport_http_dto_response.DutyRosterGroupedListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterBaseGroupResource" } }, "meta": { "type": "object", "properties": { "from": { "type": "string", "example": "2026-03-16" }, "to": { "type": "string", "example": "2026-04-15" }, "total_bases": { "type": "integer", "example": 8 } } } } }, "wucher_internal_transport_http_dto_response.DutyRosterHelicopterSummary": { "type": "object", "properties": { "designation": { "type": "string", "example": "OE-XHZ" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "identifier": { "type": "string", "example": "1234" }, "type": { "type": "string", "example": "EC-135" } } }, "wucher_internal_transport_http_dto_response.DutyRosterPilotCrew": { "type": "object", "properties": { "co_pilot": { "type": "boolean" }, "crew_type": { "type": "string", "example": "main" }, "email": { "type": "string", "example": "pilot@example.com" }, "examiner": { "type": "boolean" }, "flight_instructor": { "type": "boolean" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "line_checker": { "type": "boolean" }, "mobile_phone": { "type": "string", "example": "+43-1234" }, "name": { "type": "string", "example": "Hunter Wolfgang" }, "role": { "type": "string", "example": "pilot" }, "shift_date": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterShiftDate" }, "supervisor": { "type": "boolean" } } }, "wucher_internal_transport_http_dto_response.DutyRosterResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "duty_roster" } } }, "wucher_internal_transport_http_dto_response.DutyRosterResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterResource" } } }, "wucher_internal_transport_http_dto_response.DutyRosterShiftDate": { "type": "object", "properties": { "date_end": { "type": "string", "example": "2026-03-16" }, "date_start": { "type": "string", "example": "2026-03-16" } } }, "wucher_internal_transport_http_dto_response.DutyRosterShiftTime": { "type": "object", "properties": { "shift_end": { "type": "string", "example": "21:00" }, "shift_start": { "type": "string", "example": "06:00" } } }, "wucher_internal_transport_http_dto_response.EASAReleaseAttributes": { "type": "object", "properties": { "complaint_id": { "type": "string", "example": "019d6774-1111-7fba-9ef4-3795c0da8a13" }, "created_at": { "type": "string", "example": "2026-06-16T03:04:05Z" }, "easa_ac_hours": { "type": "string", "example": "1245.3" }, "easa_date": { "type": "string", "example": "2026-06-16" }, "easa_location": { "type": "string", "example": "LOWI" }, "easa_maint_manual_rev_airframe": { "type": "string", "example": "Rev 12" }, "easa_maint_manual_rev_engine": { "type": "string", "example": "Rev 8" }, "easa_permit_no": { "type": "string", "example": "145.A.50" }, "easa_signer_id": { "description": "EASASignerID — contact id (UUIDv7) of the signer/technician.", "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "easa_signer_name": { "description": "EASASignerName / EASASignerShort — resolved display name + 3-letter short of the signer contact.", "type": "string", "example": "John Doe" }, "easa_signer_short": { "type": "string", "example": "JDO" }, "easa_wo_no": { "type": "string", "example": "WO-2026-001" }, "flight_id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "helicopter_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "is_signed": { "description": "IsSigned — true once the release is signed (Release to Service); then the complaint becomes fixed.", "type": "boolean", "example": false }, "missing_sign_fields": { "description": "MissingSignFields — required fields still empty; must all be filled before it can be signed.", "type": "array", "items": { "type": "string" } }, "signed_at": { "description": "SignedAt / SignedBy — when/who signed; empty until signed.", "type": "string", "example": "2026-06-16T03:04:05Z" }, "signed_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "updated_at": { "type": "string", "example": "2026-06-16T03:04:05Z" } } }, "wucher_internal_transport_http_dto_response.EASAReleaseDeleteResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "deleted": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "easa_release_delete" } } } } }, "wucher_internal_transport_http_dto_response.EASAReleaseListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResource" } }, "meta": { "type": "object", "properties": { "total": { "type": "integer", "example": 1 } } } } }, "wucher_internal_transport_http_dto_response.EASAReleaseResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseAttributes" }, "id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "type": { "type": "string", "example": "easa_release" } } }, "wucher_internal_transport_http_dto_response.EASAReleaseResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.EASAReleaseResource" } } }, "wucher_internal_transport_http_dto_response.FileManagerActionBulkError": { "type": "object", "properties": { "code": { "type": "string", "example": "FILE_MANAGER_VALIDATION_FAILED" }, "detail": { "type": "string", "example": "duplicate name in target folder" }, "error_code": { "type": "string", "example": "4222111" }, "status": { "type": "integer", "example": 422 }, "title": { "type": "string", "example": "Validation error" } } }, "wucher_internal_transport_http_dto_response.FileManagerActionLocation": { "type": "object", "properties": { "folder_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_response.FileManagerAttachmentListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerAttachmentResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto_response.FileManagerAttachmentResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerAttachmentAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "file_manager_attachment" } } }, "wucher_internal_transport_http_dto_response.FileManagerAttachmentResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerAttachmentResource" } } }, "wucher_internal_transport_http_dto_response.FileManagerBreadcrumbItem": { "type": "object", "properties": { "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "operations" } } }, "wucher_internal_transport_http_dto_response.FileManagerFileBulkError": { "type": "object", "properties": { "code": { "type": "string", "example": "FILE_MANAGER_VALIDATION_FAILED" }, "detail": { "type": "string", "example": "duplicate name in target folder" }, "error_code": { "type": "string", "example": "4222111" }, "status": { "type": "integer", "example": 422 }, "title": { "type": "string", "example": "Validation error" } } }, "wucher_internal_transport_http_dto_response.FileManagerFileBulkItem": { "type": "object", "properties": { "error": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkError" }, "index": { "type": "integer", "example": 0 }, "message": { "type": "string", "example": "created" }, "resource": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileResource" }, "success": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_response.FileManagerFileBulkResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkItem" } }, "meta": { "type": "object", "properties": { "failed": { "type": "integer", "example": 1 }, "partial_success": { "type": "boolean", "example": true }, "success": { "type": "integer", "example": 2 }, "total": { "type": "integer", "example": 3 } } } } }, "wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadBulkItem": { "type": "object", "properties": { "error": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkError" }, "index": { "type": "integer", "example": 0 }, "resource": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadResource" }, "success": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadBulkResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadBulkItem" } }, "meta": { "type": "object", "properties": { "failed": { "type": "integer", "example": 1 }, "partial_success": { "type": "boolean", "example": true }, "success": { "type": "integer", "example": 2 }, "total": { "type": "integer", "example": 3 } } } } }, "wucher_internal_transport_http_dto_response.FileManagerFileCancelUploadResource": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "status": { "type": "string", "example": "canceled" } } }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "file_manager_file_cancel_upload_result" } } }, "wucher_internal_transport_http_dto_response.FileManagerFileDetailResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileDetailAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "file_manager_file" } } }, "wucher_internal_transport_http_dto_response.FileManagerFileDetailResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileDetailResource" } } }, "wucher_internal_transport_http_dto_response.FileManagerFileResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "file_manager_file" } } }, "wucher_internal_transport_http_dto_response.FileManagerFileResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "file_manager_file" } } } } }, "wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkItem": { "type": "object", "properties": { "error": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileBulkError" }, "index": { "type": "integer", "example": 0 }, "resource": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentResource" }, "success": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentBulkItem" } }, "meta": { "type": "object", "properties": { "failed": { "type": "integer", "example": 1 }, "partial_success": { "type": "boolean", "example": true }, "success": { "type": "integer", "example": 2 }, "total": { "type": "integer", "example": 3 } } } } }, "wucher_internal_transport_http_dto_response.FileManagerFileUploadIntentResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileUploadIntentAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "file_manager_file_upload_intent" } } }, "wucher_internal_transport_http_dto_response.FileManagerFileWOPISessionData": { "type": "object", "properties": { "access_token": { "type": "string", "example": "eyJhbGciOiJIUzI1NiIs..." }, "access_token_ttl": { "description": "AccessTokenTTL is the access token's absolute expiry time, in epoch\nmilliseconds (equal to the JWT exp claim), as required by WOPI/Collabora.", "type": "integer", "example": 1782971996000 }, "collabora_action": { "type": "string", "example": "https://collabora.example.com/browser/123?WOPISrc=..." }, "file_id": { "type": "string", "example": "019f0386-0a00-7a4a-a2d8-30afc0e0c3ad" } } }, "wucher_internal_transport_http_dto_response.FileManagerFileWOPISessionResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFileWOPISessionData" } } }, "wucher_internal_transport_http_dto_response.FileManagerFolderDetailResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFolderDetailAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "file_manager_folder" } } }, "wucher_internal_transport_http_dto_response.FileManagerFolderDetailResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFolderDetailResource" } } }, "wucher_internal_transport_http_dto_response.FileManagerFolderResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFolderAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "file_manager_folder" } } }, "wucher_internal_transport_http_dto_response.FileManagerFolderResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerFolderResource" } } }, "wucher_internal_transport_http_dto_response.FileManagerMoveNodeBulkItem": { "type": "object", "properties": { "error": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerActionBulkError" }, "index": { "type": "integer", "example": 0 }, "resource": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerMoveNodeResultResource" }, "success": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_response.FileManagerMoveNodeBulkResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerMoveNodeBulkItem" } }, "meta": { "type": "object", "properties": { "failed": { "type": "integer", "example": 1 }, "partial_success": { "type": "boolean", "example": true }, "success": { "type": "integer", "example": 2 }, "total": { "type": "integer", "example": 3 } } } } }, "wucher_internal_transport_http_dto_response.FileManagerMoveNodeResultAttributes": { "type": "object", "properties": { "location": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerActionLocation" }, "node_type": { "type": "string", "example": "folder" }, "status": { "type": "string", "example": "moved" } } }, "wucher_internal_transport_http_dto_response.FileManagerMoveNodeResultResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerMoveNodeResultAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "file_manager_move_result" } } }, "wucher_internal_transport_http_dto_response.FileManagerNodeAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "download_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=..." }, "extension": { "type": "string", "example": "pdf" }, "mime_type": { "type": "string", "example": "application/pdf" }, "name": { "type": "string", "example": "operations" }, "node_type": { "type": "string", "example": "folder" }, "parent_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "path_cache": { "type": "string", "example": "/root/operations" }, "size_bytes": { "type": "integer", "example": 1024 }, "status": { "type": "string", "example": "ready" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" } } }, "wucher_internal_transport_http_dto_response.FileManagerNodeListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerNodeResource" } }, "meta": { "type": "object", "properties": { "breadcrumb": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerBreadcrumbItem" } }, "files": { "type": "integer", "example": 8 }, "folders": { "type": "integer", "example": 4 }, "is_root": { "type": "boolean", "example": true }, "parent_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "total": { "type": "integer", "example": 12 } } } } }, "wucher_internal_transport_http_dto_response.FileManagerNodeResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerNodeAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "file_manager_node" } } }, "wucher_internal_transport_http_dto_response.FileManagerPurgeNodeBulkItem": { "type": "object", "properties": { "error": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerActionBulkError" }, "index": { "type": "integer", "example": 0 }, "resource": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerPurgeNodeResultResource" }, "success": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_response.FileManagerPurgeNodeBulkResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerPurgeNodeBulkItem" } }, "meta": { "type": "object", "properties": { "failed": { "type": "integer", "example": 1 }, "partial_success": { "type": "boolean", "example": true }, "success": { "type": "integer", "example": 2 }, "total": { "type": "integer", "example": 3 } } } } }, "wucher_internal_transport_http_dto_response.FileManagerPurgeNodeResultAttributes": { "type": "object", "properties": { "node_type": { "type": "string", "example": "folder" }, "status": { "type": "string", "example": "purged" } } }, "wucher_internal_transport_http_dto_response.FileManagerPurgeNodeResultResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerPurgeNodeResultAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "file_manager_purge_result" } } }, "wucher_internal_transport_http_dto_response.FileManagerTrashListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerTrashNodeResource" } }, "meta": { "type": "object", "properties": { "files": { "type": "integer", "example": 70 }, "folders": { "type": "integer", "example": 50 }, "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto_response.FileManagerTrashNodeAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-31T08:52:03Z" }, "download_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=..." }, "extension": { "type": "string", "example": "pdf" }, "mime_type": { "type": "string", "example": "application/pdf" }, "name": { "type": "string", "example": "Documents" }, "node_type": { "type": "string", "example": "folder" }, "path_cache": { "type": "string", "example": "/Documents" }, "size_bytes": { "type": "integer", "example": 123456 }, "trashed_at": { "type": "string", "example": "2026-04-01T10:00:00Z" }, "updated_at": { "type": "string", "example": "2026-03-31T08:52:03Z" } } }, "wucher_internal_transport_http_dto_response.FileManagerTrashNodeResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FileManagerTrashNodeAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "file_manager_trash_node" } } }, "wucher_internal_transport_http_dto_response.FleetHistoryEntry": { "type": "object", "properties": { "action": { "type": "string", "example": "easa_signed" }, "actor": { "type": "string", "example": "019e91e6-2908-7f37-93e6-015ed1b7587d" }, "actor_name": { "type": "string", "example": "John Doe" }, "at": { "type": "string", "example": "2026-06-17T10:15:00Z" }, "entity_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "entity_type": { "type": "string", "example": "easa_release" }, "message": { "type": "string", "example": "Release to Service (EASA signed)" } } }, "wucher_internal_transport_http_dto_response.FleetHistoryListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetHistoryEntry" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 1 } } } } }, "wucher_internal_transport_http_dto_response.FleetStatusAttributes": { "type": "object", "properties": { "complaints": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusComplaint" } }, "created_at": { "type": "string", "example": "2026-05-29T07:43:06Z" }, "created_by": { "type": "string", "example": "John Doe" }, "easa_release": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusEASARelease" }, "files": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusFile" } }, "helicopter": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusHelicopter" }, "maintenance_schedules": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.MaintenanceScheduleAttributes" } }, "mcf": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusMCF" }, "serviced_at": { "type": "string", "example": "2026-05-29T07:43:06Z" }, "status": { "type": "string", "enum": [ "active", "serviced" ], "example": "active" }, "summary": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusSummary" }, "updated_at": { "type": "string", "example": "2026-05-29T07:43:06Z" }, "updated_by": { "type": "string", "example": "John Doe" } } }, "wucher_internal_transport_http_dto_response.FleetStatusDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 20 }, "records_total": { "type": "integer", "example": 100 } } } } }, "wucher_internal_transport_http_dto_response.FleetStatusDeleteResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "deleted": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "fleet_status_delete" } } } } }, "wucher_internal_transport_http_dto_response.FleetStatusFile": { "type": "object", "properties": { "category": { "type": "string", "example": "wb" }, "download_url": { "type": "string", "example": "https://storage.example.com/fleet/wb.pdf?X-Amz-Signature=abc123" }, "file_attachment_id": { "type": "string", "example": "019d7000-aaaa-7bbb-8ccc-111111111111" }, "id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "is_mandatory": { "type": "boolean", "example": true }, "name": { "type": "string", "example": "weight_balance.pdf" }, "size_bytes": { "type": "integer", "example": 1024000 }, "thumbnail_download_url": { "type": "string", "example": "https://storage.example.com/fleet/wb.thumb.jpg?X-Amz-Signature=abc123" } } }, "wucher_internal_transport_http_dto_response.FleetStatusListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 100 } } } } }, "wucher_internal_transport_http_dto_response.FleetStatusMarkServicedResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "serviced": { "type": "boolean", "example": true } } }, "type": { "type": "string", "example": "fleet_status_mark_serviced" } } } } }, "wucher_internal_transport_http_dto_response.FleetStatusResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusAttributes" }, "id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "type": { "type": "string", "example": "fleet_status" } } }, "wucher_internal_transport_http_dto_response.FleetStatusResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FleetStatusResource" } } }, "wucher_internal_transport_http_dto_response.FlightAttributes": { "type": "object", "properties": { "code": { "type": "string", "example": "M-062226-001" }, "created_at": { "type": "string", "example": "2026-04-14T08:00:00Z" }, "created_by": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.UserRef" }, "date": { "type": "string", "example": "2026-04-14" }, "deleted_at": { "type": "string", "example": "2026-04-14T08:00:00Z" }, "deleted_by": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.UserRef" }, "draft": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDraftGroup" } }, "mission_id": { "type": "string", "example": "019e9640-f7af-7940-80e8-1e9a83013afb" }, "status": { "type": "string", "example": "draft" }, "steps": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightStepItem" } }, "takeover": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightTakeoverSummary" }, "total_draft": { "type": "integer", "example": 6 }, "updated_at": { "type": "string", "example": "2026-04-14T08:00:00Z" }, "updated_by": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.UserRef" } } }, "wucher_internal_transport_http_dto_response.FlightDailyInspectionSummary": { "type": "object", "properties": { "date": { "type": "string", "example": "17.04.2026" }, "id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "name": { "type": "string", "example": "Ganahl Stefan" }, "short_name": { "type": "string", "example": "GAN" }, "utc_time": { "type": "string", "example": "10:57" } } }, "wucher_internal_transport_http_dto_response.FlightDataAttributes": { "type": "object", "properties": { "co_pilot": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataCoPilotRef" }, "created_at": { "type": "string", "example": "2026-04-20T08:00:00Z" }, "created_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "customer_name": { "type": "string", "example": "Air Service" }, "delivery_note_number": { "type": "string", "example": "DN-1001" }, "engine": { "type": "string", "example": "PW207D1" }, "flight_duration_seconds": { "type": "integer", "example": 4500 }, "flight_landing": { "type": "string", "example": "2026-04-20T09:15:00Z" }, "flight_plan_distance": { "type": "number", "example": 120.5 }, "flight_plan_time_seconds": { "type": "integer", "example": 4200 }, "flight_plan_true_course": { "type": "number", "example": 182.3 }, "flight_positioning": { "type": "boolean", "example": false }, "flight_red_seconds": { "type": "integer", "example": 300 }, "flight_take_off": { "type": "string", "example": "2026-04-20T08:00:00Z" }, "from": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataLocationRef" }, "fuel_after_flight": { "type": "number", "example": 280 }, "fuel_before_flight": { "type": "number", "example": 420 }, "fuel_planning": { "type": "number", "example": 390 }, "fuel_upload": { "type": "number", "example": 100 }, "hec": { "allOf": [ { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHECDetails" } ], "x-note": "Only returned for SPO missions" }, "heslo": { "allOf": [ { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHESLODetails" } ], "x-note": "Only returned for SPO missions" }, "hook_releases": { "type": "integer", "example": 0 }, "landing_count": { "type": "integer", "example": 1 }, "logging": { "allOf": [ { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOLoggingDetails" } ], "x-note": "Only returned for SPO missions" }, "max_n1": { "type": "number", "example": 97.5 }, "max_n2": { "type": "number", "example": 98.1 }, "mission": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataMissionRef" }, "other_information": { "type": "string" }, "pax_count": { "type": "integer", "example": 4 }, "roster_details": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterDetailsResponse" }, "rotor_brake_cycle": { "type": "integer", "example": 1 }, "status": { "type": "string", "example": "in_progress" }, "ticket_no": { "type": "string", "example": "TKT-001" }, "to": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataLocationRef" }, "updated_at": { "type": "string", "example": "2026-04-20T08:00:00Z" }, "updated_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" } } }, "wucher_internal_transport_http_dto_response.FlightDataCoPilotRef": { "type": "object", "properties": { "email": { "type": "string", "example": "john.doe@example.com" }, "first_name": { "type": "string", "example": "John" }, "id": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "last_name": { "type": "string", "example": "Doe" } } }, "wucher_internal_transport_http_dto_response.FlightDataListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 1 } } } } }, "wucher_internal_transport_http_dto_response.FlightDataLocationRef": { "type": "object", "properties": { "code": { "type": "string", "example": "WIII" }, "id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "label": { "type": "string", "example": "WIII" }, "name": { "type": "string", "example": "General Hospital" }, "type": { "type": "string", "example": "icao" } } }, "wucher_internal_transport_http_dto_response.FlightDataMissionRef": { "type": "object", "properties": { "id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "type": { "type": "string", "example": "HEMS" } } }, "wucher_internal_transport_http_dto_response.FlightDataResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataAttributes" }, "id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "type": { "type": "string", "example": "flight_data" } } }, "wucher_internal_transport_http_dto_response.FlightDataResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataResource" } } }, "wucher_internal_transport_http_dto_response.FlightDataSPOHECDetails": { "type": "object", "properties": { "flights": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHECFlight" } }, "loads": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHECLoad" } }, "slings": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHECSling" } } } }, "wucher_internal_transport_http_dto_response.FlightDataSPOHECFlight": { "type": "object", "properties": { "equipment_id": { "description": "Facility category: hec-rope-label.", "type": "string" }, "equipment_name": { "type": "string" }, "hec_cycle": { "type": "integer" }, "id": { "type": "string" }, "rot": { "type": "integer" } } }, "wucher_internal_transport_http_dto_response.FlightDataSPOHECLoad": { "type": "object", "properties": { "id": { "type": "string" }, "load_category": { "description": "Weight band for the HEC load, e.g. \"bis 199 kg\", \"200-600 kg\", \"600-800 kg\", \"800-1000 kg\".", "type": "string", "example": "200-600 kg" }, "quantity": { "type": "integer", "example": 3 } } }, "wucher_internal_transport_http_dto_response.FlightDataSPOHECSling": { "type": "object", "properties": { "id": { "type": "string" }, "sling_id": { "description": "Facility category: hec-rope-length.", "type": "string" }, "sling_name": { "type": "string" } } }, "wucher_internal_transport_http_dto_response.FlightDataSPOHESLODetails": { "type": "object", "properties": { "flights": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHESLOFlight" } } } }, "wucher_internal_transport_http_dto_response.FlightDataSPOHESLOFlight": { "type": "object", "properties": { "heslo_rope_label_id": { "description": "Facility category: heslo-rope-label.", "type": "string" }, "heslo_rope_label_name": { "type": "string" }, "id": { "type": "string" }, "rot": { "type": "integer" }, "slings": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOHESLOSling" } } } }, "wucher_internal_transport_http_dto_response.FlightDataSPOHESLOSling": { "type": "object", "properties": { "id": { "type": "string" }, "sling_id": { "description": "Facility category: heslo-rope-length.", "type": "string" }, "sling_name": { "type": "string" } } }, "wucher_internal_transport_http_dto_response.FlightDataSPOLoggingDetails": { "type": "object", "properties": { "slings": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataSPOLoggingSling" } } } }, "wucher_internal_transport_http_dto_response.FlightDataSPOLoggingSling": { "type": "object", "properties": { "id": { "type": "string" }, "sling_id": { "description": "Facility category: heslo-hook.", "type": "string" }, "sling_name": { "type": "string" } } }, "wucher_internal_transport_http_dto_response.FlightDraftGroup": { "type": "object", "properties": { "items": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDraftItem" } }, "type": { "type": "string", "example": "HEMS" } } }, "wucher_internal_transport_http_dto_response.FlightDraftItem": { "type": "object", "properties": { "flight_data_id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a55" }, "id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "status": { "type": "string", "example": "draft" }, "type": { "type": "string", "example": "HEMS" } } }, "wucher_internal_transport_http_dto_response.FlightHelicopterSummary": { "type": "object", "properties": { "aog": { "type": "boolean", "example": false }, "designation": { "type": "string", "example": "AIRBUS H145" }, "id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "identifier": { "type": "string", "example": "D-HYAR" }, "is_active": { "type": "boolean", "example": true }, "type": { "type": "string", "example": "H145" } } }, "wucher_internal_transport_http_dto_response.FlightListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 1 } } } } }, "wucher_internal_transport_http_dto_response.FlightMissionTypeSummary": { "type": "object", "properties": { "completed": { "type": "integer", "example": 0 }, "draft": { "type": "integer", "example": 5 }, "type": { "type": "string", "example": "HEMS" } } }, "wucher_internal_transport_http_dto_response.FlightResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightAttributes" }, "id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "type": { "type": "string", "example": "flight" } } }, "wucher_internal_transport_http_dto_response.FlightStepItem": { "type": "object", "properties": { "complete": { "type": "boolean", "example": true }, "completed_at": { "type": "string", "example": "2026-04-14T08:00:00Z" }, "completed_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "mission_type": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightMissionTypeSummary" } }, "phase": { "type": "string", "example": "duty_roster" }, "position": { "type": "string", "example": "takeover" }, "status": { "type": "string", "example": "completed" }, "step": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto_response.FlightTakeoverSummary": { "type": "object", "properties": { "daily_inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDailyInspectionSummary" }, "helicopter": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightHelicopterSummary" }, "id": { "type": "string", "example": "019e8713-aa19-7fb7-a510-a0332dc69697" }, "roster_detail": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterDetailsResponse" } } }, "wucher_internal_transport_http_dto_response.HelicopterAttributes": { "type": "object", "properties": { "aog": { "type": "boolean", "example": false }, "aog_reason": { "type": "string", "example": "Main rotor gearbox fault" }, "consumption_lt_min": { "type": "number", "example": 4.1 }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.HelicopterAuditUser" }, "designation": { "type": "string", "example": "OE-XHZ" }, "dry": { "type": "boolean", "example": false }, "engine_1": { "type": "string", "example": "TM" }, "engine_2": { "type": "string", "example": "TM" }, "foto": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.HelicopterFoto" }, "identifier": { "type": "string", "example": "ABC-0001" }, "igb": { "type": "boolean", "example": false }, "is_active": { "type": "boolean", "example": true }, "is_in_use": { "type": "boolean", "example": false }, "last_daily_inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.HelicopterLastDailyInspection" }, "lh": { "type": "boolean", "example": true }, "maintenance_schedules": { "description": "MaintenanceSchedules mirrors the helicopter's latest fleet status. It\nalways lists every inspection type; entries without data are empty.", "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.MaintenanceScheduleAttributes" } }, "mgb": { "type": "boolean", "example": true }, "note": { "type": "string", "example": "Primary HEMS helicopter" }, "nr1": { "type": "boolean", "example": true }, "nr2": { "type": "boolean", "example": true }, "rh": { "type": "boolean", "example": true }, "sortkey": { "type": "integer", "example": 10 }, "status": { "description": "Status is the operational status of the helicopter (read-time derived).\nValues: \"available\", \"booked\", \"aog\", \"mcf\". Precedence: mcf \u003e aog \u003e booked \u003e available.\n\"booked\" = active flight assignment; \"aog\" = air_on_ground flag OR an open complaint\ngrounding it (non-MEL, or MEL past its grace deadline); \"mcf\" = a pending maintenance\ncheck flight (MCF created, not yet passed).", "type": "string", "enum": [ "available", "booked", "aog", "mcf" ], "example": "available" }, "tgb": { "type": "boolean", "example": true }, "type": { "type": "string", "example": "EC-135" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.HelicopterAuditUser" }, "utc_offset": { "type": "integer", "example": -1 } } }, "wucher_internal_transport_http_dto_response.HelicopterDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 12 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto_response.HelicopterFileBulkError": { "type": "object", "properties": { "code": { "type": "string", "example": "HELICOPTER_FILE_INVALID_PAYLOAD" }, "detail": { "type": "string", "example": "helicopter_id is invalid UUID" }, "error_code": { "type": "string", "example": "4220318" }, "status": { "type": "integer", "example": 422 }, "title": { "type": "string", "example": "Validation error" } } }, "wucher_internal_transport_http_dto_response.HelicopterFileCollectionAttachment": { "type": "object", "properties": { "download_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=..." }, "file_name": { "type": "string", "example": "Before Flight Checklist.pdf" }, "id": { "type": "string", "example": "019d6771-6c8e-7a2d-a7b8-03bcb65fcb3e" } } }, "wucher_internal_transport_http_dto_response.HelicopterFileCollectionAttributes": { "type": "object", "properties": { "files": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionSections" }, "helicopter": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionHelicopter" } } }, "wucher_internal_transport_http_dto_response.HelicopterFileCollectionHelicopter": { "type": "object", "properties": { "id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "name": { "type": "string", "example": "AIRBUS H145" } } }, "wucher_internal_transport_http_dto_response.HelicopterFileCollectionItem": { "type": "object", "properties": { "attachment": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionAttachment" }, "attachment_pending": { "type": "boolean", "example": true }, "created_at": { "type": "string", "example": "2026-04-14T08:00:00Z" }, "created_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "helicopter_file_id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "is_mandatory": { "type": "boolean", "example": true }, "is_template": { "type": "boolean", "example": true }, "position": { "type": "integer", "example": 1 }, "section": { "type": "string", "example": "bfi" }, "updated_at": { "type": "string", "example": "2026-04-14T08:00:00Z" }, "updated_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" } } }, "wucher_internal_transport_http_dto_response.HelicopterFileCollectionListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionResponse" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 1 } } } } }, "wucher_internal_transport_http_dto_response.HelicopterFileCollectionResponse": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionAttributes" }, "type": { "type": "string", "example": "helicopter_file_collection" } } }, "wucher_internal_transport_http_dto_response.HelicopterFileCollectionSections": { "type": "object", "properties": { "after": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionItem" } }, "before": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionItem" } }, "prepare": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCollectionItem" } } } }, "wucher_internal_transport_http_dto_response.HelicopterFileCreateBulkItem": { "type": "object", "properties": { "error": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileBulkError" }, "index": { "type": "integer", "example": 0 }, "resource": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.Resource" }, "success": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_response.HelicopterFileCreateBulkResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileCreateBulkItem" } }, "meta": { "type": "object", "properties": { "failed": { "type": "integer", "example": 1 }, "partial_success": { "type": "boolean", "example": true }, "success": { "type": "integer", "example": 2 }, "total": { "type": "integer", "example": 3 } } } } }, "wucher_internal_transport_http_dto_response.HelicopterFileDeleteAttributes": { "type": "object", "properties": { "deleted": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_response.HelicopterFileDeleteResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileDeleteAttributes" }, "type": { "type": "string", "example": "helicopter_file_delete" } } }, "wucher_internal_transport_http_dto_response.HelicopterFileDeleteResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileDeleteResource" } } }, "wucher_internal_transport_http_dto_response.HelicopterFileResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.HelicopterFileAttributes" }, "id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "type": { "type": "string", "example": "helicopter_file" } } }, "wucher_internal_transport_http_dto_response.HelicopterFileResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileResource" } } }, "wucher_internal_transport_http_dto_response.HelicopterFileUpdateBulkItem": { "type": "object", "properties": { "error": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileBulkError" }, "index": { "type": "integer", "example": 0 }, "resource": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.Resource" }, "success": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_response.HelicopterFileUpdateBulkResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUpdateBulkItem" } }, "meta": { "type": "object", "properties": { "failed": { "type": "integer", "example": 1 }, "partial_success": { "type": "boolean", "example": true }, "success": { "type": "integer", "example": 2 }, "total": { "type": "integer", "example": 3 } } } } }, "wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentBulkItem": { "type": "object", "properties": { "error": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileBulkError" }, "index": { "type": "integer", "example": 0 }, "resource": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentResource" }, "success": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentBulkResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentBulkItem" } }, "meta": { "type": "object", "properties": { "failed": { "type": "integer", "example": 1 }, "partial_success": { "type": "boolean", "example": true }, "success": { "type": "integer", "example": 2 }, "total": { "type": "integer", "example": 3 } } } } }, "wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileUploadIntentAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "helicopter_file_upload_intent" } } }, "wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterFileUploadIntentResource" } } }, "wucher_internal_transport_http_dto_response.HelicopterListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto_response.HelicopterNextReportNumberAttributes": { "type": "object", "properties": { "identifier": { "type": "string", "example": "ABC" }, "report_number": { "type": "string", "example": "ABC-0001" }, "sequence": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto_response.HelicopterNextReportNumberResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterNextReportNumberAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "helicopter_report_number" } } }, "wucher_internal_transport_http_dto_response.HelicopterNextReportNumberResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterNextReportNumberResource" } } }, "wucher_internal_transport_http_dto_response.HelicopterResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "helicopter" } } }, "wucher_internal_transport_http_dto_response.HelicopterResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.HelicopterResource" } } }, "wucher_internal_transport_http_dto_response.MCFAttributes": { "type": "object", "properties": { "af_hours": { "type": "string", "example": "1245.3" }, "completed_at": { "type": "string", "example": "2026-06-16T03:04:05Z" }, "completed_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "created_at": { "type": "string", "example": "2026-06-16T03:04:05Z" }, "date": { "type": "string", "example": "2026-06-17" }, "decided_at": { "type": "string", "example": "2026-06-16T03:04:05Z" }, "decided_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "flight_id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "helicopter_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "is_cleared": { "type": "boolean", "example": false }, "is_complete": { "type": "boolean", "example": false }, "is_pending": { "type": "boolean", "example": true }, "landing_count": { "type": "integer", "example": 3 }, "notes": { "type": "string", "example": "Vibration within limits" }, "result": { "type": "string", "enum": [ "passed", "failed" ], "example": "passed" }, "updated_at": { "type": "string", "example": "2026-06-16T03:04:05Z" }, "utc_time": { "type": "string", "example": "2026-06-17T08:30:00Z" } } }, "wucher_internal_transport_http_dto_response.MCFListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MCFResource" } }, "meta": { "type": "object", "properties": { "total": { "type": "integer", "example": 1 } } } } }, "wucher_internal_transport_http_dto_response.MCFResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MCFAttributes" }, "id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "type": { "type": "string", "example": "mcf" } } }, "wucher_internal_transport_http_dto_response.MCFResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MCFResource" } } }, "wucher_internal_transport_http_dto_response.MasterSettingsAttributes": { "type": "object", "properties": { "company_name": { "type": "string", "example": "Wucher" }, "cover_file_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "cover_original_size_bytes": { "type": "integer", "example": 2048000 }, "cover_thumbnail_url": { "type": "string", "example": "https://cdn.example.com/cover.thumb.png" }, "cover_url": { "type": "string", "example": "https://cdn.example.com/cover.png" }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "logo_file_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "logo_original_size_bytes": { "type": "integer", "example": 1024000 }, "logo_thumbnail_url": { "type": "string", "example": "https://cdn.example.com/logo.thumb.png" }, "logo_url": { "type": "string", "example": "https://cdn.example.com/logo.png" }, "subtitle": { "type": "string", "example": "Flight operations platform" }, "title": { "type": "string", "example": "Welcome to Wucher" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraAttributes": { "type": "object", "properties": { "MS_ENTRA_AUTHORITY": { "type": "string", "example": "https://login.microsoftonline.com/" }, "MS_ENTRA_CLIENT_ID": { "type": "string", "example": "your-client-id" }, "MS_ENTRA_CLIENT_SECRET": { "type": "string", "example": "********" }, "MS_ENTRA_REDIRECT_URL": { "type": "string", "example": "https://example.com/api/v1/auth/microsoft/callback" }, "MS_ENTRA_SCOPES": { "type": "string", "example": "openid,profile,email" }, "MS_ENTRA_TENANT_ID": { "type": "string", "example": "your-tenant-id" } } }, "wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraAttributes" }, "type": { "type": "string", "example": "master_settings_microsoft_entra_sso" } } }, "wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsMicrosoftEntraResource" } } }, "wucher_internal_transport_http_dto_response.MasterSettingsResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsAttributes" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "master_settings" } } }, "wucher_internal_transport_http_dto_response.MasterSettingsResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MasterSettingsResource" } } }, "wucher_internal_transport_http_dto_response.MissionAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-04-20T08:00:00Z" }, "created_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "end_time": { "type": "string", "example": "22:05" }, "files": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionFileItem" } }, "flight": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionFlightRef" }, "forms": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionForms" }, "mission_code": { "type": "string", "example": "HEMS-26-1" }, "note": { "type": "string", "example": "Mission note" }, "start_time": { "type": "string", "example": "04:49" }, "status": { "type": "string", "example": "completed" }, "subtypes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionSubtypeRef" }, "type": { "type": "string", "example": "HEMS" }, "updated_at": { "type": "string", "example": "2026-04-20T08:00:00Z" }, "updated_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" } } }, "wucher_internal_transport_http_dto_response.MissionDataTableResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionResource" } }, "meta": { "type": "object", "properties": { "draw": { "type": "integer", "example": 1 }, "records_filtered": { "type": "integer", "example": 42 }, "records_total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto_response.MissionFileItem": { "type": "object", "properties": { "attachment_id": { "type": "string", "example": "019d6771-6c8e-7a2d-a7b8-03bcb65fcb3e" }, "download_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/brief.pdf?X-Amz-Signature=..." }, "file_name": { "type": "string", "example": "mission-brief.pdf" }, "id": { "type": "string", "example": "019d6771-6c8e-7a2d-a7b8-03bcb65fcb3e" }, "thumbnail_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/thumbnails/2026/04/05/brief.png?X-Amz-Signature=..." } } }, "wucher_internal_transport_http_dto_response.MissionFlightRef": { "type": "object", "properties": { "code": { "type": "string", "example": "M-062226-001" }, "date": { "type": "string", "example": "2026-04-20" }, "id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" } } }, "wucher_internal_transport_http_dto_response.MissionForms": { "type": "object", "properties": { "flight_data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.FlightDataResource" } } } }, "wucher_internal_transport_http_dto_response.MissionListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 120 } } } } }, "wucher_internal_transport_http_dto_response.MissionResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionAttributes" }, "id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "type": { "type": "string", "example": "mission" } } }, "wucher_internal_transport_http_dto_response.MissionResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionResource" } } }, "wucher_internal_transport_http_dto_response.MissionSubtypeRef": { "type": "object", "properties": { "id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a99" }, "subtype": { "type": "string", "example": "PRIM" }, "subtype_name": { "type": "string", "example": "Nicht transportfaehig" } } }, "wucher_internal_transport_http_dto_response.MissionTypeAttributes": { "type": "object", "properties": { "code": { "type": "string", "example": "HEMS" }, "name": { "type": "string", "example": "HEMS" }, "subtypes": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionTypeSubtypeItem" } } } }, "wucher_internal_transport_http_dto_response.MissionTypeListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionTypeResource" } } } }, "wucher_internal_transport_http_dto_response.MissionTypeResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.MissionTypeAttributes" }, "id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a77" }, "type": { "type": "string", "example": "mission_type" } } }, "wucher_internal_transport_http_dto_response.MissionTypeSubtypeItem": { "type": "object", "properties": { "code": { "type": "string", "example": "PRIM" }, "id": { "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a99" }, "name": { "type": "string", "example": "Primary" }, "task_name": { "type": "string", "example": "Nicht transportfaehig" } } }, "wucher_internal_transport_http_dto_response.OtherPersonAttributes": { "type": "object", "properties": { "email": { "type": "string", "example": "guest@example.com" }, "mobile_phone": { "type": "string", "example": "+43-1234" }, "name": { "type": "string", "example": "Guest Person" } } }, "wucher_internal_transport_http_dto_response.OtherPersonListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.OtherPersonResource" } }, "meta": { "type": "object", "properties": { "total": { "type": "integer", "example": 1 } } } } }, "wucher_internal_transport_http_dto_response.OtherPersonResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.OtherPersonAttributes" }, "id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "type": { "type": "string", "example": "other_person" } } }, "wucher_internal_transport_http_dto_response.OtherPersonResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.OtherPersonResource" } } }, "wucher_internal_transport_http_dto_response.ReserveAcListResponse": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ReserveAcResource" } }, "meta": { "type": "object", "properties": { "page_number": { "type": "integer", "example": 1 }, "page_size": { "type": "integer", "example": 20 }, "total": { "type": "integer", "example": 1 } } } } }, "wucher_internal_transport_http_dto_response.ReserveAcResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcAttributes" }, "id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "type": { "type": "string", "example": "reserve_ac" } } }, "wucher_internal_transport_http_dto_response.ReserveAcResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.ReserveAcResource" } } }, "wucher_internal_transport_http_dto_response.TakeoverDutyRosterCrew": { "type": "object", "properties": { "email": { "type": "string", "example": "doctor@example.com" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "mobile_phone": { "type": "string", "example": "+43-1234" }, "name": { "type": "string", "example": "Hunter Wolfgang" }, "role": { "type": "string", "example": "doctor" } } }, "wucher_internal_transport_http_dto_response.TakeoverDutyRosterDetailsResponse": { "type": "object", "properties": { "doctor": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterCrew" } }, "helper": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterCrew" } }, "other_person": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterCrew" } }, "pilot": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterPilotCrew" } }, "rescuer": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterCrew" } } } }, "wucher_internal_transport_http_dto_response.TakeoverDutyRosterPilotCrew": { "type": "object", "properties": { "co_pilot": { "type": "boolean" }, "crew_type": { "type": "string", "example": "main" }, "email": { "type": "string", "example": "pilot@example.com" }, "examiner": { "type": "boolean" }, "flight_instructor": { "type": "boolean" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "line_checker": { "type": "boolean" }, "mobile_phone": { "type": "string", "example": "+43-1234" }, "name": { "type": "string", "example": "Hunter Wolfgang" }, "role": { "type": "string", "example": "pilot" }, "supervisor": { "type": "boolean" } } }, "wucher_internal_transport_http_dto_response.TakeoverFileAttributes": { "type": "object", "properties": { "download_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/takeover-report.pdf?X-Amz-Signature=..." }, "file_attachment_id": { "type": "string", "example": "019d7000-aaaa-7bbb-8ccc-222222222222" }, "file_name": { "type": "string", "example": "takeover-report.pdf" } } }, "wucher_internal_transport_http_dto_response.TakeoverFileResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverFileAttributes" }, "id": { "type": "string", "example": "019d7000-aaaa-7bbb-8ccc-111111111111" }, "type": { "type": "string", "example": "takeover_file" } } }, "wucher_internal_transport_http_dto_response.TakeoverHelicopter": { "type": "object", "properties": { "designation": { "type": "string", "example": "OE-XHZ" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "identifier": { "type": "string", "example": "1234" }, "last_daily_inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.HelicopterLastDailyInspection" }, "maintenance_schedules": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.MaintenanceScheduleAttributes" } }, "type": { "type": "string", "example": "EC-135" } } }, "wucher_internal_transport_http_dto_response.TakeoverResource": { "type": "object", "properties": { "attributes": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverResponseAttributes" }, "type": { "type": "string", "example": "takeover" } } }, "wucher_internal_transport_http_dto_response.TakeoverResponse": { "type": "object", "properties": { "data": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverResource" } } }, "wucher_internal_transport_http_dto_response.TakeoverResponseAttributes": { "type": "object", "properties": { "base": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.DutyRosterBaseInfo" }, "base_id": { "type": "string" }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "duty_date": { "type": "string" }, "files": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverFileResource" } }, "flight_id": { "type": "string" }, "flight_inspection_id": { "type": "string" }, "helicopter": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverHelicopter" }, "helicopter_id": { "type": "string" }, "id": { "type": "string" }, "inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcInspectionSummary" }, "notes": { "type": "string" }, "reserve_ac_id": { "type": "string" }, "roster_detail": { "$ref": "#/definitions/wucher_internal_transport_http_dto_response.TakeoverDutyRosterDetailsResponse" }, "shift_end": { "type": "string" }, "shift_start": { "type": "string" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_response.UserRef": { "type": "object", "properties": { "name": { "type": "string", "example": "Ganahl Stefan" }, "uuid": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" } } }, "wucher_internal_transport_http_dto_shared.AirRescuerChecklistBaseInfo": { "type": "object", "properties": { "base_abbreviation": { "type": "string", "example": "G1" }, "base_category": { "type": "string", "example": "hems" }, "base_name": { "type": "string", "example": "Gallus 1 - Zurs Lech" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_shared.AirRescuerChecklistItemInput": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "example": "Oxygen supply check" }, "position": { "type": "integer", "example": 1 } } }, "wucher_internal_transport_http_dto_shared.FileManagerAttachmentAttributes": { "type": "object", "properties": { "attached_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "category": { "type": "string", "example": "document" }, "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "file_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "is_primary": { "type": "boolean", "example": false }, "ref_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "ref_type": { "type": "string", "example": "helicopter" }, "sort_order": { "type": "integer", "example": 0 }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" } } }, "wucher_internal_transport_http_dto_shared.FileManagerFileAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "download_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=..." }, "extension": { "type": "string", "example": "pdf" }, "failed_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "failure_reason": { "type": "string", "example": "" }, "file_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "folder_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "is_template": { "type": "boolean", "example": true }, "mime_type": { "type": "string", "example": "application/pdf" }, "name": { "type": "string", "example": "policy.pdf" }, "name_normalized": { "type": "string", "example": "policy.pdf" }, "processed_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "processing_started_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "purge_at": { "type": "string", "example": "2026-04-12T03:04:05Z" }, "size_bytes": { "type": "integer", "example": 1024 }, "status": { "type": "string", "example": "validated" }, "trashed_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "upload_error": { "type": "string", "example": "" }, "validated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" } } }, "wucher_internal_transport_http_dto_shared.FileManagerFileAuditAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_shared.FileManagerFileDetailAttributes": { "type": "object", "properties": { "audit": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileAuditAttributes" }, "download_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=..." }, "extension": { "type": "string", "example": "pdf" }, "is_template": { "type": "boolean", "example": true }, "location": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileLocationAttributes" }, "mime_type": { "type": "string", "example": "application/pdf" }, "name": { "type": "string", "example": "policy.pdf" }, "name_normalized": { "type": "string", "example": "policy.pdf" }, "preview_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.preview.pdf?X-Amz-Signature=..." }, "processing": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFileProcessingAttributes" }, "size_bytes": { "type": "integer", "example": 1024 }, "status": { "type": "string", "example": "ready" } } }, "wucher_internal_transport_http_dto_shared.FileManagerFileLocationAttributes": { "type": "object", "properties": { "folder_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_shared.FileManagerFileProcessingAttributes": { "type": "object", "properties": { "failed_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "failure_reason": { "type": "string", "example": "processing validation failed" }, "processed_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "processing_started_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "validated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" } } }, "wucher_internal_transport_http_dto_shared.FileManagerFileUploadIntentAttributes": { "type": "object", "properties": { "expires_at": { "type": "string", "example": "2026-04-05T07:29:34Z" }, "expires_in_seconds": { "type": "integer", "example": 900 }, "file": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileUploadFile" }, "method": { "type": "string", "example": "PUT" }, "object": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileUploadObject" }, "required_headers": { "type": "object", "additionalProperties": { "type": "string" } }, "upload_intent_uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "upload_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/..." } } }, "wucher_internal_transport_http_dto_shared.FileManagerFolderAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "deleted_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "deleted_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "depth": { "type": "integer", "example": 1 }, "name": { "type": "string", "example": "operations" }, "name_normalized": { "type": "string", "example": "operations" }, "parent_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "path_cache": { "type": "string", "example": "/root/operations" }, "purge_at": { "type": "string", "example": "2026-04-12T03:04:05Z" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_shared.FileManagerFolderAuditAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "created_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "updated_at": { "type": "string", "example": "2026-03-12T03:04:05Z" }, "updated_by": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_shared.FileManagerFolderDetailAttributes": { "type": "object", "properties": { "audit": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFolderAuditAttributes" }, "depth": { "type": "integer", "example": 1 }, "location": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FileManagerFolderLocationAttributes" }, "name": { "type": "string", "example": "operations" }, "name_normalized": { "type": "string", "example": "operations" }, "path_cache": { "type": "string", "example": "/root/operations" } } }, "wucher_internal_transport_http_dto_shared.FileManagerFolderLocationAttributes": { "type": "object", "properties": { "parent_id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_shared.FileUploadFile": { "type": "object", "properties": { "mime_type": { "type": "string", "example": "application/pdf" }, "name": { "type": "string", "example": "policy-final.pdf" }, "size_bytes": { "type": "integer", "example": 1024 } } }, "wucher_internal_transport_http_dto_shared.FileUploadObject": { "type": "object", "properties": { "bucket": { "type": "string", "example": "wucher-file-dev" }, "key": { "type": "string", "example": "files/2026/04/05/018f3a5c7a6f7c2a8d4a4b5b1f6c8e9d.pdf" } } }, "wucher_internal_transport_http_dto_shared.FleetStatusComplaint": { "type": "object", "properties": { "action": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusComplaintAction" }, "aircraft_hours_at_report": { "type": "string" }, "description": { "type": "string" }, "flight_id": { "type": "string" }, "id": { "type": "string" }, "mel": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusComplaintMEL" }, "nsr": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusComplaintNSR" }, "reported_at": { "type": "string" }, "reported_by": { "type": "string" }, "reported_by_name": { "type": "string" }, "reported_by_short": { "type": "string" }, "status": { "type": "string", "enum": [ "active_non_mel", "active_mel", "serviced" ] } } }, "wucher_internal_transport_http_dto_shared.FleetStatusComplaintAction": { "type": "object", "properties": { "aircraft_hours_at_fix": { "type": "string" }, "signed_at": { "type": "string" }, "signed_by": { "type": "string" }, "signed_by_name": { "type": "string" }, "signed_by_short": { "type": "string" }, "taken": { "type": "string" } } }, "wucher_internal_transport_http_dto_shared.FleetStatusComplaintMEL": { "type": "object", "properties": { "classified_at": { "type": "string" }, "classified_by": { "type": "string" }, "classified_by_name": { "type": "string" }, "classified_by_short": { "type": "string" }, "deadline": { "type": "string" }, "severity": { "type": "integer", "enum": [ 0, 1, 2, 3, 4 ] }, "severity_label": { "type": "string" } } }, "wucher_internal_transport_http_dto_shared.FleetStatusComplaintNSR": { "type": "object", "properties": { "decided_at": { "type": "string" }, "decided_by": { "type": "string" }, "decided_by_name": { "type": "string" }, "decided_by_short": { "type": "string" }, "is_nsr": { "type": "boolean" }, "reason": { "type": "string" } } }, "wucher_internal_transport_http_dto_shared.FleetStatusEASARelease": { "type": "object", "properties": { "easa_ac_hours": { "type": "string" }, "easa_date": { "type": "string" }, "easa_location": { "type": "string" }, "easa_maint_manual_rev_airframe": { "type": "string" }, "easa_maint_manual_rev_engine": { "type": "string" }, "easa_permit_no": { "type": "string" }, "easa_signer_id": { "type": "string" }, "easa_wo_no": { "type": "string" }, "id": { "type": "string" }, "is_signed": { "type": "boolean" }, "missing_sign_fields": { "type": "array", "items": { "type": "string" } }, "signed_at": { "type": "string" }, "signed_by": { "type": "string" }, "signed_by_name": { "type": "string" }, "signed_by_short": { "type": "string" } } }, "wucher_internal_transport_http_dto_shared.FleetStatusFileAttributes": { "type": "object", "required": [ "category", "file_id" ], "properties": { "category": { "type": "string", "enum": [ "wb", "bfi" ], "example": "wb" }, "file_id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "is_mandatory": { "description": "IsMandatory — when true, this file must be checked (is_done) during takeover.", "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_shared.FleetStatusHelicopter": { "type": "object", "properties": { "designation": { "type": "string", "example": "AIRBUS H145" }, "flight_id": { "description": "FlightID — id of the aircraft's current active flight (present only when it is in\nuse / booked). The fleet page uses it to create an EASA release scoped to the flight.", "type": "string", "example": "019d6774-98e8-7fba-9ef4-3795c0da8a13" }, "id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "identifier": { "type": "string", "example": "D-HEMS" }, "status": { "type": "string", "enum": [ "available", "booked", "aog", "mcf" ], "example": "available" }, "status_reasons": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusHelicopterReason" } }, "type": { "type": "string", "example": "EC-135" } } }, "wucher_internal_transport_http_dto_shared.FleetStatusHelicopterReason": { "type": "object", "properties": { "code": { "type": "string", "enum": [ "manual_aog", "mel_expired", "non_mel_pending", "inspection_overdue" ] }, "complaint_id": { "type": "string" }, "detail": { "type": "string" }, "schedule_id": { "type": "string" }, "since": { "type": "string" } } }, "wucher_internal_transport_http_dto_shared.FleetStatusMCF": { "type": "object", "properties": { "active": { "description": "Active — true when the helicopter is currently in MCF (an open draft, or a signed\nbut failed MCF still needing a re-flight); false when cleared/cancelled/none.", "type": "boolean" }, "af_hours": { "description": "AFHours / LandingCount present only once the MCF is signed; omitted for none/draft/cancelled.", "type": "string" }, "date": { "type": "string" }, "id": { "type": "string" }, "landing_count": { "type": "integer" }, "sign": { "description": "Sign — true once the MCF is completed/signed; false while it is still a draft.", "type": "boolean" }, "signed_by": { "description": "SignedBy / SignedByName / SignedByShort — who signed (completed) the MCF; empty while unsigned.", "type": "string" }, "signed_by_name": { "type": "string" }, "signed_by_short": { "type": "string" } } }, "wucher_internal_transport_http_dto_shared.FleetStatusSummary": { "type": "object", "properties": { "airframe": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusSummaryAirframe" }, "engine_1": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusSummaryEngine" }, "engine_2": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.FleetStatusSummaryEngine" }, "flight_reports": { "type": "number" }, "hook_releases": { "type": "number" }, "landings": { "type": "number" }, "rotor_brake_cycles": { "type": "number" } } }, "wucher_internal_transport_http_dto_shared.FleetStatusSummaryAirframe": { "type": "object", "properties": { "cycles": { "type": "number" }, "hours": { "type": "number" } } }, "wucher_internal_transport_http_dto_shared.FleetStatusSummaryEngine": { "type": "object", "properties": { "ccc": { "type": "number" }, "gpc_ng_n1": { "type": "number" }, "hours": { "type": "number" }, "ptc_nf_n2": { "type": "number" } } }, "wucher_internal_transport_http_dto_shared.HelicopterAuditUser": { "type": "object", "properties": { "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "name": { "type": "string", "example": "John Doe" } } }, "wucher_internal_transport_http_dto_shared.HelicopterFileAttributes": { "type": "object", "properties": { "attachment_pending": { "type": "boolean", "example": true }, "created_at": { "type": "string", "example": "2026-04-14T08:00:00Z" }, "created_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "download_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=..." }, "file_attachment_id": { "type": "string", "example": "019d6771-6c8e-7a2d-a7b8-03bcb65fcb3e" }, "file_name": { "type": "string", "example": "Before Flight Checklist.pdf" }, "helicopter_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "helicopter_name": { "type": "string", "example": "AIRBUS H145" }, "is_mandatory": { "type": "boolean", "example": true }, "is_template": { "type": "boolean", "example": true }, "position": { "type": "integer", "example": 1 }, "section": { "type": "string", "example": "bfi" }, "updated_at": { "type": "string", "example": "2026-04-14T08:00:00Z" }, "updated_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" } } }, "wucher_internal_transport_http_dto_shared.HelicopterFoto": { "type": "object", "properties": { "download_url": { "type": "string", "example": "https://storage.example.com/helicopter/foto.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Expires=900\u0026X-Amz-Signature=abc123" }, "original_size_bytes": { "type": "integer", "example": 1024000 }, "thumbnail_download_url": { "type": "string", "example": "https://storage.example.com/helicopter/foto.thumb.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Expires=900\u0026X-Amz-Signature=abc123" }, "uuid": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" } } }, "wucher_internal_transport_http_dto_shared.HelicopterInspectionFilesChecklist": { "type": "object", "properties": { "completed": { "type": "integer", "example": 47 }, "total": { "type": "integer", "example": 47 } } }, "wucher_internal_transport_http_dto_shared.HelicopterLastDailyBase": { "type": "object", "properties": { "base_abbreviation": { "type": "string", "example": "G1" }, "base_name": { "type": "string", "example": "Gallus 1 - Zurs Lech" }, "id": { "type": "string", "example": "018f3a5c-7a6f-7c2a-8d4a-4b5b1f6c8e9d" }, "type": { "type": "string", "example": "hems" } } }, "wucher_internal_transport_http_dto_shared.HelicopterLastDailyInspection": { "type": "object", "properties": { "base": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.HelicopterLastDailyBase" }, "inspected_at": { "type": "string", "example": "2026-05-25T07:47:00Z" }, "inspection_files_checklist": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.HelicopterInspectionFilesChecklist" }, "inspection_id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "inspector": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.HelicopterLastDailyInspector" }, "status": { "type": "string", "example": "inspected_cleared" }, "utc_time": { "type": "string", "example": "07:47" } } }, "wucher_internal_transport_http_dto_shared.HelicopterLastDailyInspector": { "type": "object", "properties": { "id": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "license_no": { "type": "string", "example": "4521" }, "name": { "type": "string", "example": "Teodora Lesmana" } } }, "wucher_internal_transport_http_dto_shared.MaintenanceScheduleAttributes": { "type": "object", "properties": { "due": { "type": "string", "example": "1200" }, "ext": { "type": "string", "example": "1300" }, "inspection_type": { "type": "string", "example": "A/F" }, "type": { "type": "string", "example": "100H" } } }, "wucher_internal_transport_http_dto_shared.ReserveAcAircraftSummary": { "type": "object", "properties": { "aog": { "type": "boolean", "example": false }, "designation": { "type": "string", "example": "AIRBUS H145" }, "id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "identifier": { "type": "string", "example": "D-HYAR" }, "is_active": { "type": "boolean", "example": true }, "type": { "type": "string", "example": "H145" } } }, "wucher_internal_transport_http_dto_shared.ReserveAcAttributes": { "type": "object", "properties": { "created_at": { "type": "string", "example": "2026-04-14T08:00:00Z" }, "created_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "deleted_at": { "type": "string", "example": "2026-04-14T08:00:00Z" }, "deleted_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" }, "flight_id": { "type": "string", "example": "019d6773-ccca-71dd-b9c7-8e6f531deb90" }, "helicopter": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcAircraftSummary" }, "helicopter_id": { "type": "string", "example": "019d6771-5fb5-7337-837f-bc5ed85181a1" }, "inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcInspectionSummary" }, "last_daily_inspection": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcLastDailyInfo" }, "status": { "type": "string", "example": "pending" }, "updated_at": { "type": "string", "example": "2026-04-14T08:00:00Z" }, "updated_by": { "type": "string", "example": "019d61db-53c6-7280-87ec-e65f205c6d3b" } } }, "wucher_internal_transport_http_dto_shared.ReserveAcBeforeInspectionFields": { "type": "object", "properties": { "fuel_added_amount": { "type": "number" }, "fuel_amount": { "type": "number" }, "fuel_unit": { "type": "string" }, "hydraulic_lh_checked": { "type": "boolean" }, "hydraulic_rh_checked": { "type": "boolean" }, "note": { "type": "string" }, "oil_engine_nr1_checked": { "type": "boolean" }, "oil_engine_nr2_checked": { "type": "boolean" }, "oil_transmission_igb_checked": { "type": "boolean" }, "oil_transmission_mgb_checked": { "type": "boolean" }, "oil_transmission_tgb_checked": { "type": "boolean" } } }, "wucher_internal_transport_http_dto_shared.ReserveAcBeforeSectionDTO": { "type": "object", "properties": { "completed": { "type": "integer", "example": 1 }, "done_file_checklist": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO" } }, "fields": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcBeforeInspectionFields" }, "file_checklist": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO" } }, "total": { "type": "integer", "example": 3 } } }, "wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO": { "type": "object", "properties": { "download_url": { "type": "string", "example": "https://s3.localhost.localstack.cloud:4566/wucher-file-dev/files/2026/04/05/policy.pdf?X-Amz-Signature=..." }, "file_attachment_id": { "type": "string", "example": "019d7000-aaaa-7bbb-8ccc-222222222222" }, "file_name": { "type": "string", "example": "Before Flight Checklist.pdf" }, "helicopter_file_id": { "type": "string", "example": "019d7000-aaaa-7bbb-8ccc-111111111111" }, "is_done": { "type": "boolean", "example": false }, "is_mandatory": { "type": "boolean", "example": true } } }, "wucher_internal_transport_http_dto_shared.ReserveAcFleetStatusFileSectionDTO": { "type": "object", "properties": { "completed": { "type": "integer", "example": 1 }, "done_file_checklist": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO" } }, "file_checklist": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO" } }, "total": { "type": "integer", "example": 2 } } }, "wucher_internal_transport_http_dto_shared.ReserveAcInspectionSummary": { "type": "object", "properties": { "before": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcBeforeSectionDTO" }, "fleet_status_file": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFleetStatusFileSectionDTO" }, "id": { "type": "string", "example": "019d6772-471c-7b70-b42a-d94020ef61e4" }, "inspection_date": { "type": "string", "example": "2026-04-15" }, "prepare": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcPrepareSectionDTO" } } }, "wucher_internal_transport_http_dto_shared.ReserveAcLastDailyInfo": { "type": "object", "properties": { "date": { "type": "string", "example": "17.04.2026" }, "name": { "type": "string", "example": "Ganahl Stefan" }, "short_name": { "type": "string", "example": "GAN" }, "utc_time": { "type": "string", "example": "10:57" } } }, "wucher_internal_transport_http_dto_shared.ReserveAcPrepareFields": { "type": "object", "properties": { "notam_briefing": { "type": "boolean" }, "operational_flight_plan": { "type": "boolean" }, "weather_briefing": { "type": "boolean" } } }, "wucher_internal_transport_http_dto_shared.ReserveAcPrepareSectionDTO": { "type": "object", "properties": { "completed": { "type": "integer", "example": 1 }, "done_file_checklist": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO" } }, "file_checklist": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcFileChecklistItemDTO" } }, "prepare_fields": { "$ref": "#/definitions/wucher_internal_transport_http_dto_shared.ReserveAcPrepareFields" }, "total": { "type": "integer", "example": 3 } } }, "wucher_internal_transport_http_jsonapi.Document": { "type": "object", "properties": { "data": {}, "meta": {} } }, "wucher_internal_transport_http_jsonapi.ErrorDocument": { "type": "object", "properties": { "errors": { "type": "array", "items": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorObject" } } } }, "wucher_internal_transport_http_jsonapi.ErrorObject": { "type": "object", "properties": { "code": { "type": "string" }, "detail": { "type": "string" }, "error_code": { "type": "string" }, "source": { "$ref": "#/definitions/wucher_internal_transport_http_jsonapi.ErrorSource" }, "status": { "type": "string" }, "title": { "type": "string" } } }, "wucher_internal_transport_http_jsonapi.ErrorSource": { "type": "object", "properties": { "pointer": { "type": "string" } } }, "wucher_internal_transport_http_jsonapi.Resource": { "type": "object", "properties": { "attributes": { "type": "object", "additionalProperties": {} }, "id": { "type": "string" }, "type": { "type": "string" } } } }, "tags": [ { "description": "Corrective-action sign-off for a helicopter. After a complaint's action_taken is recorded, it is signed off here (POST /action-signoffs/sign with complaint_id); a fleet-wide sign-off (no complaint_id) is also supported. A signed sign-off is the prerequisite for creating an EASA maintenance release.", "name": "Complaints - Sign Off" } ] }