Zum Inhalt springen
Developer

Booking substitution

Event / Buchungsvertretung

Orte und Buchungen8 EndpunkteEvent / Booking substitution

Das Protokoll: wer was wann und über welchen Kanal getan hat.

GET/api/event/booking_substitution_log

Query-Parameter

idstring
actionstring
channelstring
substitutionstring
bookingstring
eventstring
actorPersonstring
fromPersonstring
toPersonstring
slotstring
createdstring
searchStringstringText, nach dem in der Liste gesucht wird
orderFieldNamestringName des Bestellfelds
orderFieldSortstringSortiermodusErlaubt: DESCASC
pageintegerSeite der Liste
pageSizeintegerAnzahl der Einträge je Seite
withMaxPageNumberstringgibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist

Antworten

200Liefert eine Liste der EventBookingSubstitutionLog-Objekte, neueste zuerst.array<EventBookingSubstitutionLog>

Felder anzeigen (12)
  • substitution_idinteger
  • booking_idinteger
  • idinteger

    Primärschlüssel des Protokolleintrags. Interne ID.

  • booking_labelstring

    Bezeichnung der Buchung zum Zeitpunkt des Eintrags.

  • slotinteger

    Platz der Vertretung, zum Beispiel die Position in der Liste.

  • actionstring

    Protokollierte Aktion, zum Beispiel beansprucht oder besetzt.

  • actor_namestring

    Name der handelnden Person oder des Benutzers zum Zeitpunkt der Aktion bzw. des Systembenutzers.

  • channelstring

    Kanal der Aktion, zum Beispiel App oder E-Mail.

  • from_statestring

    Status vor der Änderung.

  • to_statestring

    Status nach der Änderung.

  • messagestring

    Mit dem Eintrag verfasste Nachricht.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Eintrag protokolliert wurde.

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/event/booking_substitution_log \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
[
  {
    "id": 42,
    "actor_name": "Beispiel",
    "substitution_id": 42,
    "booking_id": 42,
    "booking_label": "string",
    "slot": 1,
    "action": "string",
    "channel": "string",
    "from_state": "string",
    "to_state": "string"
  }
]

Alle Vertretungen; Standardreihenfolge nach Terminbeginn.

GET/api/event/booking_substitution

Query-Parameter

idstring
statestring
reasonstring
slotstring1 = Haupttrainer (performingPerson), 2 = zweiter ... 5 = fünfter.
bookingstring
eventstring
originalPersonstring
candidatePersonstringWer den Termin angefragt oder übernommen hat bzw. wem ihn das Büro zugewiesen hat. | Erforderliches Zugriffsrecht: SCOPE
bookingStartstringKopie des Terminbeginns: Listensortierung und Filter ohne Join, und der Verlauf bleibt lesbar, nachdem der Termin entfernt wurde.
filledViastring
qualificationSourcestring
sourceTicketstring
sourceNonWorkTimeRequeststring
createdstring
updatedstring
searchStringstringText, nach dem in der Liste gesucht wird
orderFieldNamestringName des Bestellfelds
orderFieldSortstringSortiermodusErlaubt: DESCASC
pageintegerSeite der Liste
pageSizeintegerAnzahl der Einträge je Seite
withMaxPageNumberstringgibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist

Antworten

200Liefert eine Liste der EventBookingSubstitution-Objekte.array<EventBookingSubstitution>

Felder anzeigen (24)
  • booking_idinteger
  • source_ticket_idinteger
  • source_non_work_time_request_idinteger
  • idinteger

    Primärschlüssel der Vertretung. Interne ID.

  • lock_versioninteger

    Version, die parallele Änderungen an der Vertretung verhindert.

  • booking_startstring (date-time)

    Kopie des Terminbeginns: Listensortierung und Filter ohne Join, und der Verlauf bleibt lesbar, nachdem der Termin entfernt wurde.

  • booking_endstring (date-time)

    Ende der Buchung, die eine Vertretung benötigt.

  • booking_labelstring

    Name und Beginn des Termins bei der Anlage, für die Historie.

  • slotinteger

    1 = Haupttrainer (performingPerson), 2 = zweiter ... 5 = fünfter.

  • reasonstring

    Grund der Vertretung, zum Beispiel Krankheit.

  • statestring

    Status der Vertretung, zum Beispiel offen, übernommen oder besetzt.

  • qualification_match_modestring

    Wie die Qualifikationen von Vertretungen abgeglichen werden.

  • qualification_sourcestring

    Quelle der Qualifikationen, die zur Suche nach Vertretungen verwendet werden.

  • filled_viastring

    Wie die Vertretung besetzt wurde, zum Beispiel durch einen Trainer oder durch das Personal.

  • claimed_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung angefragt wurde.

  • filled_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung besetzt wurde.

  • decided_atstring (date-time)

    Zeitpunkt, zu dem über die Vertretung entschieden wurde.

  • decided_by_usernamestring

    Anmeldename der Person, die über die Vertretung entschieden hat.

  • decision_notestring

    Anmerkung zur Entscheidung.

  • closed_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung geschlossen wurde.

  • notified_atstring (date-time)

    Zeitpunkt, zu dem die möglichen Ersatzpersonen zuletzt benachrichtigt wurden.

  • notified_countinteger

    Anzahl der benachrichtigten möglichen Vertretungen.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/event/booking_substitution \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
