{"openapi": "3.1.0", "info": {"title": "Venue Timer API v2", "version": "2.0.0", "description": "API f\u00fcr Venue Timer."}, "paths": {"/api/v2/base/programs/": {"get": {"operationId": "base_api_v2_endpoints_programs_list_programs", "summary": "Programme auflisten", "parameters": [{"in": "query", "name": "q", "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Q"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedProgramOut"}}}}}, "description": "Gibt die Programme der eigenen Firma zur\u00fcck. Freitextsuche \u00fcber ?q= (Programmname, Name/Firma/Spitzname der verkn\u00fcpften Kontakte, Kommentar; mehrere durch Leerzeichen getrennte Begriffe werden UND-verkn\u00fcpft). Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}, "post": {"operationId": "base_api_v2_endpoints_programs_create_program", "summary": "Programm anlegen", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramOut"}}}}}, "description": "Erstellt ein neues Programm.", "tags": ["Programme"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/programs/{program_uuid}/": {"get": {"operationId": "base_api_v2_endpoints_programs_get_program", "summary": "Programm abrufen", "parameters": [{"in": "path", "name": "program_uuid", "schema": {"format": "uuid", "title": "Program Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramOut"}}}}}, "description": "Gibt ein einzelnes Programm zur\u00fcck.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}, "put": {"operationId": "base_api_v2_endpoints_programs_update_program", "summary": "Programm ersetzen", "parameters": [{"in": "path", "name": "program_uuid", "schema": {"format": "uuid", "title": "Program Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramOut"}}}}}, "description": "Ersetzt ein Programm vollst\u00e4ndig.", "tags": ["Programme"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "patch": {"operationId": "base_api_v2_endpoints_programs_patch_program", "summary": "Programm aktualisieren", "parameters": [{"in": "path", "name": "program_uuid", "schema": {"format": "uuid", "title": "Program Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramOut"}}}}}, "description": "Aktualisiert ein Programm teilweise.", "tags": ["Programme"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramPatch"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "delete": {"operationId": "base_api_v2_endpoints_programs_delete_program", "summary": "Programm l\u00f6schen", "parameters": [{"in": "path", "name": "program_uuid", "schema": {"format": "uuid", "title": "Program Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Verschiebt ein Programm in den Papierkorb (Soft-Delete): Das Programm bleibt erhalten, verschwindet aber aus Liste und Detailabruf.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/showdates/": {"get": {"operationId": "base_api_v2_endpoints_showdates_list_showdates", "summary": "Spieltermine auflisten", "parameters": [{"in": "query", "name": "program", "schema": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "title": "Program"}, "required": false}, {"in": "query", "name": "from_date", "schema": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "From Date"}, "required": false}, {"in": "query", "name": "to_date", "schema": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "To Date"}, "required": false}, {"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedShowDateOut"}}}}}, "description": "Gibt die Spieltermine der eigenen Firma zur\u00fcck. Optional eingrenzbar \u00fcber ?program=<uuid> (nur Termine dieses Programms) sowie ?from_date=&to_date= (ISO8601): ein Termin wird gelistet, wenn sein Beginn ODER sein Ende im Zeitraum liegt. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}, "post": {"operationId": "base_api_v2_endpoints_showdates_create_showdate", "summary": "Spieltermin anlegen", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShowDateOut"}}}}}, "description": "Erstellt einen neuen Spieltermin.", "tags": ["Programme"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShowDateIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/showdates/{showdate_uuid}/": {"get": {"operationId": "base_api_v2_endpoints_showdates_get_showdate", "summary": "Spieltermin abrufen", "parameters": [{"in": "path", "name": "showdate_uuid", "schema": {"format": "uuid", "title": "Showdate Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShowDateOut"}}}}}, "description": "Gibt einen einzelnen Spieltermin zur\u00fcck.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}, "put": {"operationId": "base_api_v2_endpoints_showdates_update_showdate", "summary": "Spieltermin ersetzen", "parameters": [{"in": "path", "name": "showdate_uuid", "schema": {"format": "uuid", "title": "Showdate Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShowDateOut"}}}}}, "description": "Ersetzt einen Spieltermin vollst\u00e4ndig.", "tags": ["Programme"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShowDateIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "patch": {"operationId": "base_api_v2_endpoints_showdates_patch_showdate", "summary": "Spieltermin aktualisieren", "parameters": [{"in": "path", "name": "showdate_uuid", "schema": {"format": "uuid", "title": "Showdate Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShowDateOut"}}}}}, "description": "Aktualisiert einen Spieltermin teilweise.", "tags": ["Programme"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShowDatePatch"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "delete": {"operationId": "base_api_v2_endpoints_showdates_delete_showdate", "summary": "Spieltermin l\u00f6schen", "parameters": [{"in": "path", "name": "showdate_uuid", "schema": {"format": "uuid", "title": "Showdate Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Verschiebt einen Spieltermin in den Papierkorb (Soft-Delete): Der Spieltermin bleibt erhalten, verschwindet aber aus Liste und Detailabruf.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/rooms/": {"get": {"operationId": "base_api_v2_endpoints_rooms_list_rooms", "summary": "R\u00e4ume auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedRoomOut"}}}}}, "description": "Gibt die R\u00e4ume der eigenen Firma zur\u00fcck. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["R\u00e4ume"], "security": [{"ApiKeyAuth": []}]}, "post": {"operationId": "base_api_v2_endpoints_rooms_create_room", "summary": "Raum anlegen", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoomOut"}}}}}, "description": "Erstellt einen neuen Raum.", "tags": ["R\u00e4ume"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoomIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/rooms/{room_uuid}/": {"get": {"operationId": "base_api_v2_endpoints_rooms_get_room", "summary": "Raum abrufen", "parameters": [{"in": "path", "name": "room_uuid", "schema": {"format": "uuid", "title": "Room Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoomOut"}}}}}, "description": "Gibt einen einzelnen Raum zur\u00fcck.", "tags": ["R\u00e4ume"], "security": [{"ApiKeyAuth": []}]}, "put": {"operationId": "base_api_v2_endpoints_rooms_update_room", "summary": "Raum ersetzen", "parameters": [{"in": "path", "name": "room_uuid", "schema": {"format": "uuid", "title": "Room Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoomOut"}}}}}, "description": "Ersetzt einen Raum vollst\u00e4ndig.", "tags": ["R\u00e4ume"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoomIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "patch": {"operationId": "base_api_v2_endpoints_rooms_patch_room", "summary": "Raum aktualisieren", "parameters": [{"in": "path", "name": "room_uuid", "schema": {"format": "uuid", "title": "Room Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoomOut"}}}}}, "description": "Aktualisiert einen Raum teilweise.", "tags": ["R\u00e4ume"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoomPatch"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "delete": {"operationId": "base_api_v2_endpoints_rooms_delete_room", "summary": "Raum l\u00f6schen", "parameters": [{"in": "path", "name": "room_uuid", "schema": {"format": "uuid", "title": "Room Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "L\u00f6scht einen Raum dauerhaft.", "tags": ["R\u00e4ume"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/room-configurations/": {"get": {"operationId": "base_api_v2_endpoints_roomconfigs_list_room_configurations", "summary": "Raumkonfigurationen auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedRoomConfigurationOut"}}}}}, "description": "Gibt die Raumkonfigurationen der eigenen Firma zur\u00fcck. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["R\u00e4ume"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/room-configurations/{room_configuration_uuid}/": {"get": {"operationId": "base_api_v2_endpoints_roomconfigs_get_room_configuration", "summary": "Raumkonfiguration abrufen", "parameters": [{"in": "path", "name": "room_configuration_uuid", "schema": {"format": "uuid", "title": "Room Configuration Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RoomConfigurationOut"}}}}}, "description": "Gibt eine einzelne Raumkonfiguration zur\u00fcck.", "tags": ["R\u00e4ume"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/program-categories/": {"get": {"operationId": "base_api_v2_endpoints_categories_list_program_categories", "summary": "Programmkategorien auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedProgramCategoryOut"}}}}}, "description": "Gibt die Programmkategorien der eigenen Firma zur\u00fcck. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/program-categories/{category_uuid}/": {"get": {"operationId": "base_api_v2_endpoints_categories_get_program_category", "summary": "Programmkategorie abrufen", "parameters": [{"in": "path", "name": "category_uuid", "schema": {"format": "uuid", "title": "Category Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramCategoryOut"}}}}}, "description": "Gibt eine einzelne Programmkategorie zur\u00fcck.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/extra-invoice-position-categories/": {"get": {"operationId": "base_api_v2_endpoints_categories_list_extra_invoice_position_categories", "summary": "Zusatzleistungs-Kategorien auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedExtraInvoicePositionCategoryOut"}}}}}, "description": "Gibt die Zusatzleistungs-Kategorien der eigenen Firma zur\u00fcck. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/extra-invoice-position-categories/{category_uuid}/": {"get": {"operationId": "base_api_v2_endpoints_categories_get_extra_invoice_position_category", "summary": "Zusatzleistungs-Kategorie abrufen", "parameters": [{"in": "path", "name": "category_uuid", "schema": {"format": "uuid", "title": "Category Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtraInvoicePositionCategoryOut"}}}}}, "description": "Gibt eine einzelne Zusatzleistungs-Kategorie zur\u00fcck.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/extra-invoice-positions/": {"get": {"operationId": "base_api_v2_endpoints_extra_invoice_positions_list_extra_invoice_positions", "summary": "Zusatzleistungen auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedExtraInvoicePositionOut"}}}}}, "description": "Gibt den Zusatzleistungs-Katalog der eigenen Firma zur\u00fcck. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}, "post": {"operationId": "base_api_v2_endpoints_extra_invoice_positions_create_extra_invoice_position", "summary": "Zusatzleistung anlegen", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtraInvoicePositionOut"}}}}}, "description": "Erstellt eine neue Zusatzleistung im Katalog.", "tags": ["Programme"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtraInvoicePositionIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/extra-invoice-positions/{position_uuid}/": {"get": {"operationId": "base_api_v2_endpoints_extra_invoice_positions_get_extra_invoice_position", "summary": "Zusatzleistung abrufen", "parameters": [{"in": "path", "name": "position_uuid", "schema": {"format": "uuid", "title": "Position Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtraInvoicePositionOut"}}}}}, "description": "Gibt eine einzelne Zusatzleistung zur\u00fcck.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}, "put": {"operationId": "base_api_v2_endpoints_extra_invoice_positions_update_extra_invoice_position", "summary": "Zusatzleistung ersetzen", "parameters": [{"in": "path", "name": "position_uuid", "schema": {"format": "uuid", "title": "Position Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtraInvoicePositionOut"}}}}}, "description": "Ersetzt eine Zusatzleistung vollst\u00e4ndig.", "tags": ["Programme"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtraInvoicePositionIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "patch": {"operationId": "base_api_v2_endpoints_extra_invoice_positions_patch_extra_invoice_position", "summary": "Zusatzleistung aktualisieren", "parameters": [{"in": "path", "name": "position_uuid", "schema": {"format": "uuid", "title": "Position Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtraInvoicePositionOut"}}}}}, "description": "Aktualisiert eine Zusatzleistung teilweise.", "tags": ["Programme"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ExtraInvoicePositionPatch"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "delete": {"operationId": "base_api_v2_endpoints_extra_invoice_positions_delete_extra_invoice_position", "summary": "Zusatzleistung l\u00f6schen", "parameters": [{"in": "path", "name": "position_uuid", "schema": {"format": "uuid", "title": "Position Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "L\u00f6scht eine Zusatzleistung endg\u00fcltig. ACHTUNG: kaskadiert auf alle daraus erzeugten Programm-Positionen (diese werden mitgel\u00f6scht).", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/program-invoice-positions/": {"get": {"operationId": "base_api_v2_endpoints_program_invoice_positions_list_program_invoice_positions", "summary": "Programm-Positionen auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedProgramInvoicePositionOut"}}}}}, "description": "Gibt die Programm-Positionen der eigenen Firma zur\u00fcck. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}, "post": {"operationId": "base_api_v2_endpoints_program_invoice_positions_create_program_invoice_position", "summary": "Programm-Position anlegen", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramInvoicePositionOut"}}}}}, "description": "H\u00e4ngt eine Zusatzleistung an ein Programm. custom_net_amount wird bei Auslassung aus der Zusatzleistung \u00fcbernommen.", "tags": ["Programme"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramInvoicePositionIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/program-invoice-positions/{position_uuid}/": {"get": {"operationId": "base_api_v2_endpoints_program_invoice_positions_get_program_invoice_position", "summary": "Programm-Position abrufen", "parameters": [{"in": "path", "name": "position_uuid", "schema": {"format": "uuid", "title": "Position Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramInvoicePositionOut"}}}}}, "description": "Gibt eine einzelne Programm-Position zur\u00fcck.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}, "put": {"operationId": "base_api_v2_endpoints_program_invoice_positions_update_program_invoice_position", "summary": "Programm-Position ersetzen", "parameters": [{"in": "path", "name": "position_uuid", "schema": {"format": "uuid", "title": "Position Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramInvoicePositionOut"}}}}}, "description": "Ersetzt eine Programm-Position vollst\u00e4ndig.", "tags": ["Programme"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramInvoicePositionIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "patch": {"operationId": "base_api_v2_endpoints_program_invoice_positions_patch_program_invoice_position", "summary": "Programm-Position aktualisieren", "parameters": [{"in": "path", "name": "position_uuid", "schema": {"format": "uuid", "title": "Position Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramInvoicePositionOut"}}}}}, "description": "Aktualisiert eine Programm-Position teilweise.", "tags": ["Programme"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ProgramInvoicePositionPatch"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "delete": {"operationId": "base_api_v2_endpoints_program_invoice_positions_delete_program_invoice_position", "summary": "Programm-Position l\u00f6schen", "parameters": [{"in": "path", "name": "position_uuid", "schema": {"format": "uuid", "title": "Position Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "L\u00f6scht eine Programm-Position endg\u00fcltig. Die zugrundeliegende Zusatzleistung (Katalog) bleibt erhalten.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/company/": {"get": {"operationId": "base_api_v2_endpoints_company_get_company", "summary": "Eigene Firma abrufen", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ManagingCompanyOut"}}}}}, "description": "Gibt die Stammdaten der eigenen verwaltenden Firma zur\u00fcck (read-only). Der Datensatz ergibt sich aus dem API-Key.", "tags": ["Firma"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/ticket-sales/": {"get": {"operationId": "base_api_v2_endpoints_ticket_sales_list_ticket_sales", "summary": "Ticketverk\u00e4ufe auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedTicketSalesOut"}}}}}, "description": "Gibt die Ticketverkaufs-/Auslastungsst\u00e4nde der eigenen Firma zur\u00fcck (read-only). Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/base/ticket-sales/{sales_uuid}/": {"get": {"operationId": "base_api_v2_endpoints_ticket_sales_get_ticket_sales", "summary": "Ticketverkauf abrufen", "parameters": [{"in": "path", "name": "sales_uuid", "schema": {"format": "uuid", "title": "Sales Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TicketSalesOut"}}}}}, "description": "Gibt einen einzelnen Ticketverkaufs-Eintrag zur\u00fcck (read-only).", "tags": ["Programme"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/contacts/contacts/": {"get": {"operationId": "contacts_api_v2_endpoints_contacts_list_contacts", "summary": "Kontakte auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedContactOut"}}}}}, "description": "Gibt die nicht gel\u00f6schten Kontakte der eigenen Firma zur\u00fcck. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}. Ben\u00f6tigt das Leserecht f\u00fcr Kontakte (sonst 403).", "tags": ["Kunden"], "security": [{"ApiKeyAuth": []}]}, "post": {"operationId": "contacts_api_v2_endpoints_contacts_create_contact", "summary": "Kontakt anlegen", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ContactOut"}}}}}, "description": "Erstellt einen neuen Kontakt f\u00fcr die eigene Firma. Ben\u00f6tigt das Schreibrecht (403). Kategorien fremder Firmen werden ignoriert.", "tags": ["Kunden"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ContactIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}}, "/api/v2/contacts/contacts/{contact_uuid}/": {"get": {"operationId": "contacts_api_v2_endpoints_contacts_get_contact", "summary": "Kontakt abrufen", "parameters": [{"in": "path", "name": "contact_uuid", "schema": {"format": "uuid", "title": "Contact Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ContactOut"}}}}}, "description": "Gibt einen einzelnen Kontakt der eigenen Firma zur\u00fcck. Ben\u00f6tigt das Leserecht (403). Fremde oder gel\u00f6schte Kontakte liefern 404.", "tags": ["Kunden"], "security": [{"ApiKeyAuth": []}]}, "put": {"operationId": "contacts_api_v2_endpoints_contacts_update_contact", "summary": "Kontakt ersetzen", "parameters": [{"in": "path", "name": "contact_uuid", "schema": {"format": "uuid", "title": "Contact Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ContactOut"}}}}}, "description": "Ersetzt einen Kontakt der eigenen Firma vollst\u00e4ndig. Ben\u00f6tigt das Schreibrecht (403). Fremde Kontakte liefern 404.", "tags": ["Kunden"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ContactIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "patch": {"operationId": "contacts_api_v2_endpoints_contacts_patch_contact", "summary": "Kontakt aktualisieren", "parameters": [{"in": "path", "name": "contact_uuid", "schema": {"format": "uuid", "title": "Contact Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ContactOut"}}}}}, "description": "Aktualisiert einen Kontakt der eigenen Firma teilweise. Nicht gesendete Felder bleiben unver\u00e4ndert. Ben\u00f6tigt das Schreibrecht (403). Fremde Kontakte liefern 404.", "tags": ["Kunden"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ContactPatch"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "delete": {"operationId": "contacts_api_v2_endpoints_contacts_delete_contact", "summary": "Kontakt l\u00f6schen", "parameters": [{"in": "path", "name": "contact_uuid", "schema": {"format": "uuid", "title": "Contact Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Verschiebt einen Kontakt in den Papierkorb (Soft-Delete): Der Kontakt bleibt erhalten, verschwindet aber aus Liste und Detailabruf. Ben\u00f6tigt das L\u00f6schrecht (403). Fremde Kontakte liefern 404.", "tags": ["Kunden"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/contacts/contact-categories/": {"get": {"operationId": "contacts_api_v2_endpoints_categories_list_contact_categories", "summary": "Kontaktkategorien auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedContactCategoryOut"}}}}}, "description": "Gibt die Kontaktkategorien der eigenen Firma zur\u00fcck. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}. Ben\u00f6tigt das Leserecht f\u00fcr Kontaktkategorien (sonst 403).", "tags": ["Kunden"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/contacts/contact-categories/{category_uuid}/": {"get": {"operationId": "contacts_api_v2_endpoints_categories_get_contact_category", "summary": "Kontaktkategorie abrufen", "parameters": [{"in": "path", "name": "category_uuid", "schema": {"format": "uuid", "title": "Category Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ContactCategoryOut"}}}}}, "description": "Gibt eine einzelne Kontaktkategorie der eigenen Firma zur\u00fcck. Ben\u00f6tigt das Leserecht (403). Fremde Kategorien liefern 404.", "tags": ["Kunden"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/invoices/invoices/": {"get": {"operationId": "invoices_api_v2_endpoints_invoices_list_invoices", "summary": "Rechnungen auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedInvoiceOut"}}}}}, "description": "Gibt die ausgestellten Rechnungen der eigenen Firma zur\u00fcck (read-only). Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Rechnungen"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/invoices/invoices/{invoice_uuid}/": {"get": {"operationId": "invoices_api_v2_endpoints_invoices_get_invoice", "summary": "Rechnung abrufen", "parameters": [{"in": "path", "name": "invoice_uuid", "schema": {"format": "uuid", "title": "Invoice Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InvoiceOut"}}}}}, "description": "Gibt eine einzelne ausgestellte Rechnung inkl. Positionen zur\u00fcck (read-only).", "tags": ["Rechnungen"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/staff/staff-categories/": {"get": {"operationId": "staff_api_v2_endpoints_categories_list_staff_categories", "summary": "Mitarbeiter-Kategorien auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedStaffCategoryOut"}}}}}, "description": "Gibt die Mitarbeiter-Kategorien der eigenen Firma zur\u00fcck. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/staff/staff-categories/{category_uuid}/": {"get": {"operationId": "staff_api_v2_endpoints_categories_get_staff_category", "summary": "Mitarbeiter-Kategorie abrufen", "parameters": [{"in": "path", "name": "category_uuid", "schema": {"format": "uuid", "title": "Category Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffCategoryOut"}}}}}, "description": "Gibt eine einzelne Mitarbeiter-Kategorie zur\u00fcck.", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/staff/staff-persons/": {"get": {"operationId": "staff_api_v2_endpoints_staff_persons_list_staff_persons", "summary": "Mitarbeiter auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedStaffPersonOut"}}}}}, "description": "Gibt die Mitarbeiter der eigenen Firma zur\u00fcck (ohne sensible Personal-/Finanzfelder). Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}, "post": {"operationId": "staff_api_v2_endpoints_staff_persons_create_staff_person", "summary": "Mitarbeiter anlegen", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffPersonOut"}}}}}, "description": "Erstellt einen neuen Mitarbeiter. Sensible Felder (SVN, Gehalt, Sollstunden) k\u00f6nnen \u00fcber die API nicht gesetzt werden.", "tags": ["Personal"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffPersonIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}}, "/api/v2/staff/staff-persons/{person_uuid}/": {"get": {"operationId": "staff_api_v2_endpoints_staff_persons_get_staff_person", "summary": "Mitarbeiter abrufen", "parameters": [{"in": "path", "name": "person_uuid", "schema": {"format": "uuid", "title": "Person Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffPersonOut"}}}}}, "description": "Gibt einen einzelnen Mitarbeiter zur\u00fcck (ohne sensible Personal-/Finanzfelder).", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}, "put": {"operationId": "staff_api_v2_endpoints_staff_persons_update_staff_person", "summary": "Mitarbeiter ersetzen", "parameters": [{"in": "path", "name": "person_uuid", "schema": {"format": "uuid", "title": "Person Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffPersonOut"}}}}}, "description": "Ersetzt einen Mitarbeiter vollst\u00e4ndig (ohne sensible Felder).", "tags": ["Personal"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffPersonIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "patch": {"operationId": "staff_api_v2_endpoints_staff_persons_patch_staff_person", "summary": "Mitarbeiter aktualisieren", "parameters": [{"in": "path", "name": "person_uuid", "schema": {"format": "uuid", "title": "Person Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffPersonOut"}}}}}, "description": "Aktualisiert einen Mitarbeiter teilweise (ohne sensible Felder).", "tags": ["Personal"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffPersonPatch"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "delete": {"operationId": "staff_api_v2_endpoints_staff_persons_delete_staff_person", "summary": "Mitarbeiter l\u00f6schen", "parameters": [{"in": "path", "name": "person_uuid", "schema": {"format": "uuid", "title": "Person Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "Verschiebt einen Mitarbeiter in den Papierkorb (Soft-Delete): Der Mitarbeiter bleibt erhalten, verschwindet aber aus Liste und Detailabruf. Ein verkn\u00fcpfter Benutzeraccount wird dabei deaktiviert.", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/staff/tasks/": {"get": {"operationId": "staff_api_v2_endpoints_tasks_list_tasks", "summary": "Aufgaben auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedTaskOut"}}}}}, "description": "Gibt die Aufgaben der eigenen Firma zur\u00fcck. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}, "post": {"operationId": "staff_api_v2_endpoints_tasks_create_task", "summary": "Aufgabe anlegen", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TaskOut"}}}}}, "description": "Erstellt eine neue Aufgabe.", "tags": ["Personal"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/TaskIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}}, "/api/v2/staff/tasks/{task_uuid}/": {"get": {"operationId": "staff_api_v2_endpoints_tasks_get_task", "summary": "Aufgabe abrufen", "parameters": [{"in": "path", "name": "task_uuid", "schema": {"format": "uuid", "title": "Task Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TaskOut"}}}}}, "description": "Gibt eine einzelne Aufgabe zur\u00fcck.", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}, "put": {"operationId": "staff_api_v2_endpoints_tasks_update_task", "summary": "Aufgabe ersetzen", "parameters": [{"in": "path", "name": "task_uuid", "schema": {"format": "uuid", "title": "Task Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TaskOut"}}}}}, "description": "Ersetzt eine Aufgabe vollst\u00e4ndig.", "tags": ["Personal"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/TaskIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "patch": {"operationId": "staff_api_v2_endpoints_tasks_patch_task", "summary": "Aufgabe aktualisieren", "parameters": [{"in": "path", "name": "task_uuid", "schema": {"format": "uuid", "title": "Task Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TaskOut"}}}}}, "description": "Aktualisiert eine Aufgabe teilweise.", "tags": ["Personal"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/TaskPatch"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "delete": {"operationId": "staff_api_v2_endpoints_tasks_delete_task", "summary": "Aufgabe l\u00f6schen", "parameters": [{"in": "path", "name": "task_uuid", "schema": {"format": "uuid", "title": "Task Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "L\u00f6scht eine Aufgabe endg\u00fcltig. Referenzen aus Schichten werden auf null gesetzt.", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/staff/shift-entries/": {"get": {"operationId": "staff_api_v2_endpoints_shift_entries_list_shift_entries", "summary": "Schichten auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedShiftEntryOut"}}}}}, "description": "Gibt die Schichten der eigenen Firma zur\u00fcck. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}, "post": {"operationId": "staff_api_v2_endpoints_shift_entries_create_shift_entry", "summary": "Schicht anlegen", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShiftEntryOut"}}}}}, "description": "Erstellt eine neue Schicht.", "tags": ["Personal"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShiftEntryIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}}, "/api/v2/staff/shift-entries/{shift_uuid}/": {"get": {"operationId": "staff_api_v2_endpoints_shift_entries_get_shift_entry", "summary": "Schicht abrufen", "parameters": [{"in": "path", "name": "shift_uuid", "schema": {"format": "uuid", "title": "Shift Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShiftEntryOut"}}}}}, "description": "Gibt eine einzelne Schicht inkl. Pausen zur\u00fcck.", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}, "put": {"operationId": "staff_api_v2_endpoints_shift_entries_update_shift_entry", "summary": "Schicht ersetzen", "parameters": [{"in": "path", "name": "shift_uuid", "schema": {"format": "uuid", "title": "Shift Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShiftEntryOut"}}}}}, "description": "Ersetzt eine Schicht vollst\u00e4ndig (inkl. Pausen).", "tags": ["Personal"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShiftEntryIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "patch": {"operationId": "staff_api_v2_endpoints_shift_entries_patch_shift_entry", "summary": "Schicht aktualisieren", "parameters": [{"in": "path", "name": "shift_uuid", "schema": {"format": "uuid", "title": "Shift Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShiftEntryOut"}}}}}, "description": "Aktualisiert eine Schicht teilweise. Wird \"breaks\" gesendet, ersetzt es die bestehenden Pausen.", "tags": ["Personal"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShiftEntryPatch"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "delete": {"operationId": "staff_api_v2_endpoints_shift_entries_delete_shift_entry", "summary": "Schicht l\u00f6schen", "parameters": [{"in": "path", "name": "shift_uuid", "schema": {"format": "uuid", "title": "Shift Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "L\u00f6scht eine Schicht endg\u00fcltig (inkl. ihrer Pausen).", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}}, "/api/v2/staff/availabilities/": {"get": {"operationId": "staff_api_v2_endpoints_availabilities_list_availabilities", "summary": "Verf\u00fcgbarkeiten auflisten", "parameters": [{"in": "query", "name": "limit", "schema": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "required": false}, {"in": "query", "name": "offset", "schema": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}, "required": false}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PagedStaffAvailabilityOut"}}}}}, "description": "Gibt die Verf\u00fcgbarkeiten der eigenen Firma zur\u00fcck. Paginiert \u00fcber ?limit=&offset=; Antwort: {items, count}.", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}, "post": {"operationId": "staff_api_v2_endpoints_availabilities_create_availability", "summary": "Verf\u00fcgbarkeit anlegen", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffAvailabilityOut"}}}}}, "description": "Erstellt eine Verf\u00fcgbarkeit. Pro Mitarbeiter und Spieltermin ist nur ein Eintrag erlaubt.", "tags": ["Personal"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffAvailabilityIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}}, "/api/v2/staff/availabilities/{availability_uuid}/": {"get": {"operationId": "staff_api_v2_endpoints_availabilities_get_availability", "summary": "Verf\u00fcgbarkeit abrufen", "parameters": [{"in": "path", "name": "availability_uuid", "schema": {"format": "uuid", "title": "Availability Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffAvailabilityOut"}}}}}, "description": "Gibt eine einzelne Verf\u00fcgbarkeit zur\u00fcck.", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}, "put": {"operationId": "staff_api_v2_endpoints_availabilities_update_availability", "summary": "Verf\u00fcgbarkeit ersetzen", "parameters": [{"in": "path", "name": "availability_uuid", "schema": {"format": "uuid", "title": "Availability Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffAvailabilityOut"}}}}}, "description": "Ersetzt eine Verf\u00fcgbarkeit vollst\u00e4ndig.", "tags": ["Personal"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffAvailabilityIn"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "patch": {"operationId": "staff_api_v2_endpoints_availabilities_patch_availability", "summary": "Verf\u00fcgbarkeit aktualisieren", "parameters": [{"in": "path", "name": "availability_uuid", "schema": {"format": "uuid", "title": "Availability Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffAvailabilityOut"}}}}}, "description": "Aktualisiert eine Verf\u00fcgbarkeit teilweise.", "tags": ["Personal"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/StaffAvailabilityPatch"}}}, "required": true}, "security": [{"ApiKeyAuth": []}]}, "delete": {"operationId": "staff_api_v2_endpoints_availabilities_delete_availability", "summary": "Verf\u00fcgbarkeit l\u00f6schen", "parameters": [{"in": "path", "name": "availability_uuid", "schema": {"format": "uuid", "title": "Availability Uuid", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK"}}, "description": "L\u00f6scht eine Verf\u00fcgbarkeit endg\u00fcltig.", "tags": ["Personal"], "security": [{"ApiKeyAuth": []}]}}}, "components": {"schemas": {"Input": {"properties": {"limit": {"default": 100, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer"}, "offset": {"default": 0, "minimum": 0, "title": "Offset", "type": "integer"}}, "title": "Input", "type": "object"}, "PagedProgramOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ProgramOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedProgramOut", "type": "object"}, "ProgramOut": {"description": "Programm \u2013 \u00f6ffentliche Daten einer Veranstaltung.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID des Programms.", "format": "uuid", "title": "UUID", "type": "string"}, "display_name": {"description": "Name des Programms, wie er in Listen und der API erscheint.", "title": "Anzeigename", "type": "string"}, "info_text": {"default": "", "description": "Freier Beschreibungstext zum Programm.", "title": "Infotext", "type": "string"}, "classification": {"description": "Status des Programms, z.B. '\u00d6ffentlich', 'Intern' oder 'Keine'.", "title": "Klassifizierung", "type": "string"}, "html_color": {"description": "Hex-Farbcode f\u00fcr die Darstellung im Kalender und in \u00dcbersichten.", "title": "Farbe", "type": "string"}, "categories": {"default": [], "description": "UUIDs der zugewiesenen Programmkategorien.", "items": {"format": "uuid", "type": "string"}, "title": "Kategorien", "type": "array"}, "artwork_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "URL zum Programm-Logo oder Artwork.", "title": "Artwork-URL"}, "presale_link": {"default": "", "description": "Externer Link zum Ticket-Vorverkauf.", "title": "Vorverkaufslink", "type": "string"}, "presale_phone": {"default": "", "description": "Telefonnummer f\u00fcr Vorverkaufsanfragen.", "title": "Vorverkauf-Telefon", "type": "string"}, "comment_tickets": {"default": "", "description": "Interner Hinweis zu Tickets.", "title": "Ticket-Kommentar", "type": "string"}, "ticket_base_price_cat1": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Basispreis f\u00fcr die Standardticket-Kategorie.", "title": "Kategorie 1 Basispreis"}, "ticket_final_price_cat1": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Endg\u00fcltiger Verkaufspreis f\u00fcr die Standardticket-Kategorie.", "title": "Kategorie 1 Endpreis"}, "ticket_cat1_name": {"default": "Standardpreis", "description": "Anzeigename der Standardticket-Kategorie.", "title": "Kategorie 1 Bezeichnung", "type": "string"}, "ticket_base_price_cat2": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Basispreis f\u00fcr die erm\u00e4\u00dfigte Ticket-Kategorie.", "title": "Kategorie 2 Basispreis"}, "ticket_final_price_cat2": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Endg\u00fcltiger Verkaufspreis f\u00fcr die erm\u00e4\u00dfigte Ticket-Kategorie.", "title": "Kategorie 2 Endpreis"}, "ticket_cat2_name": {"default": "Erm\u00e4\u00dfigt", "description": "Anzeigename der erm\u00e4\u00dfigten Ticket-Kategorie.", "title": "Kategorie 2 Bezeichnung", "type": "string"}, "ticket_base_price_cat3": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Basispreis f\u00fcr die Sonderpreis-Ticket-Kategorie.", "title": "Kategorie 3 Basispreis"}, "ticket_final_price_cat3": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Endg\u00fcltiger Verkaufspreis f\u00fcr die Sonderpreis-Ticket-Kategorie.", "title": "Kategorie 3 Endpreis"}, "ticket_cat3_name": {"default": "Sonderpreis", "description": "Anzeigename der Sonderpreis-Ticket-Kategorie.", "title": "Kategorie 3 Bezeichnung", "type": "string"}, "merchandise": {"default": false, "description": "Gibt an, ob Merchandise f\u00fcr das Programm relevant ist.", "title": "Merchandise", "type": "boolean"}, "comment_merchandise": {"default": "", "description": "Interner Hinweis zu Merchandise.", "title": "Merchandise-Kommentar", "type": "string"}, "comment_technics": {"default": "", "description": "Hinweise zur technischen Ausstattung.", "title": "Technik-Kommentar", "type": "string"}, "comment_lights": {"default": "", "description": "Hinweise zur Lichttechnik.", "title": "Licht-Kommentar", "type": "string"}, "comment_sound": {"default": "", "description": "Hinweise zur Tontechnik.", "title": "Ton-Kommentar", "type": "string"}, "comment_video": {"default": "", "description": "Hinweise zur Videotechnik.", "title": "Video-Kommentar", "type": "string"}, "comment_press": {"default": "", "description": "Hinweise f\u00fcr Presse und \u00d6ffentlichkeitsarbeit.", "title": "Presse-Kommentar", "type": "string"}, "travel_party": {"default": "", "description": "Anzahl oder Beschreibung der anreisenden Personen.", "title": "Reisetruppe", "type": "string"}, "deal_share_rel": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Relativer Deal-Anteil in Prozent (z.B. 0,15 f\u00fcr 15 %).", "title": "Deal-Anteil relativ"}, "deal_share_abs": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Fester Deal-Betrag in Euro.", "title": "Deal-Anteil absolut"}, "net_rental_fee": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Netto-Mietgeb\u00fchr f\u00fcr das Programm in Euro.", "title": "Netto-Mietgeb\u00fchr"}, "rental_fee_is_flat_rate": {"default": false, "description": "True, wenn die Mietgeb\u00fchr pauschal gilt.", "title": "Pauschalmiete", "type": "boolean"}, "custom_fields": {"additionalProperties": true, "default": {}, "description": "Frei konfigurierbare Felder der verwaltenden Firma.", "title": "Benutzerdefinierte Felder", "type": "object"}, "associated_contact": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts (Adressat).", "title": "Adressat"}, "associated_contact_for_invoice": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts (Vertragspartner / Rechnungsempf\u00e4nger).", "title": "Vertragspartner"}, "associated_contact_for_venue": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts vor Ort.", "title": "Kontakt vor Ort"}, "associated_technical_contact": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des technischen Kontakts.", "title": "Technischer Kontakt"}, "associated_production_contact": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts der Produktionsleitung.", "title": "Produktionsleitung"}, "created_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt der Erstellung.", "title": "Erstellt am"}}, "required": ["uuid", "display_name", "classification", "html_color"], "title": "ProgramOut", "type": "object"}, "ProgramIn": {"description": "Programm \u2013 Eingabedaten zum Anlegen oder vollst\u00e4ndigen Ersetzen.", "properties": {"display_name": {"description": "Name des Programms.", "title": "Anzeigename", "type": "string"}, "info_text": {"default": "", "description": "Freier Beschreibungstext.", "title": "Infotext", "type": "string"}, "classification": {"default": "no", "description": "Status, z.B. '\u00d6ffentlich', 'Intern' oder 'Keine'.", "title": "Klassifizierung", "type": "string"}, "html_color": {"default": "#000000", "description": "Hex-Farbcode.", "title": "Farbe", "type": "string"}, "categories": {"default": [], "description": "UUIDs der zugewiesenen Programmkategorien (nur eigene Firma).", "items": {"format": "uuid", "type": "string"}, "title": "Kategorien", "type": "array"}, "presale_link": {"default": "", "description": "Externer Link zum Ticket-Vorverkauf.", "title": "Vorverkaufslink", "type": "string"}, "presale_phone": {"default": "", "description": "Telefonnummer f\u00fcr Vorverkaufsanfragen.", "title": "Vorverkauf-Telefon", "type": "string"}, "comment_tickets": {"default": "", "description": "Interner Hinweis zu Tickets.", "title": "Ticket-Kommentar", "type": "string"}, "ticket_base_price_cat1": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Basispreis f\u00fcr die Standardticket-Kategorie.", "title": "Kategorie 1 Basispreis"}, "ticket_final_price_cat1": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Endg\u00fcltiger Verkaufspreis f\u00fcr die Standardticket-Kategorie.", "title": "Kategorie 1 Endpreis"}, "ticket_cat1_name": {"default": "Standardpreis", "description": "Anzeigename der Standardticket-Kategorie.", "title": "Kategorie 1 Bezeichnung", "type": "string"}, "ticket_base_price_cat2": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Basispreis f\u00fcr die erm\u00e4\u00dfigte Ticket-Kategorie.", "title": "Kategorie 2 Basispreis"}, "ticket_final_price_cat2": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Endg\u00fcltiger Verkaufspreis f\u00fcr die erm\u00e4\u00dfigte Ticket-Kategorie.", "title": "Kategorie 2 Endpreis"}, "ticket_cat2_name": {"default": "Erm\u00e4\u00dfigt", "description": "Anzeigename der erm\u00e4\u00dfigten Ticket-Kategorie.", "title": "Kategorie 2 Bezeichnung", "type": "string"}, "ticket_base_price_cat3": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Basispreis f\u00fcr die Sonderpreis-Ticket-Kategorie.", "title": "Kategorie 3 Basispreis"}, "ticket_final_price_cat3": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Endg\u00fcltiger Verkaufspreis f\u00fcr die Sonderpreis-Ticket-Kategorie.", "title": "Kategorie 3 Endpreis"}, "ticket_cat3_name": {"default": "Sonderpreis", "description": "Anzeigename der Sonderpreis-Ticket-Kategorie.", "title": "Kategorie 3 Bezeichnung", "type": "string"}, "merchandise": {"default": false, "description": "Merchandise f\u00fcr das Programm relevant.", "title": "Merchandise", "type": "boolean"}, "comment_merchandise": {"default": "", "description": "Interner Hinweis zu Merchandise.", "title": "Merchandise-Kommentar", "type": "string"}, "comment_technics": {"default": "", "description": "Hinweise zur technischen Ausstattung.", "title": "Technik-Kommentar", "type": "string"}, "comment_lights": {"default": "", "description": "Hinweise zur Lichttechnik.", "title": "Licht-Kommentar", "type": "string"}, "comment_sound": {"default": "", "description": "Hinweise zur Tontechnik.", "title": "Ton-Kommentar", "type": "string"}, "comment_video": {"default": "", "description": "Hinweise zur Videotechnik.", "title": "Video-Kommentar", "type": "string"}, "comment_press": {"default": "", "description": "Hinweise f\u00fcr Presse und \u00d6ffentlichkeitsarbeit.", "title": "Presse-Kommentar", "type": "string"}, "travel_party": {"default": "", "description": "Anzahl oder Beschreibung der anreisenden Personen.", "title": "Reisetruppe", "type": "string"}, "deal_share_rel": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Relativer Deal-Anteil in Prozent (z.B. 0,15 f\u00fcr 15 %).", "title": "Deal-Anteil relativ"}, "deal_share_abs": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Fester Deal-Betrag in Euro.", "title": "Deal-Anteil absolut"}, "net_rental_fee": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Netto-Mietgeb\u00fchr in Euro.", "title": "Netto-Mietgeb\u00fchr"}, "rental_fee_is_flat_rate": {"default": false, "description": "True, wenn die Mietgeb\u00fchr pauschal gilt.", "title": "Pauschalmiete", "type": "boolean"}, "custom_fields": {"additionalProperties": true, "default": {}, "description": "Frei konfigurierbare Felder der Firma.", "title": "Benutzerdefinierte Felder", "type": "object"}, "associated_contact": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts (Adressat) \u2013 nur eigene Firma.", "title": "Adressat"}, "associated_contact_for_invoice": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts (Vertragspartner) \u2013 nur eigene Firma.", "title": "Vertragspartner"}, "associated_contact_for_venue": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts vor Ort \u2013 nur eigene Firma.", "title": "Kontakt vor Ort"}, "associated_technical_contact": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des technischen Kontakts \u2013 nur eigene Firma.", "title": "Technischer Kontakt"}, "associated_production_contact": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts der Produktionsleitung \u2013 nur eigene Firma.", "title": "Produktionsleitung"}}, "required": ["display_name"], "title": "ProgramIn", "type": "object"}, "ProgramPatch": {"description": "Programm \u2013 partielle Aktualisierung. Nicht gesendete Felder bleiben unver\u00e4ndert.", "properties": {"display_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name des Programms.", "title": "Anzeigename"}, "info_text": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Freier Beschreibungstext.", "title": "Infotext"}, "classification": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Status, z.B. '\u00d6ffentlich', 'Intern' oder 'Keine'.", "title": "Klassifizierung"}, "html_color": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hex-Farbcode.", "title": "Farbe"}, "categories": {"anyOf": [{"items": {"format": "uuid", "type": "string"}, "type": "array"}, {"type": "null"}], "description": "UUIDs der zugewiesenen Programmkategorien (nur eigene Firma).", "title": "Kategorien"}, "presale_link": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Externer Link zum Ticket-Vorverkauf.", "title": "Vorverkaufslink"}, "presale_phone": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Telefonnummer f\u00fcr Vorverkaufsanfragen.", "title": "Vorverkauf-Telefon"}, "comment_tickets": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Interner Hinweis zu Tickets.", "title": "Ticket-Kommentar"}, "ticket_base_price_cat1": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Basispreis f\u00fcr die Standardticket-Kategorie.", "title": "Kategorie 1 Basispreis"}, "ticket_final_price_cat1": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Endg\u00fcltiger Verkaufspreis f\u00fcr die Standardticket-Kategorie.", "title": "Kategorie 1 Endpreis"}, "ticket_cat1_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Anzeigename der Standardticket-Kategorie.", "title": "Kategorie 1 Bezeichnung"}, "ticket_base_price_cat2": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Basispreis f\u00fcr die erm\u00e4\u00dfigte Ticket-Kategorie.", "title": "Kategorie 2 Basispreis"}, "ticket_final_price_cat2": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Endg\u00fcltiger Verkaufspreis f\u00fcr die erm\u00e4\u00dfigte Ticket-Kategorie.", "title": "Kategorie 2 Endpreis"}, "ticket_cat2_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Anzeigename der erm\u00e4\u00dfigten Ticket-Kategorie.", "title": "Kategorie 2 Bezeichnung"}, "ticket_base_price_cat3": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Basispreis f\u00fcr die Sonderpreis-Ticket-Kategorie.", "title": "Kategorie 3 Basispreis"}, "ticket_final_price_cat3": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Endg\u00fcltiger Verkaufspreis f\u00fcr die Sonderpreis-Ticket-Kategorie.", "title": "Kategorie 3 Endpreis"}, "ticket_cat3_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Anzeigename der Sonderpreis-Ticket-Kategorie.", "title": "Kategorie 3 Bezeichnung"}, "merchandise": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Merchandise f\u00fcr das Programm relevant.", "title": "Merchandise"}, "comment_merchandise": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Interner Hinweis zu Merchandise.", "title": "Merchandise-Kommentar"}, "comment_technics": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hinweise zur technischen Ausstattung.", "title": "Technik-Kommentar"}, "comment_lights": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hinweise zur Lichttechnik.", "title": "Licht-Kommentar"}, "comment_sound": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hinweise zur Tontechnik.", "title": "Ton-Kommentar"}, "comment_video": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hinweise zur Videotechnik.", "title": "Video-Kommentar"}, "comment_press": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hinweise f\u00fcr Presse und \u00d6ffentlichkeitsarbeit.", "title": "Presse-Kommentar"}, "travel_party": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Anzahl oder Beschreibung der anreisenden Personen.", "title": "Reisetruppe"}, "deal_share_rel": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Relativer Deal-Anteil in Prozent.", "title": "Deal-Anteil relativ"}, "deal_share_abs": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Fester Deal-Betrag in Euro.", "title": "Deal-Anteil absolut"}, "net_rental_fee": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Netto-Mietgeb\u00fchr in Euro.", "title": "Netto-Mietgeb\u00fchr"}, "rental_fee_is_flat_rate": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "True, wenn die Mietgeb\u00fchr pauschal gilt.", "title": "Pauschalmiete"}, "custom_fields": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "description": "Frei konfigurierbare Felder der Firma.", "title": "Benutzerdefinierte Felder"}, "associated_contact": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts (Adressat) \u2013 nur eigene Firma. null entfernt die Zuordnung.", "title": "Adressat"}, "associated_contact_for_invoice": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts (Vertragspartner) \u2013 nur eigene Firma. null entfernt die Zuordnung.", "title": "Vertragspartner"}, "associated_contact_for_venue": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts vor Ort \u2013 nur eigene Firma. null entfernt die Zuordnung.", "title": "Kontakt vor Ort"}, "associated_technical_contact": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des technischen Kontakts \u2013 nur eigene Firma. null entfernt die Zuordnung.", "title": "Technischer Kontakt"}, "associated_production_contact": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts der Produktionsleitung \u2013 nur eigene Firma. null entfernt die Zuordnung.", "title": "Produktionsleitung"}}, "title": "ProgramPatch", "type": "object"}, "PagedShowDateOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ShowDateOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedShowDateOut", "type": "object"}, "ShowDateOut": {"description": "Spieltermin \u2013 \u00f6ffentliche Daten einer Auff\u00fchrung.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID des Spieltermins.", "format": "uuid", "title": "UUID", "type": "string"}, "associated_program": {"description": "UUID des zugeh\u00f6rigen Programms.", "format": "uuid", "title": "Programm", "type": "string"}, "associated_room_configuration": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID der zugeh\u00f6rigen Raumkonfiguration.", "title": "Raumkonfiguration"}, "status": {"description": "Terminstatus, z.B. 'best\u00e4tigt' oder 'abgesagt'.", "title": "Status", "type": "string"}, "presale_status": {"description": "Status des Vorverkaufs, z.B. 'ja', 'nein'.", "title": "Vorverkaufsstatus", "type": "string"}, "begin_date": {"description": "Datum und Uhrzeit des Beginns.", "format": "date-time", "title": "Beginn", "type": "string"}, "end_date": {"description": "Datum und Uhrzeit des Endes.", "format": "date-time", "title": "Ende", "type": "string"}, "entry_minutes_before_begin": {"default": 90, "description": "Einlasszeit in Minuten vor dem Beginn.", "title": "Einlass vor Beginn", "type": "integer"}, "curfew_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Offizielle Ende-Zeit laut Curfew.", "title": "Curfew"}, "get_in_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Get-in-Zeit.", "title": "Get-in"}, "setup_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeit f\u00fcr den Aufbau.", "title": "Aufbau"}, "rehearsal_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeit f\u00fcr die Probe.", "title": "Probe"}, "soundcheck_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeit f\u00fcr den Soundcheck.", "title": "Soundcheck"}, "pause_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt der Pause.", "title": "Pausenzeit"}, "pause": {"default": true, "description": "Gibt an, ob eine Pause eingeplant ist.", "title": "Pause", "type": "boolean"}, "comment": {"default": "", "description": "Freier Hinweis zum Spieltermin.", "title": "Kommentar", "type": "string"}, "presale_link": {"default": "", "description": "Externer Link zum Ticket-Vorverkauf f\u00fcr diesen Termin.", "title": "Vorverkaufslink", "type": "string"}, "eventim_id": {"default": "", "description": "Externe Eventim-Kennung.", "title": "Eventim-ID", "type": "string"}, "custom_fields": {"additionalProperties": true, "default": {}, "description": "Frei konfigurierbare Felder der Firma.", "title": "Benutzerdefinierte Felder", "type": "object"}, "created_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt der Erstellung.", "title": "Erstellt am"}, "last_edited_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt der letzten \u00c4nderung.", "title": "Zuletzt bearbeitet"}}, "required": ["uuid", "associated_program", "status", "presale_status", "begin_date", "end_date"], "title": "ShowDateOut", "type": "object"}, "ShowDateIn": {"description": "Spieltermin \u2013 Eingabedaten zum Anlegen oder vollst\u00e4ndigen Ersetzen.", "properties": {"associated_program": {"description": "UUID des zugeh\u00f6rigen Programms (eigene Firma).", "format": "uuid", "title": "Programm", "type": "string"}, "associated_room_configuration": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID der Raumkonfiguration (eigene Firma).", "title": "Raumkonfiguration"}, "status": {"default": "af", "description": "Terminstatus, z.B. 'af' f\u00fcr abgesagt, 'cf' f\u00fcr best\u00e4tigt.", "title": "Status", "type": "string"}, "presale_status": {"default": "no", "description": "'ja' oder 'nein'.", "title": "Vorverkaufsstatus", "type": "string"}, "begin_date": {"description": "Datum und Uhrzeit des Beginns.", "format": "date-time", "title": "Beginn", "type": "string"}, "end_date": {"description": "Datum und Uhrzeit des Endes.", "format": "date-time", "title": "Ende", "type": "string"}, "entry_minutes_before_begin": {"default": 90, "description": "Einlasszeit in Minuten vor dem Beginn.", "title": "Einlass vor Beginn", "type": "integer"}, "curfew_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Offizielle Ende-Zeit laut Curfew.", "title": "Curfew"}, "get_in_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Get-in-Zeit.", "title": "Get-in"}, "setup_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeit f\u00fcr den Aufbau.", "title": "Aufbau"}, "rehearsal_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeit f\u00fcr die Probe.", "title": "Probe"}, "soundcheck_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeit f\u00fcr den Soundcheck.", "title": "Soundcheck"}, "pause_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt der Pause.", "title": "Pausenzeit"}, "pause": {"default": true, "description": "Gibt an, ob eine Pause eingeplant ist.", "title": "Pause", "type": "boolean"}, "comment": {"default": "", "description": "Freier Hinweis zum Spieltermin.", "title": "Kommentar", "type": "string"}, "presale_link": {"default": "", "description": "Externer Link zum Ticket-Vorverkauf f\u00fcr diesen Termin.", "title": "Vorverkaufslink", "type": "string"}, "eventim_id": {"default": "", "description": "Externe Eventim-Kennung.", "title": "Eventim-ID", "type": "string"}, "custom_fields": {"additionalProperties": true, "default": {}, "description": "Frei konfigurierbare Felder der Firma.", "title": "Benutzerdefinierte Felder", "type": "object"}}, "required": ["associated_program", "begin_date", "end_date"], "title": "ShowDateIn", "type": "object"}, "ShowDatePatch": {"description": "Spieltermin \u2013 partielle Aktualisierung. Nicht gesendete Felder bleiben unver\u00e4ndert.", "properties": {"associated_program": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des zugeh\u00f6rigen Programms (eigene Firma).", "title": "Programm"}, "associated_room_configuration": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID der Raumkonfiguration (eigene Firma). null entfernt die Zuordnung.", "title": "Raumkonfiguration"}, "status": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Terminstatus.", "title": "Status"}, "presale_status": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Status des Vorverkaufs.", "title": "Vorverkaufsstatus"}, "begin_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Datum und Uhrzeit des Beginns.", "title": "Beginn"}, "end_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Datum und Uhrzeit des Endes.", "title": "Ende"}, "entry_minutes_before_begin": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Einlasszeit in Minuten vor dem Beginn.", "title": "Einlass vor Beginn"}, "curfew_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Offizielle Ende-Zeit laut Curfew.", "title": "Curfew"}, "get_in_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Get-in-Zeit.", "title": "Get-in"}, "setup_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeit f\u00fcr den Aufbau.", "title": "Aufbau"}, "rehearsal_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeit f\u00fcr die Probe.", "title": "Probe"}, "soundcheck_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeit f\u00fcr den Soundcheck.", "title": "Soundcheck"}, "pause_time": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt der Pause.", "title": "Pausenzeit"}, "pause": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Gibt an, ob eine Pause eingeplant ist.", "title": "Pause"}, "comment": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Freier Hinweis zum Spieltermin.", "title": "Kommentar"}, "presale_link": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Externer Link zum Ticket-Vorverkauf.", "title": "Vorverkaufslink"}, "eventim_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Externe Eventim-Kennung.", "title": "Eventim-ID"}, "custom_fields": {"anyOf": [{"additionalProperties": true, "type": "object"}, {"type": "null"}], "description": "Frei konfigurierbare Felder der Firma.", "title": "Benutzerdefinierte Felder"}}, "title": "ShowDatePatch", "type": "object"}, "PagedRoomOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/RoomOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedRoomOut", "type": "object"}, "RoomOut": {"description": "Raum \u2013 \u00f6ffentliche Daten eines Veranstaltungsorts.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID des Raums.", "format": "uuid", "title": "UUID", "type": "string"}, "display_name": {"description": "Name des Raums.", "title": "Anzeigename", "type": "string"}, "info_text": {"default": "", "description": "Beschreibung oder Hinweise zum Raum.", "title": "Infotext", "type": "string"}, "street": {"default": "", "description": "Stra\u00dfe der Adresse.", "title": "Stra\u00dfe", "type": "string"}, "zip_code": {"default": "", "description": "Postleitzahl.", "title": "PLZ", "type": "string"}, "city": {"default": "", "description": "Stadt oder Ort.", "title": "Ort", "type": "string"}, "country": {"default": "DE", "description": "L\u00e4ndercode nach ISO 3166-1 alpha-2.", "title": "Land", "type": "string"}, "phone": {"default": "", "description": "Festnetztelefon des Raums.", "title": "Telefon", "type": "string"}, "mobile": {"default": "", "description": "Mobiltelefon des Raums.", "title": "Mobil", "type": "string"}, "email": {"default": "", "description": "Kontakt-E-Mail-Adresse.", "title": "E-Mail", "type": "string"}, "created_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt der Erstellung.", "title": "Erstellt am"}}, "required": ["uuid", "display_name"], "title": "RoomOut", "type": "object"}, "RoomIn": {"description": "Raum \u2013 Eingabedaten zum Anlegen oder Aktualisieren.", "properties": {"display_name": {"description": "Name des Raums.", "title": "Anzeigename", "type": "string"}, "info_text": {"default": "", "description": "Beschreibung oder Hinweise zum Raum.", "title": "Infotext", "type": "string"}, "street": {"default": "", "description": "Stra\u00dfe der Adresse.", "title": "Stra\u00dfe", "type": "string"}, "zip_code": {"default": "", "description": "Postleitzahl.", "title": "PLZ", "type": "string"}, "city": {"default": "", "description": "Stadt oder Ort.", "title": "Ort", "type": "string"}, "country": {"default": "DE", "description": "L\u00e4ndercode nach ISO 3166-1 alpha-2.", "title": "Land", "type": "string"}, "phone": {"default": "", "description": "Festnetztelefon des Raums.", "title": "Telefon", "type": "string"}, "mobile": {"default": "", "description": "Mobiltelefon des Raums.", "title": "Mobil", "type": "string"}, "email": {"default": "", "description": "Kontakt-E-Mail-Adresse.", "title": "E-Mail", "type": "string"}}, "required": ["display_name"], "title": "RoomIn", "type": "object"}, "RoomPatch": {"description": "Raum \u2013 partielle Aktualisierung.", "properties": {"display_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name des Raums.", "title": "Anzeigename"}, "info_text": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Beschreibung oder Hinweise zum Raum.", "title": "Infotext"}, "street": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Stra\u00dfe der Adresse.", "title": "Stra\u00dfe"}, "zip_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Postleitzahl.", "title": "PLZ"}, "city": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Stadt oder Ort.", "title": "Ort"}, "country": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "L\u00e4ndercode nach ISO 3166-1 alpha-2.", "title": "Land"}, "phone": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Festnetztelefon des Raums.", "title": "Telefon"}, "mobile": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Mobiltelefon des Raums.", "title": "Mobil"}, "email": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Kontakt-E-Mail-Adresse.", "title": "E-Mail"}}, "title": "RoomPatch", "type": "object"}, "PagedRoomConfigurationOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/RoomConfigurationOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedRoomConfigurationOut", "type": "object"}, "RoomConfigurationOut": {"description": "Raumkonfiguration \u2013 \u00f6ffentliche Daten einer Bestuhlung/Aufstellung.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID der Raumkonfiguration.", "format": "uuid", "title": "UUID", "type": "string"}, "associated_room": {"description": "UUID des zugeh\u00f6rigen Raums.", "format": "uuid", "title": "Raum", "type": "string"}, "display_name": {"description": "Name der Konfiguration.", "title": "Anzeigename", "type": "string"}, "info_text": {"default": "", "description": "Beschreibung der Konfiguration.", "title": "Infotext", "type": "string"}, "capacity_pax": {"default": 0, "description": "Maximale Personenanzahl.", "title": "Kapazit\u00e4t", "type": "integer"}, "configuration_image_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "URL zum Bild der Raumkonfiguration.", "title": "Konfigurationsbild-URL"}, "created_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt der Erstellung.", "title": "Erstellt am"}}, "required": ["uuid", "associated_room", "display_name"], "title": "RoomConfigurationOut", "type": "object"}, "PagedProgramCategoryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ProgramCategoryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedProgramCategoryOut", "type": "object"}, "ProgramCategoryOut": {"description": "Programmkategorie \u2013 \u00f6ffentliche Daten.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID der Kategorie.", "format": "uuid", "title": "UUID", "type": "string"}, "category_name": {"description": "Anzeigename der Kategorie.", "title": "Kategoriename", "type": "string"}}, "required": ["uuid", "category_name"], "title": "ProgramCategoryOut", "type": "object"}, "ExtraInvoicePositionCategoryOut": {"description": "Zusatzleistungs-Kategorie \u2013 \u00f6ffentliche Daten.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID der Kategorie.", "format": "uuid", "title": "UUID", "type": "string"}, "category_name": {"description": "Anzeigename der Kategorie.", "title": "Kategoriename", "type": "string"}}, "required": ["uuid", "category_name"], "title": "ExtraInvoicePositionCategoryOut", "type": "object"}, "PagedExtraInvoicePositionCategoryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ExtraInvoicePositionCategoryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedExtraInvoicePositionCategoryOut", "type": "object"}, "ExtraInvoicePositionOut": {"description": "Zusatzleistung \u2013 wiederverwendbare Katalog-Positionsvorlage der Firma.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID der Zusatzleistung.", "format": "uuid", "title": "UUID", "type": "string"}, "display_name": {"description": "Name der Zusatzleistung, z.B. \u201eReinigung\u201c.", "title": "Anzeigename", "type": "string"}, "net_amount": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Netto-Einzelpreis der Vorlage in Euro. Beim Anh\u00e4ngen an ein Programm als Startwert f\u00fcr custom_net_amount \u00fcbernommen.", "title": "Netto-Betrag"}, "vat_rate": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "1.00", "description": "Steuersatz als Faktor, z.B. 1.19 f\u00fcr 19 %.", "title": "MwSt.-Satz"}, "category": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID der Zusatzleistungs-Kategorie (oder null).", "title": "Kategorie"}, "internal": {"default": false, "description": "True = interne Kalkulationsposition, erscheint nicht auf Kundenrechnungen.", "title": "Intern", "type": "boolean"}, "comment": {"default": "", "description": "Freier interner Hinweis.", "title": "Kommentar", "type": "string"}}, "required": ["uuid", "display_name"], "title": "ExtraInvoicePositionOut", "type": "object"}, "PagedExtraInvoicePositionOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ExtraInvoicePositionOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedExtraInvoicePositionOut", "type": "object"}, "ExtraInvoicePositionIn": {"description": "Zusatzleistung \u2013 Eingabedaten zum Anlegen oder vollst\u00e4ndigen Ersetzen.", "properties": {"display_name": {"description": "Name der Zusatzleistung.", "title": "Anzeigename", "type": "string"}, "net_amount": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Netto-Einzelpreis in Euro.", "title": "Netto-Betrag"}, "vat_rate": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "1.00", "description": "Steuersatz als Faktor, z.B. 1.19 f\u00fcr 19 %.", "title": "MwSt.-Satz"}, "category": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID der Zusatzleistungs-Kategorie (nur eigene Firma) oder null.", "title": "Kategorie"}, "internal": {"default": false, "description": "True = interne Kalkulationsposition, nicht auf Kundenrechnungen.", "title": "Intern", "type": "boolean"}, "comment": {"default": "", "description": "Freier interner Hinweis.", "title": "Kommentar", "type": "string"}}, "required": ["display_name"], "title": "ExtraInvoicePositionIn", "type": "object"}, "ExtraInvoicePositionPatch": {"description": "Zusatzleistung \u2013 partielle Aktualisierung. Nicht gesendete Felder bleiben unver\u00e4ndert.", "properties": {"display_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name der Zusatzleistung.", "title": "Anzeigename"}, "net_amount": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Netto-Einzelpreis in Euro.", "title": "Netto-Betrag"}, "vat_rate": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Steuersatz als Faktor, z.B. 1.19 f\u00fcr 19 %.", "title": "MwSt.-Satz"}, "category": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID der Zusatzleistungs-Kategorie (nur eigene Firma). null entfernt die Zuordnung.", "title": "Kategorie"}, "internal": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "True = interne Kalkulationsposition.", "title": "Intern"}, "comment": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Freier interner Hinweis.", "title": "Kommentar"}}, "title": "ExtraInvoicePositionPatch", "type": "object"}, "PagedProgramInvoicePositionOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ProgramInvoicePositionOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedProgramInvoicePositionOut", "type": "object"}, "ProgramInvoicePositionOut": {"description": "Programm-Position \u2013 konkrete Zusatzleistung an einem Programm, mit Preis-Override.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID der Programm-Position.", "format": "uuid", "title": "UUID", "type": "string"}, "program": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des zugeh\u00f6rigen Programms.", "title": "Programm"}, "associated_extra_invoice_position": {"description": "UUID der zugrundeliegenden Zusatzleistung (Katalog).", "format": "uuid", "title": "Zusatzleistung", "type": "string"}, "custom_net_amount": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "F\u00fcr dieses Programm g\u00fcltiger Netto-Einzelpreis (vor Rabatt) in Euro.", "title": "Netto-Einzelpreis"}, "discount": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Rabatt in Prozent (0\u2013100) auf den Netto-Einzelpreis.", "title": "Rabatt"}, "multiplier": {"default": 1, "description": "Menge dieser Position.", "title": "Menge", "type": "integer"}, "per_show_date": {"default": true, "description": "True = die Position gilt je Spieltermin; False = einmalig auf der Rechnung.", "title": "Pro Spieltermin", "type": "boolean"}, "unit_price_net": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Netto-Einzelpreis nach Rabatt. Nur lesbar.", "title": "Einzelpreis netto"}, "net_sum": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Positions-Basissumme (Menge \u00d7 Einzelpreis netto). NICHT die rechnungswirksame Summe \u2013 die Spieltermin-Multiplikation (per_show_date) erfolgt erst beim Rechnungsaufbau. Nur lesbar.", "title": "Netto-Summe"}, "vat_sum": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Steueranteil der Positions-Basissumme. Nur lesbar.", "title": "MwSt.-Summe"}, "gross_sum": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Bruttowert der Positions-Basissumme. Nur lesbar.", "title": "Brutto-Summe"}}, "required": ["uuid", "associated_extra_invoice_position"], "title": "ProgramInvoicePositionOut", "type": "object"}, "ProgramInvoicePositionIn": {"description": "Programm-Position \u2013 Eingabedaten zum Anlegen oder vollst\u00e4ndigen Ersetzen.", "properties": {"program": {"description": "UUID des Programms, an das die Position geh\u00e4ngt wird (eigene Firma).", "format": "uuid", "title": "Programm", "type": "string"}, "associated_extra_invoice_position": {"description": "UUID der zugrundeliegenden Zusatzleistung aus dem Katalog (eigene Firma).", "format": "uuid", "title": "Zusatzleistung", "type": "string"}, "custom_net_amount": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Netto-Einzelpreis (vor Rabatt) in Euro. Wird bei Auslassung aus der Zusatzleistung (net_amount) \u00fcbernommen.", "title": "Netto-Einzelpreis"}, "discount": {"anyOf": [{"maximum": 100.0, "minimum": 0.0, "type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Rabatt in Prozent (0\u2013100).", "title": "Rabatt"}, "multiplier": {"default": 1, "description": "Menge dieser Position (\u2265 0).", "minimum": 0, "title": "Menge", "type": "integer"}, "per_show_date": {"default": true, "description": "True = je Spieltermin; False = einmalig.", "title": "Pro Spieltermin", "type": "boolean"}}, "required": ["program", "associated_extra_invoice_position"], "title": "ProgramInvoicePositionIn", "type": "object"}, "ProgramInvoicePositionPatch": {"description": "Programm-Position \u2013 partielle Aktualisierung. Nicht gesendete Felder bleiben unver\u00e4ndert.", "properties": {"program": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Programms (eigene Firma).", "title": "Programm"}, "associated_extra_invoice_position": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID der zugrundeliegenden Zusatzleistung (eigene Firma).", "title": "Zusatzleistung"}, "custom_net_amount": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Netto-Einzelpreis (vor Rabatt) in Euro.", "title": "Netto-Einzelpreis"}, "discount": {"anyOf": [{"maximum": 100.0, "minimum": 0.0, "type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}, {"type": "null"}], "description": "Rabatt in Prozent (0\u2013100).", "title": "Rabatt"}, "multiplier": {"anyOf": [{"minimum": 0, "type": "integer"}, {"type": "null"}], "description": "Menge dieser Position (\u2265 0).", "title": "Menge"}, "per_show_date": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "True = je Spieltermin; False = einmalig.", "title": "Pro Spieltermin"}}, "title": "ProgramInvoicePositionPatch", "type": "object"}, "ManagingCompanyOut": {"description": "Firma \u2013 Stammdaten der eigenen verwaltenden Firma (Tenant), read-only.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID der Firma.", "format": "uuid", "title": "UUID", "type": "string"}, "company_name": {"default": "", "description": "Name der Firma.", "title": "Firmenname", "type": "string"}, "ceo_first_name": {"default": "", "description": "Vorname der Gesch\u00e4ftsf\u00fchrung.", "title": "GF Vorname", "type": "string"}, "ceo_last_name": {"default": "", "description": "Nachname der Gesch\u00e4ftsf\u00fchrung.", "title": "GF Nachname", "type": "string"}, "ceo_gender": {"default": "d", "description": "Anrede der Gesch\u00e4ftsf\u00fchrung.", "title": "GF Anrede", "type": "string"}, "ceo_title": {"default": "n", "description": "Titel der Gesch\u00e4ftsf\u00fchrung.", "title": "GF Titel", "type": "string"}, "street": {"default": "", "description": "Stra\u00dfe der Firmenadresse.", "title": "Stra\u00dfe", "type": "string"}, "zip_code": {"default": "", "description": "Postleitzahl.", "title": "PLZ", "type": "string"}, "city": {"default": "", "description": "Stadt oder Ort.", "title": "Ort", "type": "string"}, "country": {"default": "DE", "description": "L\u00e4ndercode nach ISO 3166-1 alpha-2.", "title": "Land", "type": "string"}, "phone": {"default": "", "description": "Telefonnummer.", "title": "Telefon", "type": "string"}, "mobile": {"default": "", "description": "Mobilnummer.", "title": "Mobil", "type": "string"}, "email": {"default": "", "description": "Kontakt-E-Mail-Adresse.", "title": "E-Mail", "type": "string"}, "vat_rate": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "1.00", "description": "Standard-Steuersatz als Faktor, z.B. 1.19 f\u00fcr 19 %.", "title": "MwSt.-Satz"}, "vat_id": {"default": "", "description": "Umsatzsteuer-Identifikationsnummer.", "title": "USt-IdNr.", "type": "string"}, "tax_number": {"default": "", "description": "Steuernummer.", "title": "Steuernummer", "type": "string"}, "commercial_register_number": {"default": "", "description": "Handelsregisternummer.", "title": "Handelsregisternr.", "type": "string"}, "register_court": {"default": "", "description": "Registergericht.", "title": "Registergericht", "type": "string"}, "iban": {"default": "", "description": "IBAN der Firma.", "title": "IBAN", "type": "string"}, "bic": {"default": "", "description": "BIC der Firma.", "title": "BIC", "type": "string"}, "bank_name": {"default": "", "description": "Name der Bank.", "title": "Bank", "type": "string"}, "invoice_number_counter": {"default": 1, "description": "Aktueller Stand des Rechnungsnummernkreises.", "title": "Rechnungsnummer-Z\u00e4hler", "type": "integer"}, "invoice_number_format": {"default": "", "description": "Format-Template der Rechnungsnummer.", "title": "Rechnungsnummer-Format", "type": "string"}, "invoice_footer_default": {"default": "", "description": "Standard-Fu\u00dftext f\u00fcr Rechnungen.", "title": "Rechnungs-Fu\u00dftext", "type": "string"}, "default_payment_term_days": {"default": 14, "description": "Standard-Zahlungsziel in Tagen.", "title": "Zahlungsziel (Tage)", "type": "integer"}, "accounting_email": {"default": "", "description": "E-Mail-Adresse der Buchhaltung.", "title": "Buchhaltungs-E-Mail", "type": "string"}}, "required": ["uuid"], "title": "ManagingCompanyOut", "type": "object"}, "PagedTicketSalesOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/TicketSalesOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedTicketSalesOut", "type": "object"}, "TicketSalesOut": {"description": "Ticketverkauf \u2013 Verkaufs-/Auslastungsstand zu einem Spieltermin, read-only.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID des Ticketverkaufs-Eintrags.", "format": "uuid", "title": "UUID", "type": "string"}, "show_date": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des zugeh\u00f6rigen Spieltermins.", "title": "Spieltermin"}, "source": {"description": "Datenquelle: 'ma' (manuelle Eingabe) oder 'ev' (Eventim-Import).", "title": "Quelle", "type": "string"}, "timestamp": {"description": "Zeitpunkt, auf den sich der Verkaufsstand bezieht.", "format": "date-time", "title": "Stand", "type": "string"}, "num_tickets_cat1": {"default": 0, "description": "Verkaufte Tickets Kategorie 1 (manuelle Eingabe).", "title": "Verkauft Kat. 1", "type": "integer"}, "num_tickets_cat2": {"default": 0, "description": "Verkaufte Tickets Kategorie 2 (manuelle Eingabe).", "title": "Verkauft Kat. 2", "type": "integer"}, "num_tickets_cat3": {"default": 0, "description": "Verkaufte Tickets Kategorie 3 (manuelle Eingabe).", "title": "Verkauft Kat. 3", "type": "integer"}, "comment": {"default": "", "description": "Freier Hinweis.", "title": "Kommentar", "type": "string"}, "fkz": {"default": "", "description": "Eventim-Fremdkennzeichen.", "title": "FKZ", "type": "string"}, "seats_total": {"default": 0, "description": "Gesamtplatzzahl (Eventim-Import).", "title": "Pl\u00e4tze gesamt", "type": "integer"}, "seats_blocked": {"default": 0, "description": "Gesperrte Pl\u00e4tze (Eventim-Import).", "title": "Pl\u00e4tze gesperrt", "type": "integer"}, "seats_optioned": {"default": 0, "description": "Optionierte Pl\u00e4tze (Eventim-Import).", "title": "Pl\u00e4tze optioniert", "type": "integer"}, "reserved_num": {"default": 0, "description": "Anzahl reservierter Tickets.", "title": "Reserviert Anzahl", "type": "integer"}, "reserved_value_euro": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Wert reservierter Tickets in Euro.", "title": "Reserviert Wert"}, "external_sales_num": {"default": 0, "description": "Extern verkaufte Tickets.", "title": "Extern verkauft Anzahl", "type": "integer"}, "external_sales_value_euro": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Wert extern verkaufter Tickets in Euro.", "title": "Extern verkauft Wert"}, "organizer_sales_num": {"default": 0, "description": "\u00dcber den Veranstalter verkaufte Tickets.", "title": "Veranstalter verkauft Anzahl", "type": "integer"}, "organizer_sales_value_euro": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Wert der Veranstalter-Verk\u00e4ufe in Euro.", "title": "Veranstalter verkauft Wert"}, "organizer_sales_presale_charge_euro": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Vorverkaufsgeb\u00fchr der Veranstalter-Verk\u00e4ufe in Euro.", "title": "VVK-Geb\u00fchr Veranstalter"}, "imported_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt des Imports.", "title": "Importiert am"}, "total_tickets_sold": {"default": 0, "description": "Gesamtzahl verkaufter Tickets. Nur lesbar.", "title": "Verkauft gesamt", "type": "integer"}, "num_total_seats": {"default": 0, "description": "Effektive Gesamtplatzzahl (aus Raumkonfiguration oder Import). Nur lesbar.", "title": "Pl\u00e4tze gesamt (effektiv)", "type": "integer"}, "seats_free": {"default": 0, "description": "Freie Pl\u00e4tze. Nur lesbar.", "title": "Pl\u00e4tze frei", "type": "integer"}, "total_sales_value_euro": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Gesamter Verkaufswert in Euro. Nur lesbar.", "title": "Verkaufswert gesamt"}, "occupancy_color": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Hex-Farbcode f\u00fcr die Auslastung. Nur lesbar.", "title": "Auslastungsfarbe"}}, "required": ["uuid", "source", "timestamp"], "title": "TicketSalesOut", "type": "object"}, "ContactOut": {"description": "Kontakt \u2013 \u00f6ffentliche Daten eines Ansprechpartners oder einer Firma.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID des Kontakts.", "format": "uuid", "title": "UUID", "type": "string"}, "client_number": {"description": "Fortlaufende, pro Firma serverseitig vergebene Kundennummer (schreibgesch\u00fctzt).", "title": "Kundennummer", "type": "integer"}, "categories": {"default": [], "description": "UUIDs der zugewiesenen Kontaktkategorien.", "items": {"format": "uuid", "type": "string"}, "title": "Kategorien", "type": "array"}, "company_name": {"default": "", "description": "Name der Firma bzw. Organisation.", "title": "Firmenname", "type": "string"}, "gender_address": {"default": "E", "description": "Anredeform: 'E' (keine), 'M' (Herr), 'F' (Frau).", "title": "Anrede", "type": "string"}, "first_name": {"default": "", "description": "Vorname der Person.", "title": "Vorname", "type": "string"}, "last_name": {"default": "", "description": "Nachname der Person.", "title": "Nachname", "type": "string"}, "nickname": {"default": "", "description": "Interner Spitz- oder Kurzname.", "title": "Spitzname", "type": "string"}, "position": {"default": "", "description": "Funktion oder Position der Person.", "title": "Position", "type": "string"}, "extra_address": {"default": "", "description": "Zus\u00e4tzliche Adresszeile.", "title": "Adresszusatz", "type": "string"}, "street": {"default": "", "description": "Stra\u00dfe und Hausnummer.", "title": "Stra\u00dfe", "type": "string"}, "zip_code": {"default": "", "description": "Postleitzahl.", "title": "PLZ", "type": "string"}, "city": {"default": "", "description": "Stadt oder Ort.", "title": "Ort", "type": "string"}, "country": {"default": "DE", "description": "L\u00e4ndercode nach ISO 3166-1 alpha-2.", "title": "Land", "type": "string"}, "email": {"default": "", "description": "E-Mail-Adresse.", "title": "E-Mail", "type": "string"}, "phone": {"default": "", "description": "Festnetztelefon.", "title": "Telefon", "type": "string"}, "fax": {"default": "", "description": "Faxnummer.", "title": "Fax", "type": "string"}, "mobile": {"default": "", "description": "Mobiltelefon.", "title": "Mobil", "type": "string"}, "gema_number": {"default": "", "description": "GEMA-Mitgliedsnummer.", "title": "GEMA-Nummer", "type": "string"}, "ksk_number": {"default": "", "description": "K\u00fcnstlersozialkasse-Nummer.", "title": "KSK-Nummer", "type": "string"}, "eu_vat_id": {"default": "", "description": "Umsatzsteuer-Identifikationsnummer.", "title": "USt-IdNr.", "type": "string"}, "ksk_status": {"default": "e", "description": "Status der K\u00fcnstlersozialabgabe: 'e', 'y', 'n', 'p', 'o'.", "title": "KSK-Status", "type": "string"}, "show_warning": {"default": false, "description": "Zeigt einen Warnhinweis f\u00fcr diesen Kontakt an.", "title": "Warnhinweis", "type": "boolean"}, "comment": {"default": "", "description": "Interner Freitext-Kommentar.", "title": "Kommentar", "type": "string"}, "created_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt der Erstellung.", "title": "Erstellt am"}}, "required": ["uuid", "client_number"], "title": "ContactOut", "type": "object"}, "PagedContactOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ContactOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedContactOut", "type": "object"}, "ContactIn": {"description": "Kontakt \u2013 Eingabedaten zum Anlegen oder vollst\u00e4ndigen Ersetzen.", "properties": {"categories": {"default": [], "description": "UUIDs der zugewiesenen Kontaktkategorien (nur eigene Firma).", "items": {"format": "uuid", "type": "string"}, "title": "Kategorien", "type": "array"}, "company_name": {"default": "", "description": "Name der Firma bzw. Organisation.", "title": "Firmenname", "type": "string"}, "gender_address": {"default": "E", "description": "Anredeform: 'E' (keine), 'M' (Herr), 'F' (Frau).", "title": "Anrede", "type": "string"}, "first_name": {"default": "", "description": "Vorname der Person.", "title": "Vorname", "type": "string"}, "last_name": {"default": "", "description": "Nachname der Person.", "title": "Nachname", "type": "string"}, "nickname": {"default": "", "description": "Interner Spitz- oder Kurzname.", "title": "Spitzname", "type": "string"}, "position": {"default": "", "description": "Funktion oder Position der Person.", "title": "Position", "type": "string"}, "extra_address": {"default": "", "description": "Zus\u00e4tzliche Adresszeile.", "title": "Adresszusatz", "type": "string"}, "street": {"default": "", "description": "Stra\u00dfe und Hausnummer.", "title": "Stra\u00dfe", "type": "string"}, "zip_code": {"default": "", "description": "Postleitzahl.", "title": "PLZ", "type": "string"}, "city": {"default": "", "description": "Stadt oder Ort.", "title": "Ort", "type": "string"}, "country": {"default": "DE", "description": "L\u00e4ndercode nach ISO 3166-1 alpha-2.", "title": "Land", "type": "string"}, "email": {"default": "", "description": "E-Mail-Adresse.", "title": "E-Mail", "type": "string"}, "phone": {"default": "", "description": "Festnetztelefon.", "title": "Telefon", "type": "string"}, "fax": {"default": "", "description": "Faxnummer.", "title": "Fax", "type": "string"}, "mobile": {"default": "", "description": "Mobiltelefon.", "title": "Mobil", "type": "string"}, "gema_number": {"default": "", "description": "GEMA-Mitgliedsnummer.", "title": "GEMA-Nummer", "type": "string"}, "ksk_number": {"default": "", "description": "K\u00fcnstlersozialkasse-Nummer.", "title": "KSK-Nummer", "type": "string"}, "eu_vat_id": {"default": "", "description": "Umsatzsteuer-Identifikationsnummer.", "title": "USt-IdNr.", "type": "string"}, "ksk_status": {"default": "e", "description": "Status der K\u00fcnstlersozialabgabe: 'e', 'y', 'n', 'p', 'o'.", "title": "KSK-Status", "type": "string"}, "show_warning": {"default": false, "description": "Zeigt einen Warnhinweis f\u00fcr diesen Kontakt an.", "title": "Warnhinweis", "type": "boolean"}, "comment": {"default": "", "description": "Interner Freitext-Kommentar.", "title": "Kommentar", "type": "string"}}, "title": "ContactIn", "type": "object"}, "ContactPatch": {"description": "Kontakt \u2013 partielle Aktualisierung. Nicht gesendete Felder bleiben unver\u00e4ndert.", "properties": {"categories": {"anyOf": [{"items": {"format": "uuid", "type": "string"}, "type": "array"}, {"type": "null"}], "description": "UUIDs der zugewiesenen Kontaktkategorien (nur eigene Firma).", "title": "Kategorien"}, "company_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name der Firma bzw. Organisation.", "title": "Firmenname"}, "gender_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Anredeform: 'E' (keine), 'M' (Herr), 'F' (Frau).", "title": "Anrede"}, "first_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Vorname der Person.", "title": "Vorname"}, "last_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Nachname der Person.", "title": "Nachname"}, "nickname": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Interner Spitz- oder Kurzname.", "title": "Spitzname"}, "position": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Funktion oder Position der Person.", "title": "Position"}, "extra_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Zus\u00e4tzliche Adresszeile.", "title": "Adresszusatz"}, "street": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Stra\u00dfe und Hausnummer.", "title": "Stra\u00dfe"}, "zip_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Postleitzahl.", "title": "PLZ"}, "city": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Stadt oder Ort.", "title": "Ort"}, "country": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "L\u00e4ndercode nach ISO 3166-1 alpha-2.", "title": "Land"}, "email": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "E-Mail-Adresse.", "title": "E-Mail"}, "phone": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Festnetztelefon.", "title": "Telefon"}, "fax": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Faxnummer.", "title": "Fax"}, "mobile": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Mobiltelefon.", "title": "Mobil"}, "gema_number": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "GEMA-Mitgliedsnummer.", "title": "GEMA-Nummer"}, "ksk_number": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "K\u00fcnstlersozialkasse-Nummer.", "title": "KSK-Nummer"}, "eu_vat_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Umsatzsteuer-Identifikationsnummer.", "title": "USt-IdNr."}, "ksk_status": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Status der K\u00fcnstlersozialabgabe: 'e', 'y', 'n', 'p', 'o'.", "title": "KSK-Status"}, "show_warning": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Zeigt einen Warnhinweis f\u00fcr diesen Kontakt an.", "title": "Warnhinweis"}, "comment": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Interner Freitext-Kommentar.", "title": "Kommentar"}}, "title": "ContactPatch", "type": "object"}, "ContactCategoryOut": {"description": "Kontaktkategorie \u2013 \u00f6ffentliche Daten.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID der Kontaktkategorie.", "format": "uuid", "title": "UUID", "type": "string"}, "category_name": {"description": "Anzeigename der Kontaktkategorie.", "title": "Kategoriename", "type": "string"}}, "required": ["uuid", "category_name"], "title": "ContactCategoryOut", "type": "object"}, "PagedContactCategoryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ContactCategoryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedContactCategoryOut", "type": "object"}, "InvoiceLineItemOut": {"description": "Rechnungsposition \u2013 eingebettet in die Rechnung, unver\u00e4nderlich.", "properties": {"position": {"description": "Reihenfolge der Position auf der Rechnung.", "title": "Position", "type": "integer"}, "kind": {"description": "Positionsart: 'rental', 'extra', 'deposit' oder 'deposit_deduction'.", "title": "Art", "type": "string"}, "description": {"description": "Text der Rechnungsposition.", "title": "Beschreibung", "type": "string"}, "reference_date": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "description": "Datum, auf das sich die Position bezieht.", "title": "Leistungsdatum"}, "quantity": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "1.00", "description": "Menge.", "title": "Menge"}, "unit_price_net": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Netto-Einzelpreis in Euro.", "title": "Einzelpreis netto"}, "vat_rate": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "1.00", "description": "Steuersatz als Faktor, z.B. 1.19 f\u00fcr 19 %.", "title": "MwSt.-Satz"}, "net_amount": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Netto-Summe der Position in Euro.", "title": "Netto-Betrag"}, "vat_amount": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Steueranteil der Position in Euro.", "title": "MwSt.-Betrag"}, "gross_amount": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Brutto-Summe der Position in Euro.", "title": "Brutto-Betrag"}}, "required": ["position", "kind", "description"], "title": "InvoiceLineItemOut", "type": "object"}, "InvoiceOut": {"description": "Rechnung \u2013 ausgestellte, unver\u00e4nderliche Rechnung (read-only, siehe ADR 0006).", "properties": {"uuid": {"description": "\u00d6ffentliche UUID der Rechnung.", "format": "uuid", "title": "UUID", "type": "string"}, "invoice_number": {"description": "Fortlaufende Rechnungsnummer.", "title": "Rechnungsnummer", "type": "string"}, "invoice_type": {"description": "Art: 'regular', 'correction', 'cancellation', 'deposit' oder 'final'.", "title": "Rechnungsart", "type": "string"}, "associated_program": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des zugeh\u00f6rigen Programms (oder null).", "title": "Programm"}, "associated_contact_for_invoice": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Kontakts (Vertragspartner) oder null.", "title": "Rechnungsempf\u00e4nger"}, "related_invoice": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID der bezogenen Rechnung (z.B. bei Storno/Korrektur) oder null.", "title": "Bezugsrechnung"}, "referenced_deposits": {"default": [], "description": "UUIDs der bei einer Schlussrechnung abgezogenen Anzahlungsrechnungen.", "items": {"format": "uuid", "type": "string"}, "title": "Referenzierte Anzahlungen", "type": "array"}, "issue_date": {"description": "Ausstellungsdatum.", "format": "date", "title": "Rechnungsdatum", "type": "string"}, "service_date_start": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "description": "Beginn des Leistungszeitraums.", "title": "Leistungszeitraum Beginn"}, "service_date_end": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "description": "Ende des Leistungszeitraums.", "title": "Leistungszeitraum Ende"}, "payment_due_date": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "description": "Zahlungsziel.", "title": "F\u00e4llig am"}, "issuer_company_name": {"default": "", "description": "Firmenname des Ausstellers (Snapshot).", "title": "Aussteller Firma", "type": "string"}, "issuer_address_line1": {"default": "", "description": "Adresszeile des Ausstellers (Snapshot).", "title": "Aussteller Adresse", "type": "string"}, "issuer_zip": {"default": "", "description": "PLZ des Ausstellers (Snapshot).", "title": "Aussteller PLZ", "type": "string"}, "issuer_city": {"default": "", "description": "Ort des Ausstellers (Snapshot).", "title": "Aussteller Ort", "type": "string"}, "issuer_country": {"default": "DE", "description": "Land des Ausstellers (Snapshot).", "title": "Aussteller Land", "type": "string"}, "issuer_ceo": {"default": "", "description": "Gesch\u00e4ftsf\u00fchrung des Ausstellers (Snapshot).", "title": "Aussteller Gesch\u00e4ftsf\u00fchrung", "type": "string"}, "issuer_vat_id": {"default": "", "description": "USt-IdNr. des Ausstellers (Snapshot).", "title": "Aussteller USt-IdNr.", "type": "string"}, "issuer_tax_number": {"default": "", "description": "Steuernummer des Ausstellers (Snapshot).", "title": "Aussteller Steuernummer", "type": "string"}, "issuer_commercial_register_number": {"default": "", "description": "Handelsregisternummer des Ausstellers (Snapshot).", "title": "Aussteller Handelsregisternr.", "type": "string"}, "issuer_register_court": {"default": "", "description": "Registergericht des Ausstellers (Snapshot).", "title": "Aussteller Registergericht", "type": "string"}, "issuer_iban": {"default": "", "description": "IBAN des Ausstellers (Snapshot).", "title": "Aussteller IBAN", "type": "string"}, "issuer_bic": {"default": "", "description": "BIC des Ausstellers (Snapshot).", "title": "Aussteller BIC", "type": "string"}, "issuer_bank_name": {"default": "", "description": "Bankname des Ausstellers (Snapshot).", "title": "Aussteller Bank", "type": "string"}, "issuer_email": {"default": "", "description": "E-Mail des Ausstellers (Snapshot).", "title": "Aussteller E-Mail", "type": "string"}, "issuer_phone": {"default": "", "description": "Telefon des Ausstellers (Snapshot).", "title": "Aussteller Telefon", "type": "string"}, "issuer_logo_path": {"default": "", "description": "Pfad zum Logo des Ausstellers (Snapshot).", "title": "Aussteller Logo-Pfad", "type": "string"}, "recipient_company_name": {"default": "", "description": "Firmenname des Empf\u00e4ngers (Snapshot).", "title": "Empf\u00e4nger Firma", "type": "string"}, "recipient_first_name": {"default": "", "description": "Vorname des Empf\u00e4ngers (Snapshot).", "title": "Empf\u00e4nger Vorname", "type": "string"}, "recipient_last_name": {"default": "", "description": "Nachname des Empf\u00e4ngers (Snapshot).", "title": "Empf\u00e4nger Nachname", "type": "string"}, "recipient_address_line1": {"default": "", "description": "Adresszeile des Empf\u00e4ngers (Snapshot).", "title": "Empf\u00e4nger Adresse", "type": "string"}, "recipient_zip": {"default": "", "description": "PLZ des Empf\u00e4ngers (Snapshot).", "title": "Empf\u00e4nger PLZ", "type": "string"}, "recipient_city": {"default": "", "description": "Ort des Empf\u00e4ngers (Snapshot).", "title": "Empf\u00e4nger Ort", "type": "string"}, "recipient_country": {"default": "DE", "description": "Land des Empf\u00e4ngers (Snapshot).", "title": "Empf\u00e4nger Land", "type": "string"}, "recipient_eu_vat_id": {"default": "", "description": "USt-IdNr. des Empf\u00e4ngers (Snapshot).", "title": "Empf\u00e4nger USt-IdNr.", "type": "string"}, "recipient_email": {"default": "", "description": "E-Mail des Empf\u00e4ngers (Snapshot).", "title": "Empf\u00e4nger E-Mail", "type": "string"}, "subtotal_net": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Netto-Zwischensumme in Euro.", "title": "Zwischensumme netto"}, "total_vat": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Steueranteil gesamt in Euro.", "title": "MwSt. gesamt"}, "total_gross": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Bruttobetrag in Euro.", "title": "Bruttobetrag"}, "deposits_deducted": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Summe abgezogener Anzahlungen in Euro.", "title": "Abgezogene Anzahlungen"}, "amount_due": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string"}], "default": "0.00", "description": "Offener Zahlbetrag in Euro.", "title": "Zahlbetrag"}, "header_note": {"default": "", "description": "Freier Text im Rechnungskopf.", "title": "Kopftext", "type": "string"}, "footer_note": {"default": "", "description": "Freier Text im Rechnungsfu\u00df.", "title": "Fu\u00dftext", "type": "string"}, "created_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt der Ausstellung.", "title": "Erstellt am"}, "line_items": {"default": [], "description": "Rechnungspositionen.", "items": {"$ref": "#/components/schemas/InvoiceLineItemOut"}, "title": "Positionen", "type": "array"}}, "required": ["uuid", "invoice_number", "invoice_type", "issue_date"], "title": "InvoiceOut", "type": "object"}, "PagedInvoiceOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/InvoiceOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedInvoiceOut", "type": "object"}, "PagedStaffCategoryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/StaffCategoryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedStaffCategoryOut", "type": "object"}, "StaffCategoryOut": {"description": "Mitarbeiter-Kategorie \u2013 \u00f6ffentliche Daten.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID der Kategorie.", "format": "uuid", "title": "UUID", "type": "string"}, "category_name": {"description": "Anzeigename der Kategorie.", "title": "Kategoriename", "type": "string"}}, "required": ["uuid", "category_name"], "title": "StaffCategoryOut", "type": "object"}, "PagedStaffPersonOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/StaffPersonOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedStaffPersonOut", "type": "object"}, "StaffPersonOut": {"description": "Mitarbeiter \u2013 \u00f6ffentliche Daten (ohne sensible Personal-/Finanzfelder).", "properties": {"uuid": {"description": "\u00d6ffentliche UUID des Mitarbeiters.", "format": "uuid", "title": "UUID", "type": "string"}, "gender_address": {"default": "E", "description": "Anrede: 'E' (keine), 'M' (Herr), 'F' (Frau).", "title": "Anrede", "type": "string"}, "first_name": {"default": "", "description": "Vorname.", "title": "Vorname", "type": "string"}, "last_name": {"default": "", "description": "Nachname.", "title": "Nachname", "type": "string"}, "nickname": {"default": "", "description": "Spitzname / Rufname.", "title": "Spitzname", "type": "string"}, "extra_address": {"default": "", "description": "Zus\u00e4tzliche Adresszeile.", "title": "Adresszusatz", "type": "string"}, "street": {"default": "", "description": "Stra\u00dfe.", "title": "Stra\u00dfe", "type": "string"}, "zip_code": {"default": "", "description": "Postleitzahl.", "title": "PLZ", "type": "string"}, "city": {"default": "", "description": "Stadt oder Ort.", "title": "Ort", "type": "string"}, "country": {"default": "DE", "description": "L\u00e4ndercode nach ISO 3166-1 alpha-2.", "title": "Land", "type": "string"}, "email": {"default": "", "description": "E-Mail-Adresse.", "title": "E-Mail", "type": "string"}, "phone": {"default": "", "description": "Telefonnummer.", "title": "Telefon", "type": "string"}, "mobile": {"default": "", "description": "Mobilnummer.", "title": "Mobil", "type": "string"}, "permanent_employee": {"default": false, "description": "Ob es sich um eine feste Anstellung handelt.", "title": "Festangestellt", "type": "boolean"}, "deployed_since": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "description": "Datum des Einsatzbeginns.", "title": "Im Einsatz seit"}, "comment": {"default": "", "description": "Freier Hinweis.", "title": "Kommentar", "type": "string"}, "categories": {"default": [], "description": "UUIDs der zugewiesenen Mitarbeiter-Kategorien.", "items": {"format": "uuid", "type": "string"}, "title": "Kategorien", "type": "array"}, "created_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt der Erstellung.", "title": "Erstellt am"}}, "required": ["uuid"], "title": "StaffPersonOut", "type": "object"}, "StaffPersonIn": {"description": "Mitarbeiter \u2013 Eingabedaten (ohne sensible Personal-/Finanzfelder).", "properties": {"gender_address": {"default": "E", "description": "'E', 'M' oder 'F'.", "title": "Anrede", "type": "string"}, "first_name": {"default": "", "description": "Vorname.", "title": "Vorname", "type": "string"}, "last_name": {"default": "", "description": "Nachname.", "title": "Nachname", "type": "string"}, "nickname": {"default": "", "description": "Spitzname / Rufname.", "title": "Spitzname", "type": "string"}, "extra_address": {"default": "", "description": "Zus\u00e4tzliche Adresszeile.", "title": "Adresszusatz", "type": "string"}, "street": {"default": "", "description": "Stra\u00dfe.", "title": "Stra\u00dfe", "type": "string"}, "zip_code": {"default": "", "description": "Postleitzahl.", "title": "PLZ", "type": "string"}, "city": {"default": "", "description": "Stadt oder Ort.", "title": "Ort", "type": "string"}, "country": {"default": "DE", "description": "L\u00e4ndercode nach ISO 3166-1 alpha-2.", "title": "Land", "type": "string"}, "email": {"default": "", "description": "E-Mail-Adresse.", "title": "E-Mail", "type": "string"}, "phone": {"default": "", "description": "Telefonnummer.", "title": "Telefon", "type": "string"}, "mobile": {"default": "", "description": "Mobilnummer.", "title": "Mobil", "type": "string"}, "permanent_employee": {"default": false, "description": "Ob es sich um eine feste Anstellung handelt.", "title": "Festangestellt", "type": "boolean"}, "deployed_since": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "description": "Datum des Einsatzbeginns.", "title": "Im Einsatz seit"}, "comment": {"default": "", "description": "Freier Hinweis.", "title": "Kommentar", "type": "string"}, "categories": {"default": [], "description": "UUIDs der Mitarbeiter-Kategorien (nur eigene Firma).", "items": {"format": "uuid", "type": "string"}, "title": "Kategorien", "type": "array"}}, "title": "StaffPersonIn", "type": "object"}, "StaffPersonPatch": {"description": "Mitarbeiter \u2013 partielle Aktualisierung. Nicht gesendete Felder bleiben unver\u00e4ndert.", "properties": {"gender_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "'E', 'M' oder 'F'.", "title": "Anrede"}, "first_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Vorname.", "title": "Vorname"}, "last_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Nachname.", "title": "Nachname"}, "nickname": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Spitzname / Rufname.", "title": "Spitzname"}, "extra_address": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Zus\u00e4tzliche Adresszeile.", "title": "Adresszusatz"}, "street": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Stra\u00dfe.", "title": "Stra\u00dfe"}, "zip_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Postleitzahl.", "title": "PLZ"}, "city": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Stadt oder Ort.", "title": "Ort"}, "country": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "L\u00e4ndercode nach ISO 3166-1 alpha-2.", "title": "Land"}, "email": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "E-Mail-Adresse.", "title": "E-Mail"}, "phone": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Telefonnummer.", "title": "Telefon"}, "mobile": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Mobilnummer.", "title": "Mobil"}, "permanent_employee": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Ob es sich um eine feste Anstellung handelt.", "title": "Festangestellt"}, "deployed_since": {"anyOf": [{"format": "date", "type": "string"}, {"type": "null"}], "description": "Datum des Einsatzbeginns.", "title": "Im Einsatz seit"}, "comment": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Freier Hinweis.", "title": "Kommentar"}, "categories": {"anyOf": [{"items": {"format": "uuid", "type": "string"}, "type": "array"}, {"type": "null"}], "description": "UUIDs der Mitarbeiter-Kategorien (nur eigene Firma).", "title": "Kategorien"}}, "title": "StaffPersonPatch", "type": "object"}, "PagedTaskOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/TaskOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedTaskOut", "type": "object"}, "TaskOut": {"description": "Aufgabe \u2013 benannte T\u00e4tigkeit einer Schicht.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID der Aufgabe.", "format": "uuid", "title": "UUID", "type": "string"}, "display_name": {"default": "", "description": "Name der Aufgabe, z.B. \u201eEinlass\u201c.", "title": "Anzeigename", "type": "string"}, "description": {"default": "", "description": "Beschreibung der Aufgabe.", "title": "Beschreibung", "type": "string"}}, "required": ["uuid"], "title": "TaskOut", "type": "object"}, "TaskIn": {"description": "Aufgabe \u2013 Eingabedaten.", "properties": {"display_name": {"default": "", "description": "Name der Aufgabe.", "title": "Anzeigename", "type": "string"}, "description": {"default": "", "description": "Beschreibung der Aufgabe.", "title": "Beschreibung", "type": "string"}}, "title": "TaskIn", "type": "object"}, "TaskPatch": {"description": "Aufgabe \u2013 partielle Aktualisierung.", "properties": {"display_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name der Aufgabe.", "title": "Anzeigename"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Beschreibung der Aufgabe.", "title": "Beschreibung"}}, "title": "TaskPatch", "type": "object"}, "PagedShiftEntryOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/ShiftEntryOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedShiftEntryOut", "type": "object"}, "ShiftBreakSchema": {"description": "Pause innerhalb einer Schicht.", "properties": {"begin_date": {"description": "Beginn der Pause.", "format": "date-time", "title": "Beginn", "type": "string"}, "end_date": {"description": "Ende der Pause.", "format": "date-time", "title": "Ende", "type": "string"}}, "required": ["begin_date", "end_date"], "title": "ShiftBreakSchema", "type": "object"}, "ShiftEntryOut": {"description": "Schicht \u2013 Zuordnung eines Mitarbeiters zu einem Spieltermin f\u00fcr eine Aufgabe.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID der Schicht.", "format": "uuid", "title": "UUID", "type": "string"}, "show_date": {"description": "UUID des zugeh\u00f6rigen Spieltermins.", "format": "uuid", "title": "Spieltermin", "type": "string"}, "staff_person": {"description": "UUID des zugewiesenen Mitarbeiters.", "format": "uuid", "title": "Mitarbeiter", "type": "string"}, "task": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID der Aufgabe (oder null).", "title": "Aufgabe"}, "begin_date": {"description": "Geplanter Dienstbeginn.", "format": "date-time", "title": "Beginn (geplant)", "type": "string"}, "end_date": {"description": "Geplantes Dienstende.", "format": "date-time", "title": "Ende (geplant)", "type": "string"}, "actual_begin_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Tats\u00e4chlicher Dienstbeginn (Zeiterfassung).", "title": "Beginn (tats\u00e4chlich)"}, "actual_end_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Tats\u00e4chliches Dienstende (Zeiterfassung).", "title": "Ende (tats\u00e4chlich)"}, "comment": {"default": "", "description": "Freier Hinweis.", "title": "Kommentar", "type": "string"}, "is_event_lead": {"default": false, "description": "Ob diese Schicht die Veranstaltungsleitung ist.", "title": "Veranstaltungsleiter", "type": "boolean"}, "breaks": {"default": [], "description": "Pausen innerhalb der Schicht.", "items": {"$ref": "#/components/schemas/ShiftBreakSchema"}, "title": "Pausen", "type": "array"}, "created_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Zeitpunkt der Erstellung.", "title": "Erstellt am"}}, "required": ["uuid", "show_date", "staff_person", "begin_date", "end_date"], "title": "ShiftEntryOut", "type": "object"}, "ShiftEntryIn": {"description": "Schicht \u2013 Eingabedaten zum Anlegen oder vollst\u00e4ndigen Ersetzen.", "properties": {"show_date": {"description": "UUID des Spieltermins (eigene Firma).", "format": "uuid", "title": "Spieltermin", "type": "string"}, "staff_person": {"description": "UUID des Mitarbeiters (eigene Firma).", "format": "uuid", "title": "Mitarbeiter", "type": "string"}, "task": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID der Aufgabe (eigene Firma) oder null.", "title": "Aufgabe"}, "begin_date": {"description": "Geplanter Dienstbeginn.", "format": "date-time", "title": "Beginn (geplant)", "type": "string"}, "end_date": {"description": "Geplantes Dienstende.", "format": "date-time", "title": "Ende (geplant)", "type": "string"}, "actual_begin_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Tats\u00e4chlicher Dienstbeginn.", "title": "Beginn (tats\u00e4chlich)"}, "actual_end_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Tats\u00e4chliches Dienstende.", "title": "Ende (tats\u00e4chlich)"}, "comment": {"default": "", "description": "Freier Hinweis.", "title": "Kommentar", "type": "string"}, "is_event_lead": {"default": false, "description": "Ob diese Schicht die Veranstaltungsleitung ist.", "title": "Veranstaltungsleiter", "type": "boolean"}, "breaks": {"default": [], "description": "Pausen; ersetzen beim Schreiben die bestehenden.", "items": {"$ref": "#/components/schemas/ShiftBreakSchema"}, "title": "Pausen", "type": "array"}}, "required": ["show_date", "staff_person", "begin_date", "end_date"], "title": "ShiftEntryIn", "type": "object"}, "ShiftEntryPatch": {"description": "Schicht \u2013 partielle Aktualisierung. Nicht gesendete Felder bleiben unver\u00e4ndert.", "properties": {"show_date": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Spieltermins (eigene Firma).", "title": "Spieltermin"}, "staff_person": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Mitarbeiters (eigene Firma).", "title": "Mitarbeiter"}, "task": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID der Aufgabe (eigene Firma). null entfernt die Zuordnung.", "title": "Aufgabe"}, "begin_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Geplanter Dienstbeginn.", "title": "Beginn (geplant)"}, "end_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Geplantes Dienstende.", "title": "Ende (geplant)"}, "actual_begin_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Tats\u00e4chlicher Dienstbeginn.", "title": "Beginn (tats\u00e4chlich)"}, "actual_end_date": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Tats\u00e4chliches Dienstende.", "title": "Ende (tats\u00e4chlich)"}, "comment": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Freier Hinweis.", "title": "Kommentar"}, "is_event_lead": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Ob diese Schicht die Veranstaltungsleitung ist.", "title": "Veranstaltungsleiter"}, "breaks": {"anyOf": [{"items": {"$ref": "#/components/schemas/ShiftBreakSchema"}, "type": "array"}, {"type": "null"}], "description": "Wenn gesendet, ersetzen die Pausen die bestehenden.", "title": "Pausen"}}, "title": "ShiftEntryPatch", "type": "object"}, "PagedStaffAvailabilityOut": {"properties": {"items": {"items": {"$ref": "#/components/schemas/StaffAvailabilityOut"}, "title": "Items", "type": "array"}, "count": {"title": "Count", "type": "integer"}}, "required": ["items", "count"], "title": "PagedStaffAvailabilityOut", "type": "object"}, "StaffAvailabilityOut": {"description": "Verf\u00fcgbarkeit \u2013 Verf\u00fcgbarkeitsangabe eines Mitarbeiters f\u00fcr einen Spieltermin.", "properties": {"uuid": {"description": "\u00d6ffentliche UUID der Verf\u00fcgbarkeit.", "format": "uuid", "title": "UUID", "type": "string"}, "show_date": {"description": "UUID des zugeh\u00f6rigen Spieltermins.", "format": "uuid", "title": "Spieltermin", "type": "string"}, "staff_person": {"description": "UUID des Mitarbeiters.", "format": "uuid", "title": "Mitarbeiter", "type": "string"}, "available": {"default": true, "description": "True = verf\u00fcgbar, False = nicht verf\u00fcgbar.", "title": "Verf\u00fcgbar", "type": "boolean"}}, "required": ["uuid", "show_date", "staff_person"], "title": "StaffAvailabilityOut", "type": "object"}, "StaffAvailabilityIn": {"description": "Verf\u00fcgbarkeit \u2013 Eingabedaten zum Anlegen oder vollst\u00e4ndigen Ersetzen.", "properties": {"show_date": {"description": "UUID des Spieltermins (eigene Firma).", "format": "uuid", "title": "Spieltermin", "type": "string"}, "staff_person": {"description": "UUID des Mitarbeiters (eigene Firma).", "format": "uuid", "title": "Mitarbeiter", "type": "string"}, "available": {"default": true, "description": "True = verf\u00fcgbar, False = nicht verf\u00fcgbar.", "title": "Verf\u00fcgbar", "type": "boolean"}}, "required": ["show_date", "staff_person"], "title": "StaffAvailabilityIn", "type": "object"}, "StaffAvailabilityPatch": {"description": "Verf\u00fcgbarkeit \u2013 partielle Aktualisierung.", "properties": {"show_date": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Spieltermins (eigene Firma).", "title": "Spieltermin"}, "staff_person": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "description": "UUID des Mitarbeiters (eigene Firma).", "title": "Mitarbeiter"}, "available": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "True = verf\u00fcgbar, False = nicht verf\u00fcgbar.", "title": "Verf\u00fcgbar"}}, "title": "StaffAvailabilityPatch", "type": "object"}}, "securitySchemes": {"ApiKeyAuth": {"type": "apiKey", "in": "header", "name": "Authorization"}}}, "servers": []}