[
  {
    "id": 42,
    "decided_by_username": "lena.hartmann@example.org",
    "booking_id": 42,
    "source_ticket_id": 42,
    "source_non_work_time_request_id": 42,
    "lock_version": 1,
    "booking_start": "2026-10-15T09:30:00+02:00",
    "booking_end": "2026-10-15T09:30:00+02:00",
    "booking_label": "string",
    "slot": 1
  }
]

Sucht eine Vertretung für einen Platz eines Termins. Eine noch im Platz stehende Person wird herausgenommen und wird zum ursprünglichen Trainer.

POST/api/event/booking_substitution

Request-Body application/json

  • bookinginteger
  • slotinteger
  • notestring

Antworten

200Die eröffnete VertretungEventBookingSubstitution

Felder anzeigen (24)
  • booking_idinteger
  • source_ticket_idinteger
  • source_non_work_time_request_idinteger
  • idinteger

    Primärschlüssel der Vertretung. Interne ID.

  • lock_versioninteger

    Version, die parallele Änderungen an der Vertretung verhindert.

  • booking_startstring (date-time)

    Kopie des Terminbeginns: Listensortierung und Filter ohne Join, und der Verlauf bleibt lesbar, nachdem der Termin entfernt wurde.

  • booking_endstring (date-time)

    Ende der Buchung, die eine Vertretung benötigt.

  • booking_labelstring

    Name und Beginn des Termins bei der Anlage, für die Historie.

  • slotinteger

    1 = Haupttrainer (performingPerson), 2 = zweiter ... 5 = fünfter.

  • reasonstring

    Grund der Vertretung, zum Beispiel Krankheit.

  • statestring

    Status der Vertretung, zum Beispiel offen, übernommen oder besetzt.

  • qualification_match_modestring

    Wie die Qualifikationen von Vertretungen abgeglichen werden.

  • qualification_sourcestring

    Quelle der Qualifikationen, die zur Suche nach Vertretungen verwendet werden.

  • filled_viastring

    Wie die Vertretung besetzt wurde, zum Beispiel durch einen Trainer oder durch das Personal.

  • claimed_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung angefragt wurde.

  • filled_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung besetzt wurde.

  • decided_atstring (date-time)

    Zeitpunkt, zu dem über die Vertretung entschieden wurde.

  • decided_by_usernamestring

    Anmeldename der Person, die über die Vertretung entschieden hat.

  • decision_notestring

    Anmerkung zur Entscheidung.

  • closed_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung geschlossen wurde.

  • notified_atstring (date-time)

    Zeitpunkt, zu dem die möglichen Ersatzpersonen zuletzt benachrichtigt wurden.

  • notified_countinteger

    Anzahl der benachrichtigten möglichen Vertretungen.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request POST \
  --url https://eure-instanz.iw-erp.de/api/event/booking_substitution \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "booking": 1,
  "slot": 1,
  "note": "string"
}
'
Antwort 200 application/json
{
  "id": 42,
  "decided_by_username": "lena.hartmann@example.org",
  "booking_id": 42,
  "source_ticket_id": 42,
  "source_non_work_time_request_id": 42,
  "lock_version": 1,
  "booking_start": "2026-10-15T09:30:00+02:00",
  "booking_end": "2026-10-15T09:30:00+02:00",
  "booking_label": "string",
  "slot": 1
}

Liefert einen einzelnen Eintrag zur Buchungsvertretung bei Veranstaltungen.

GET/api/event/booking_substitution/{id}

Pfad-Parameter

idPflichtstring

Antworten

200Liefert ein einzelnes EventBookingSubstitution-Objekt.EventBookingSubstitution

Felder anzeigen (24)
  • booking_idinteger
  • source_ticket_idinteger
  • source_non_work_time_request_idinteger
  • idinteger

    Primärschlüssel der Vertretung. Interne ID.

  • lock_versioninteger

    Version, die parallele Änderungen an der Vertretung verhindert.

  • booking_startstring (date-time)

    Kopie des Terminbeginns: Listensortierung und Filter ohne Join, und der Verlauf bleibt lesbar, nachdem der Termin entfernt wurde.

  • booking_endstring (date-time)

    Ende der Buchung, die eine Vertretung benötigt.

  • booking_labelstring

    Name und Beginn des Termins bei der Anlage, für die Historie.

  • slotinteger

    1 = Haupttrainer (performingPerson), 2 = zweiter ... 5 = fünfter.

  • reasonstring

    Grund der Vertretung, zum Beispiel Krankheit.

  • statestring

    Status der Vertretung, zum Beispiel offen, übernommen oder besetzt.

  • qualification_match_modestring

    Wie die Qualifikationen von Vertretungen abgeglichen werden.

  • qualification_sourcestring

    Quelle der Qualifikationen, die zur Suche nach Vertretungen verwendet werden.

  • filled_viastring

    Wie die Vertretung besetzt wurde, zum Beispiel durch einen Trainer oder durch das Personal.

  • claimed_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung angefragt wurde.

  • filled_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung besetzt wurde.

  • decided_atstring (date-time)

    Zeitpunkt, zu dem über die Vertretung entschieden wurde.

  • decided_by_usernamestring

    Anmeldename der Person, die über die Vertretung entschieden hat.

  • decision_notestring

    Anmerkung zur Entscheidung.

  • closed_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung geschlossen wurde.

  • notified_atstring (date-time)

    Zeitpunkt, zu dem die möglichen Ersatzpersonen zuletzt benachrichtigt wurden.

  • notified_countinteger

    Anzahl der benachrichtigten möglichen Vertretungen.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/event/booking_substitution/42 \
  --header 'x-iw-jwt-token: <TOKEN>'
Antwort 200 application/json
{
  "id": 42,
  "decided_by_username": "lena.hartmann@example.org",
  "booking_id": 42,
  "source_ticket_id": 42,
  "source_non_work_time_request_id": 42,
  "lock_version": 1,
  "booking_start": "2026-10-15T09:30:00+02:00",
  "booking_end": "2026-10-15T09:30:00+02:00",
  "booking_label": "string",
  "slot": 1
}

Jedes Poolmitglied mit den Gründen, die es blockieren würden; geeignete Personen zuerst. Das Büro kann Personen ebenfalls mit Gründen zuweisen, mit einer Notiz.

GET/api/event/booking_substitution/{id}/candidates

Pfad-Parameter

idPflichtstring

Query-Parameter

onlyEligibleboolean

Antworten

200Liste von {person, eligible, reasons}

Anfrage
curl --request GET \
  --url https://eure-instanz.iw-erp.de/api/event/booking_substitution/42/candidates \
  --header 'x-iw-jwt-token: <TOKEN>'

Eignung einer Person (z. B. bevor jemand außerhalb des Pools zugewiesen wird).

GET/api/event/booking_substitution/{id}/test_person

Pfad-Parameter

idPflichtstring

Query-Parameter

personPflichtinteger

Antworten

200eligible und Begründungscodes

Anfrage
curl --request GET \
  --url 'https://eure-instanz.iw-erp.de/api/event/booking_substitution/42/test_person?person=1' \
  --header 'x-iw-jwt-token: <TOKEN>'

approve, decline (note), assign (person, note), cancel (note), reopen (note), notify (Push erneut an die passenden Trainer senden).

PUT/api/event/booking_substitution/{id}/{action}

Pfad-Parameter

idPflichtstring
actionPflichtstring

Query-Parameter

lock_versioninteger

Request-Body application/json

  • personinteger
  • notestring

Antworten

200Die Vertretung nach der AktionEventBookingSubstitution

Felder anzeigen (24)
  • booking_idinteger
  • source_ticket_idinteger
  • source_non_work_time_request_idinteger
  • idinteger

    Primärschlüssel der Vertretung. Interne ID.

  • lock_versioninteger

    Version, die parallele Änderungen an der Vertretung verhindert.

  • booking_startstring (date-time)

    Kopie des Terminbeginns: Listensortierung und Filter ohne Join, und der Verlauf bleibt lesbar, nachdem der Termin entfernt wurde.

  • booking_endstring (date-time)

    Ende der Buchung, die eine Vertretung benötigt.

  • booking_labelstring

    Name und Beginn des Termins bei der Anlage, für die Historie.

  • slotinteger

    1 = Haupttrainer (performingPerson), 2 = zweiter ... 5 = fünfter.

  • reasonstring

    Grund der Vertretung, zum Beispiel Krankheit.

  • statestring

    Status der Vertretung, zum Beispiel offen, übernommen oder besetzt.

  • qualification_match_modestring

    Wie die Qualifikationen von Vertretungen abgeglichen werden.

  • qualification_sourcestring

    Quelle der Qualifikationen, die zur Suche nach Vertretungen verwendet werden.

  • filled_viastring

    Wie die Vertretung besetzt wurde, zum Beispiel durch einen Trainer oder durch das Personal.

  • claimed_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung angefragt wurde.

  • filled_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung besetzt wurde.

  • decided_atstring (date-time)

    Zeitpunkt, zu dem über die Vertretung entschieden wurde.

  • decided_by_usernamestring

    Anmeldename der Person, die über die Vertretung entschieden hat.

  • decision_notestring

    Anmerkung zur Entscheidung.

  • closed_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung geschlossen wurde.

  • notified_atstring (date-time)

    Zeitpunkt, zu dem die möglichen Ersatzpersonen zuletzt benachrichtigt wurden.

  • notified_countinteger

    Anzahl der benachrichtigten möglichen Vertretungen.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request PUT \
  --url https://eure-instanz.iw-erp.de/api/event/booking_substitution/42/42 \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "person": 1,
  "note": "string"
}
'
Antwort 200 application/json
{
  "id": 42,
  "decided_by_username": "lena.hartmann@example.org",
  "booking_id": 42,
  "source_ticket_id": 42,
  "source_non_work_time_request_id": 42,
  "lock_version": 1,
  "booking_start": "2026-10-15T09:30:00+02:00",
  "booking_end": "2026-10-15T09:30:00+02:00",
  "booking_label": "string",
  "slot": 1
}

approve, decline (note), assign (person, note), cancel (note), reopen (note), notify (Push erneut an die passenden Trainer senden).

PATCH/api/event/booking_substitution/{id}/{action}

Pfad-Parameter

idPflichtstring
actionPflichtstring

Query-Parameter

lock_versioninteger

Request-Body application/json

  • personinteger
  • notestring

Antworten

200Die Vertretung nach der AktionEventBookingSubstitution

Felder anzeigen (24)
  • booking_idinteger
  • source_ticket_idinteger
  • source_non_work_time_request_idinteger
  • idinteger

    Primärschlüssel der Vertretung. Interne ID.

  • lock_versioninteger

    Version, die parallele Änderungen an der Vertretung verhindert.

  • booking_startstring (date-time)

    Kopie des Terminbeginns: Listensortierung und Filter ohne Join, und der Verlauf bleibt lesbar, nachdem der Termin entfernt wurde.

  • booking_endstring (date-time)

    Ende der Buchung, die eine Vertretung benötigt.

  • booking_labelstring

    Name und Beginn des Termins bei der Anlage, für die Historie.

  • slotinteger

    1 = Haupttrainer (performingPerson), 2 = zweiter ... 5 = fünfter.

  • reasonstring

    Grund der Vertretung, zum Beispiel Krankheit.

  • statestring

    Status der Vertretung, zum Beispiel offen, übernommen oder besetzt.

  • qualification_match_modestring

    Wie die Qualifikationen von Vertretungen abgeglichen werden.

  • qualification_sourcestring

    Quelle der Qualifikationen, die zur Suche nach Vertretungen verwendet werden.

  • filled_viastring

    Wie die Vertretung besetzt wurde, zum Beispiel durch einen Trainer oder durch das Personal.

  • claimed_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung angefragt wurde.

  • filled_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung besetzt wurde.

  • decided_atstring (date-time)

    Zeitpunkt, zu dem über die Vertretung entschieden wurde.

  • decided_by_usernamestring

    Anmeldename der Person, die über die Vertretung entschieden hat.

  • decision_notestring

    Anmerkung zur Entscheidung.

  • closed_atstring (date-time)

    Zeitpunkt, zu dem die Vertretung geschlossen wurde.

  • notified_atstring (date-time)

    Zeitpunkt, zu dem die möglichen Ersatzpersonen zuletzt benachrichtigt wurden.

  • notified_countinteger

    Anzahl der benachrichtigten möglichen Vertretungen.

  • createdstring (date-time)

    Zeitpunkt, zu dem der Datensatz angelegt wurde.

  • updatedstring (date-time)

    Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.

Anfrage
curl --request PATCH \
  --url https://eure-instanz.iw-erp.de/api/event/booking_substitution/42/42 \
  --header 'content-type: application/json' \
  --header 'x-iw-jwt-token: <TOKEN>' \
  --data '
{
  "person": 1,
  "note": "string"
}
'
Antwort 200 application/json
{
  "id": 42,
  "decided_by_username": "lena.hartmann@example.org",
  "booking_id": 42,
  "source_ticket_id": 42,
  "source_non_work_time_request_id": 42,
  "lock_version": 1,
  "booking_start": "2026-10-15T09:30:00+02:00",
  "booking_end": "2026-10-15T09:30:00+02:00",
  "booking_label": "string",
  "slot": 1
}