{"openapi":"3.1.0","info":{"title":"TillyGen API","version":"1.0.0","description":"Externe REST-API fuer Enterprise-Workspaces. Auth via Bearer-API-Key (Settings → API). Alle Antworten tragen x-request-id; Fehler folgen dem Error-Schema."},"servers":[{"url":"https://app.tillygen.com"}],"security":[{"bearerAuth":[]}],"paths":{"/api/v1/me":{"get":{"operationId":"getMe","tags":["me"],"summary":"Key-Metadaten und Workspace-Kontext","responses":{"200":{"description":"Key-Prefix, Berechtigung und Workspace.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"key_prefix":{"type":"string"},"permission":{"type":"string","enum":["read","read_write"]},"workspace":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":["string","null"]}}}}}}}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo oder Key ohne Berechtigung.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/clients":{"get":{"operationId":"listClients","tags":["clients"],"summary":"clients auflisten","description":"Kundenpool des Workspace. Anlegen ist allen Rollen erlaubt; Aendern und Loeschen sind Enterprise-Funktionen (RLS).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege, die seit diesem Zeitpunkt geaendert wurden (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ClientsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createClients","tags":["clients"],"summary":"clients anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ClientsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/clients/{id}":{"get":{"operationId":"getClients","tags":["clients"],"summary":"clients einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ClientsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateClients","tags":["clients"],"summary":"clients aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ClientsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteClients","tags":["clients"],"summary":"clients loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/talents":{"get":{"operationId":"listTalents","tags":["talents"],"summary":"talents auflisten","description":"Talents (Personen und Objekte). Scope-Anker: optional project_id ODER brand_id im Create — sonst Workspace (Praezedenz project > brand > workspace, genau ein Anker).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Einer von: person, object.","schema":{"type":"string","enum":["person","object"]}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TalentsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createTalents","tags":["talents"],"summary":"talents anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TalentsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TalentsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/talents/{id}":{"get":{"operationId":"getTalents","tags":["talents"],"summary":"talents einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TalentsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateTalents","tags":["talents"],"summary":"talents aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TalentsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TalentsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteTalents","tags":["talents"],"summary":"talents loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/locations":{"get":{"operationId":"listLocations","tags":["locations"],"summary":"locations auflisten","description":"Drehorte — Workspace-Stammdaten (immer am Workspace verankert, nie an Projekt oder Brand). daily_rate und max_crew_size sind Freitext. nearby wird von TillyGen berechnet und ist read-only.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LocationsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createLocations","tags":["locations"],"summary":"locations anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/LocationsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/locations/{id}":{"get":{"operationId":"getLocations","tags":["locations"],"summary":"locations einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/LocationsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateLocations","tags":["locations"],"summary":"locations aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/LocationsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteLocations","tags":["locations"],"summary":"locations loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/brands":{"get":{"operationId":"listBrands","tags":["brands"],"summary":"brands auflisten","description":"Brands des Workspace — read-only. Dient der ID-Aufloesung fuer brand-verankerte Ressourcen (talents, projects).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/BrandsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/brands/{id}":{"get":{"operationId":"getBrands","tags":["brands"],"summary":"brands einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/BrandsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/projects":{"get":{"operationId":"listProjects","tags":["projects"],"summary":"projects auflisten","description":"Projekte des Workspace (direkt oder ueber eine Brand verankert). Loeschen entfernt alle Projektinhalte unwiderruflich (FK-Kaskaden); der Speicher wird sofort reconciled.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"brand_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ProjectsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createProjects","tags":["projects"],"summary":"projects anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ProjectsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/projects/{id}":{"get":{"operationId":"getProjects","tags":["projects"],"summary":"projects einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ProjectsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateProjects","tags":["projects"],"summary":"projects aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ProjectsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteProjects","tags":["projects"],"summary":"projects loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/tasks":{"get":{"operationId":"listTasks","tags":["tasks"],"summary":"tasks auflisten","description":"Aufgaben eines Projekts. completed_at spiegelt den Status und wird serverseitig gefuehrt; Zuweisungs- und Faelligkeits-Benachrichtigungen laufen automatisch.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","required":false,"description":"Einer von: open, in_progress, blocked, done.","schema":{"type":"string","enum":["open","in_progress","blocked","done"]}},{"name":"priority","in":"query","required":false,"description":"Einer von: low, normal, high, urgent.","schema":{"type":"string","enum":["low","normal","high","urgent"]}},{"name":"assignee_crew_member_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"section_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TasksRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createTasks","tags":["tasks"],"summary":"tasks anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TasksCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TasksRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/tasks/{id}":{"get":{"operationId":"getTasks","tags":["tasks"],"summary":"tasks einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TasksRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateTasks","tags":["tasks"],"summary":"tasks aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TasksUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TasksRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteTasks","tags":["tasks"],"summary":"tasks loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/task-sections":{"get":{"operationId":"listTaskSections","tags":["task-sections"],"summary":"task-sections auflisten","description":"Board-Sektionen eines Projekts. Seed-Sektionen tragen name=null (Label kommt aus der App-Sprache); die Position vergibt die API ans Ende.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TaskSectionsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createTaskSections","tags":["task-sections"],"summary":"task-sections anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskSectionsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TaskSectionsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/task-sections/{id}":{"get":{"operationId":"getTaskSections","tags":["task-sections"],"summary":"task-sections einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TaskSectionsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateTaskSections","tags":["task-sections"],"summary":"task-sections aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskSectionsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TaskSectionsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteTaskSections","tags":["task-sections"],"summary":"task-sections loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/task-tags":{"get":{"operationId":"listTaskTags","tags":["task-tags"],"summary":"task-tags auflisten","description":"Aufgaben-Tags eines Projekts. Der Name ist pro Projekt eindeutig (Konflikt antwortet 409).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TaskTagsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createTaskTags","tags":["task-tags"],"summary":"task-tags anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskTagsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TaskTagsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/task-tags/{id}":{"get":{"operationId":"getTaskTags","tags":["task-tags"],"summary":"task-tags einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TaskTagsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateTaskTags","tags":["task-tags"],"summary":"task-tags aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskTagsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TaskTagsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteTaskTags","tags":["task-tags"],"summary":"task-tags loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/task-watchers":{"get":{"operationId":"listTaskWatchers","tags":["task-watchers"],"summary":"task-watchers auflisten","description":"Beobachter einer Aufgabe (steuern Benachrichtigungen). Liste verlangt ?task_id=; Loeschen laeuft ueber die Collection mit ?task_id=&user_id= (kein id-PK).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"task_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TaskWatchersRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createTaskWatchers","tags":["task-watchers"],"summary":"task-watchers anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskWatchersCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TaskWatchersRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteTaskWatchers","tags":["task-watchers"],"summary":"task-watchers loeschen (Composite-Key via Query-Params)","parameters":[{"name":"task_id","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"user_id","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/task-comments":{"get":{"operationId":"listTaskComments","tags":["task-comments"],"summary":"task-comments auflisten","description":"Kommentare einer Aufgabe. author_user_id ist der Key-Ersteller (auth.uid()); Aendern und Loeschen sind per RLS auf eigene Kommentare begrenzt. mentions (User-UUIDs) loesen Benachrichtigungen aus. Liste verlangt ?task_id=.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"task_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TaskCommentsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createTaskComments","tags":["task-comments"],"summary":"task-comments anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskCommentsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TaskCommentsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/task-comments/{id}":{"get":{"operationId":"getTaskComments","tags":["task-comments"],"summary":"task-comments einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TaskCommentsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateTaskComments","tags":["task-comments"],"summary":"task-comments aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskCommentsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TaskCommentsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteTaskComments","tags":["task-comments"],"summary":"task-comments loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/task-dependencies":{"get":{"operationId":"listTaskDependencies","tags":["task-dependencies"],"summary":"task-dependencies auflisten","description":"Abhaengigkeiten zwischen Aufgaben (task_id wartet auf depends_on_task_id). Liste verlangt ?task_id=; Loeschen laeuft ueber die Collection mit ?task_id=&depends_on_task_id= (kein id-PK).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"task_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TaskDependenciesRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createTaskDependencies","tags":["task-dependencies"],"summary":"task-dependencies anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskDependenciesCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TaskDependenciesRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteTaskDependencies","tags":["task-dependencies"],"summary":"task-dependencies loeschen (Composite-Key via Query-Params)","parameters":[{"name":"task_id","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"depends_on_task_id","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/creatives":{"get":{"operationId":"listCreatives","tags":["creatives"],"summary":"creatives auflisten","description":"Creatives (Konzept-Einheiten) eines Projekts. Die Position vergibt die API ans Ende der Projekt-Liste.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CreativesRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createCreatives","tags":["creatives"],"summary":"creatives anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreativesCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CreativesRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/creatives/{id}":{"get":{"operationId":"getCreatives","tags":["creatives"],"summary":"creatives einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CreativesRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateCreatives","tags":["creatives"],"summary":"creatives aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreativesUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CreativesRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteCreatives","tags":["creatives"],"summary":"creatives loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/segments":{"get":{"operationId":"listSegments","tags":["segments"],"summary":"segments auflisten","description":"Segmente eines Creatives (Story-Abschnitte). Liste verlangt ?creative_id=; die Position vergibt die API ans Ende.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"creative_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SegmentsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createSegments","tags":["segments"],"summary":"segments anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SegmentsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/segments/{id}":{"get":{"operationId":"getSegments","tags":["segments"],"summary":"segments einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SegmentsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateSegments","tags":["segments"],"summary":"segments aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SegmentsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteSegments","tags":["segments"],"summary":"segments loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/shots":{"get":{"operationId":"listShots","tags":["shots"],"summary":"shots auflisten","description":"Shots der Shotlist. Neue Shots haengen ans Ende des Creatives; ein Angle entsteht ueber shot_id (Verweis auf den Master-Shot). c_talents/c_locations sind read-only (App-verwaltete Referenzlisten).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"creative_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"segment_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ShotsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createShots","tags":["shots"],"summary":"shots anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShotsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ShotsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/shots/{id}":{"get":{"operationId":"getShots","tags":["shots"],"summary":"shots einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ShotsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateShots","tags":["shots"],"summary":"shots aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShotsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ShotsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteShots","tags":["shots"],"summary":"shots loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/concepts":{"get":{"operationId":"listConcepts","tags":["concepts"],"summary":"concepts auflisten","description":"Konzepte, Canvas und Briefings eines Projekts. content (TipTap-JSON) kann nur beim Anlegen gesetzt werden — Updates aendern Metadaten (Titel, Ordner, Favorit); der Inhalt lebt in der kollaborativen App-Session.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"type","in":"query","required":false,"description":"Einer von: concept, canvas, briefing.","schema":{"type":"string","enum":["concept","canvas","briefing"]}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ConceptsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createConcepts","tags":["concepts"],"summary":"concepts anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConceptsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ConceptsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/concepts/{id}":{"get":{"operationId":"getConcepts","tags":["concepts"],"summary":"concepts einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ConceptsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateConcepts","tags":["concepts"],"summary":"concepts aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConceptsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ConceptsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteConcepts","tags":["concepts"],"summary":"concepts loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/shot-comments":{"get":{"operationId":"listShotComments","tags":["shot-comments"],"summary":"shot-comments auflisten","description":"Kommentare an Shots (interne und Review-Kommentare ueber oeffentliche Links). API-Anlagen laufen als der Key-Ersteller; author_name wird aus dessen Profil abgeleitet. Kein Update — Kommentare werden geloescht und neu angelegt.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"shot_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ShotCommentsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createShotComments","tags":["shot-comments"],"summary":"shot-comments anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShotCommentsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ShotCommentsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/shot-comments/{id}":{"get":{"operationId":"getShotComments","tags":["shot-comments"],"summary":"shot-comments einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ShotCommentsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteShotComments","tags":["shot-comments"],"summary":"shot-comments loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/shot-markers":{"get":{"operationId":"listShotMarkers","tags":["shot-markers"],"summary":"shot-markers auflisten","description":"Set-Marker an Shots (good/great/safety/ng/note) mit optionalem Timecode. marked_at setzt die DB beim Anlegen. Liste verlangt ?shot_id=.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"shot_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ShotMarkersRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createShotMarkers","tags":["shot-markers"],"summary":"shot-markers anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShotMarkersCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ShotMarkersRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/shot-markers/{id}":{"get":{"operationId":"getShotMarkers","tags":["shot-markers"],"summary":"shot-markers einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ShotMarkersRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateShotMarkers","tags":["shot-markers"],"summary":"shot-markers aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShotMarkersUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ShotMarkersRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteShotMarkers","tags":["shot-markers"],"summary":"shot-markers loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/concept-folders":{"get":{"operationId":"listConceptFolders","tags":["concept-folders"],"summary":"concept-folders auflisten","description":"Ordner der Konzept-Ablage eines Projekts (verschachtelbar via parent_folder_id). Konzepte verweisen ueber concepts.folder_id auf ihren Ordner.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ConceptFoldersRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createConceptFolders","tags":["concept-folders"],"summary":"concept-folders anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConceptFoldersCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ConceptFoldersRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/concept-folders/{id}":{"get":{"operationId":"getConceptFolders","tags":["concept-folders"],"summary":"concept-folders einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ConceptFoldersRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateConceptFolders","tags":["concept-folders"],"summary":"concept-folders aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConceptFoldersUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ConceptFoldersRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteConceptFolders","tags":["concept-folders"],"summary":"concept-folders loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/equipment":{"get":{"operationId":"listEquipment","tags":["equipment"],"summary":"equipment auflisten","description":"Equipment-Pool des Workspace. Zubehoer entsteht ueber equipment_id (Verweis auf das Parent-Geraet); ?equipment_id= listet das Zubehoer eines Geraets.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"equipment_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EquipmentRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createEquipment","tags":["equipment"],"summary":"equipment anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquipmentCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/equipment/{id}":{"get":{"operationId":"getEquipment","tags":["equipment"],"summary":"equipment einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateEquipment","tags":["equipment"],"summary":"equipment aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquipmentUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteEquipment","tags":["equipment"],"summary":"equipment loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/kits":{"get":{"operationId":"listKits","tags":["kits"],"summary":"kits auflisten","description":"Kits (Equipment-Sets) des Workspace. Inhalte liegen in kit-items.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/KitsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createKits","tags":["kits"],"summary":"kits anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KitsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KitsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/kits/{id}":{"get":{"operationId":"getKits","tags":["kits"],"summary":"kits einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KitsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateKits","tags":["kits"],"summary":"kits aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KitsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KitsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteKits","tags":["kits"],"summary":"kits loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/kit-items":{"get":{"operationId":"listKitItems","tags":["kit-items"],"summary":"kit-items auflisten","description":"Positionen eines Kits (Verweise auf Equipment). Liste verlangt ?kit_id=.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"kit_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/KitItemsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createKitItems","tags":["kit-items"],"summary":"kit-items anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KitItemsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KitItemsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/kit-items/{id}":{"get":{"operationId":"getKitItems","tags":["kit-items"],"summary":"kit-items einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KitItemsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateKitItems","tags":["kit-items"],"summary":"kit-items aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KitItemsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KitItemsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteKitItems","tags":["kit-items"],"summary":"kit-items loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/elements":{"get":{"operationId":"listElements","tags":["elements"],"summary":"elements auflisten","description":"Elemente/Requisiten eines Projekts, optional einem Creative zugeordnet.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"creative_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ElementsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createElements","tags":["elements"],"summary":"elements anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ElementsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/elements/{id}":{"get":{"operationId":"getElements","tags":["elements"],"summary":"elements einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ElementsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateElements","tags":["elements"],"summary":"elements aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElementsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ElementsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteElements","tags":["elements"],"summary":"elements loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/equipment-lists":{"get":{"operationId":"listEquipmentLists","tags":["equipment-lists"],"summary":"equipment-lists auflisten","description":"Packlisten eines Projekts. Inhalte liegen in equipment-list-references.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EquipmentListsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createEquipmentLists","tags":["equipment-lists"],"summary":"equipment-lists anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquipmentListsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentListsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/equipment-lists/{id}":{"get":{"operationId":"getEquipmentLists","tags":["equipment-lists"],"summary":"equipment-lists einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentListsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateEquipmentLists","tags":["equipment-lists"],"summary":"equipment-lists aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquipmentListsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentListsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteEquipmentLists","tags":["equipment-lists"],"summary":"equipment-lists loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/equipment-list-references":{"get":{"operationId":"listEquipmentListReferences","tags":["equipment-list-references"],"summary":"equipment-list-references auflisten","description":"Positionen einer Packliste. reference_type bestimmt die Referenz: equipment -> equipment_id, kit -> kit_id, element -> element_id (genau eine gesetzt). Liste verlangt ?equipment_list_id=.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"equipment_list_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"reference_type","in":"query","required":false,"description":"Einer von: equipment, kit, element.","schema":{"type":"string","enum":["equipment","kit","element"]}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EquipmentListReferencesRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createEquipmentListReferences","tags":["equipment-list-references"],"summary":"equipment-list-references anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquipmentListReferencesCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentListReferencesRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/equipment-list-references/{id}":{"get":{"operationId":"getEquipmentListReferences","tags":["equipment-list-references"],"summary":"equipment-list-references einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentListReferencesRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateEquipmentListReferences","tags":["equipment-list-references"],"summary":"equipment-list-references aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquipmentListReferencesUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentListReferencesRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteEquipmentListReferences","tags":["equipment-list-references"],"summary":"equipment-list-references loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/equipment-rentals":{"get":{"operationId":"listEquipmentRentals","tags":["equipment-rentals"],"summary":"equipment-rentals auflisten","description":"Leih-/Verleih-Vorgaenge fuer Equipment. direction 'out' = eigenes Equipment wird verliehen, 'in' = fremdes Equipment wird geliehen. Positionen liegen in equipment-rental-items; 'reserved'/'out' belegen bei 'out' den Bestand.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"direction","in":"query","required":false,"description":"Einer von: out, in.","schema":{"type":"string","enum":["out","in"]}},{"name":"status","in":"query","required":false,"description":"Einer von: reserved, out, returned, cancelled.","schema":{"type":"string","enum":["reserved","out","returned","cancelled"]}},{"name":"client_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EquipmentRentalsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createEquipmentRentals","tags":["equipment-rentals"],"summary":"equipment-rentals anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquipmentRentalsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentRentalsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/equipment-rentals/{id}":{"get":{"operationId":"getEquipmentRentals","tags":["equipment-rentals"],"summary":"equipment-rentals einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentRentalsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateEquipmentRentals","tags":["equipment-rentals"],"summary":"equipment-rentals aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquipmentRentalsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentRentalsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteEquipmentRentals","tags":["equipment-rentals"],"summary":"equipment-rentals loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/equipment-rental-items":{"get":{"operationId":"listEquipmentRentalItems","tags":["equipment-rental-items"],"summary":"equipment-rental-items auflisten","description":"Positionen eines Leih-/Verleih-Vorgangs. Bei direction 'out' referenziert equipment_id eine Inventar-Row; bei 'in' legt die name-Variante die geliehene equipment-Row an (verschwindet mit dem Vorgang). Liste verlangt ?rental_id=.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"rental_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EquipmentRentalItemsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createEquipmentRentalItems","tags":["equipment-rental-items"],"summary":"equipment-rental-items anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquipmentRentalItemsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentRentalItemsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/equipment-rental-items/{id}":{"get":{"operationId":"getEquipmentRentalItems","tags":["equipment-rental-items"],"summary":"equipment-rental-items einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentRentalItemsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateEquipmentRentalItems","tags":["equipment-rental-items"],"summary":"equipment-rental-items aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EquipmentRentalItemsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EquipmentRentalItemsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteEquipmentRentalItems","tags":["equipment-rental-items"],"summary":"equipment-rental-items loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-members":{"get":{"operationId":"listCrewMembers","tags":["crew-members"],"summary":"crew-members auflisten","description":"Crew-Pool des Workspace. kind/status/membership verwaltet TillyGen; das Portal-Token ist ueber die API nie sichtbar.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"Einer von: active, archived.","schema":{"type":"string","enum":["active","archived"]}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CrewMembersRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createCrewMembers","tags":["crew-members"],"summary":"crew-members anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewMembersCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewMembersRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-members/{id}":{"get":{"operationId":"getCrewMembers","tags":["crew-members"],"summary":"crew-members einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewMembersRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateCrewMembers","tags":["crew-members"],"summary":"crew-members aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewMembersUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewMembersRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteCrewMembers","tags":["crew-members"],"summary":"crew-members loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-assignments":{"get":{"operationId":"listCrewAssignments","tags":["crew-assignments"],"summary":"crew-assignments auflisten","description":"Crew-Buchungen auf Drehtagen. project_id wird serverseitig aus dem Drehtag abgeleitet; daily_rate erfordert Admin-Rechte des Key-Erstellers (sonst setzt der Gagen-Guard sie auf null).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"schedule_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"project_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"crew_member_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CrewAssignmentsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createCrewAssignments","tags":["crew-assignments"],"summary":"crew-assignments anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewAssignmentsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewAssignmentsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-assignments/{id}":{"get":{"operationId":"getCrewAssignments","tags":["crew-assignments"],"summary":"crew-assignments einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewAssignmentsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateCrewAssignments","tags":["crew-assignments"],"summary":"crew-assignments aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewAssignmentsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewAssignmentsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteCrewAssignments","tags":["crew-assignments"],"summary":"crew-assignments loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/time-entries":{"get":{"operationId":"listTimeEntries","tags":["time-entries"],"summary":"time-entries auflisten","description":"Zeiteintraege der Crew. ended_at=null bedeutet laufende Uhr (maximal eine pro Crew-Mitglied — Konflikt antwortet 409). work_date ist der Kalendertag der Schicht, nicht aus UTC abgeleitet.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"crew_member_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"project_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"schedule_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"approval_status","in":"query","required":false,"description":"Einer von: pending, approved, rejected.","schema":{"type":"string","enum":["pending","approved","rejected"]}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TimeEntriesRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createTimeEntries","tags":["time-entries"],"summary":"time-entries anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeEntriesCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TimeEntriesRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/time-entries/{id}":{"get":{"operationId":"getTimeEntries","tags":["time-entries"],"summary":"time-entries einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TimeEntriesRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateTimeEntries","tags":["time-entries"],"summary":"time-entries aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimeEntriesUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TimeEntriesRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteTimeEntries","tags":["time-entries"],"summary":"time-entries loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-contracts":{"get":{"operationId":"listCrewContracts","tags":["crew-contracts"],"summary":"crew-contracts auflisten","description":"Crew-Vertraege (read-only) — Erstellung, Versand und Signatur laufen in der App. content/variables sind interne Vorlagen-Strukturen und nicht Teil der API; Dokumente haengen als Assets (document_asset_id/signed_document_asset_id).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"crew_member_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"project_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"query","required":false,"description":"Einer von: freelance, employment, buyout, nda.","schema":{"type":"string","enum":["freelance","employment","buyout","nda"]}},{"name":"status","in":"query","required":false,"description":"Einer von: draft, sent, signed, expired, void.","schema":{"type":"string","enum":["draft","sent","signed","expired","void"]}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CrewContractsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-contracts/{id}":{"get":{"operationId":"getCrewContracts","tags":["crew-contracts"],"summary":"crew-contracts einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewContractsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-documents":{"get":{"operationId":"listCrewDocuments","tags":["crew-documents"],"summary":"crew-documents auflisten","description":"Crew-Dokumente (read-only) — Drehgenehmigungen, Versicherungen, Gefaehrdungsbeurteilungen. Uploads laufen in der App; die Datei haengt als Asset (asset_id).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"crew_member_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"project_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"query","required":false,"description":"Einer von: permit, insurance, risk_assessment, misc.","schema":{"type":"string","enum":["permit","insurance","risk_assessment","misc"]}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CrewDocumentsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-documents/{id}":{"get":{"operationId":"getCrewDocuments","tags":["crew-documents"],"summary":"crew-documents einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewDocumentsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/shoot-windows":{"get":{"operationId":"listShootWindows","tags":["shoot-windows"],"summary":"shoot-windows auflisten","description":"Drehfenster eines Projekts (Vorplanung ohne konkrete Drehtage). planned_days ist eine Grobschaetzung; Vormerkungen der Crew haengen via crew-holds am Fenster.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ShootWindowsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createShootWindows","tags":["shoot-windows"],"summary":"shoot-windows anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShootWindowsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ShootWindowsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/shoot-windows/{id}":{"get":{"operationId":"getShootWindows","tags":["shoot-windows"],"summary":"shoot-windows einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ShootWindowsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateShootWindows","tags":["shoot-windows"],"summary":"shoot-windows aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShootWindowsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ShootWindowsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteShootWindows","tags":["shoot-windows"],"summary":"shoot-windows loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-holds":{"get":{"operationId":"listCrewHolds","tags":["crew-holds"],"summary":"crew-holds auflisten","description":"Crew-Vormerkungen der Vorplanung (option/confirmed/declined). window_id verknuepft optional ein Drehfenster desselben Projekts.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"crew_member_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"window_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","required":false,"description":"Einer von: option, confirmed, declined.","schema":{"type":"string","enum":["option","confirmed","declined"]}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CrewHoldsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createCrewHolds","tags":["crew-holds"],"summary":"crew-holds anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewHoldsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewHoldsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-holds/{id}":{"get":{"operationId":"getCrewHolds","tags":["crew-holds"],"summary":"crew-holds einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewHoldsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateCrewHolds","tags":["crew-holds"],"summary":"crew-holds aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewHoldsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewHoldsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteCrewHolds","tags":["crew-holds"],"summary":"crew-holds loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-absences":{"get":{"operationId":"listCrewAbsences","tags":["crew-absences"],"summary":"crew-absences auflisten","description":"Abwesenheiten/Blockaden der Crew (Tabelle crew_availability). API-Anlagen gelten als intern und genehmigt (source=internal, approval_status=approved); der Antrags-Workflow des Portals laeuft ausschliesslich in der App.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"crew_member_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"query","required":false,"description":"Einer von: blocked, tentative.","schema":{"type":"string","enum":["blocked","tentative"]}},{"name":"category","in":"query","required":false,"description":"Einer von: vacation, sick, unavailable, tentative, other, overtime_comp.","schema":{"type":"string","enum":["vacation","sick","unavailable","tentative","other","overtime_comp"]}},{"name":"approval_status","in":"query","required":false,"description":"Einer von: pending, approved, rejected.","schema":{"type":"string","enum":["pending","approved","rejected"]}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CrewAbsencesRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createCrewAbsences","tags":["crew-absences"],"summary":"crew-absences anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewAbsencesCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewAbsencesRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-absences/{id}":{"get":{"operationId":"getCrewAbsences","tags":["crew-absences"],"summary":"crew-absences einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewAbsencesRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateCrewAbsences","tags":["crew-absences"],"summary":"crew-absences aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewAbsencesUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewAbsencesRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteCrewAbsences","tags":["crew-absences"],"summary":"crew-absences loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-vacation-entitlements":{"get":{"operationId":"listCrewVacationEntitlements","tags":["crew-vacation-entitlements"],"summary":"crew-vacation-entitlements auflisten","description":"Urlaubskonten der Crew (Anspruch + Uebertrag je Jahr). Pro Crew-Mitglied und Jahr genau ein Konto (Konflikt antwortet 409).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"crew_member_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CrewVacationEntitlementsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createCrewVacationEntitlements","tags":["crew-vacation-entitlements"],"summary":"crew-vacation-entitlements anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewVacationEntitlementsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewVacationEntitlementsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-vacation-entitlements/{id}":{"get":{"operationId":"getCrewVacationEntitlements","tags":["crew-vacation-entitlements"],"summary":"crew-vacation-entitlements einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewVacationEntitlementsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateCrewVacationEntitlements","tags":["crew-vacation-entitlements"],"summary":"crew-vacation-entitlements aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewVacationEntitlementsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewVacationEntitlementsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteCrewVacationEntitlements","tags":["crew-vacation-entitlements"],"summary":"crew-vacation-entitlements loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-work-schedules":{"get":{"operationId":"listCrewWorkSchedules","tags":["crew-work-schedules"],"summary":"crew-work-schedules auflisten","description":"Wochenmodelle der Crew (Soll-Minuten je Wochentag, gueltig ab valid_from). Pro Crew-Mitglied und Datum genau ein Modell (Konflikt antwortet 409).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"crew_member_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CrewWorkSchedulesRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createCrewWorkSchedules","tags":["crew-work-schedules"],"summary":"crew-work-schedules anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewWorkSchedulesCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewWorkSchedulesRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-work-schedules/{id}":{"get":{"operationId":"getCrewWorkSchedules","tags":["crew-work-schedules"],"summary":"crew-work-schedules einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewWorkSchedulesRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateCrewWorkSchedules","tags":["crew-work-schedules"],"summary":"crew-work-schedules aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewWorkSchedulesUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewWorkSchedulesRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteCrewWorkSchedules","tags":["crew-work-schedules"],"summary":"crew-work-schedules loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-holiday-overrides":{"get":{"operationId":"listCrewHolidayOverrides","tags":["crew-holiday-overrides"],"summary":"crew-holiday-overrides auflisten","description":"Feiertags-Overrides des Workspace: is_workday=true macht einen Feiertag zum Arbeitstag, is_workday=false einen Werktag frei. Pro Datum genau ein Override (Konflikt antwortet 409).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CrewHolidayOverridesRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createCrewHolidayOverrides","tags":["crew-holiday-overrides"],"summary":"crew-holiday-overrides anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewHolidayOverridesCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewHolidayOverridesRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-holiday-overrides/{id}":{"get":{"operationId":"getCrewHolidayOverrides","tags":["crew-holiday-overrides"],"summary":"crew-holiday-overrides einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewHolidayOverridesRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateCrewHolidayOverrides","tags":["crew-holiday-overrides"],"summary":"crew-holiday-overrides aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewHolidayOverridesUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewHolidayOverridesRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteCrewHolidayOverrides","tags":["crew-holiday-overrides"],"summary":"crew-holiday-overrides loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-qualifications":{"get":{"operationId":"listCrewQualifications","tags":["crew-qualifications"],"summary":"crew-qualifications auflisten","description":"Qualifikationen/Nachweise der Crew (Fuehrerschein, Drohnenschein, …). document_asset_id ist read-only — Dokumente werden in der App hochgeladen.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"crew_member_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CrewQualificationsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createCrewQualifications","tags":["crew-qualifications"],"summary":"crew-qualifications anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewQualificationsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewQualificationsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/crew-qualifications/{id}":{"get":{"operationId":"getCrewQualifications","tags":["crew-qualifications"],"summary":"crew-qualifications einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewQualificationsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateCrewQualifications","tags":["crew-qualifications"],"summary":"crew-qualifications aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrewQualificationsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CrewQualificationsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteCrewQualifications","tags":["crew-qualifications"],"summary":"crew-qualifications loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/overtime-accounts":{"get":{"operationId":"listOvertimeAccounts","tags":["overtime-accounts"],"summary":"overtime-accounts auflisten","description":"Ueberstunden-Konten der Crew (Rechen-Schwellen, keine Rechtsauslegung). Pro Crew-Mitglied genau ein Konto (Konflikt antwortet 409); Bewegungen liegen read-only in overtime-ledger-entries.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"crew_member_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OvertimeAccountsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createOvertimeAccounts","tags":["overtime-accounts"],"summary":"overtime-accounts anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OvertimeAccountsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OvertimeAccountsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/overtime-accounts/{id}":{"get":{"operationId":"getOvertimeAccounts","tags":["overtime-accounts"],"summary":"overtime-accounts einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OvertimeAccountsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateOvertimeAccounts","tags":["overtime-accounts"],"summary":"overtime-accounts aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OvertimeAccountsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OvertimeAccountsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteOvertimeAccounts","tags":["overtime-accounts"],"summary":"overtime-accounts loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/overtime-ledger-entries":{"get":{"operationId":"listOvertimeLedgerEntries","tags":["overtime-ledger-entries"],"summary":"overtime-ledger-entries auflisten","description":"Ueberstunden-Bewegungen (read-only) — von der Zeiterfassung gefuehrt; kind: overtime, compensation, manual_adjust. Liste verlangt ?account_id=.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"account_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"query","required":false,"description":"Einer von: overtime, compensation, manual_adjust.","schema":{"type":"string","enum":["overtime","compensation","manual_adjust"]}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OvertimeLedgerEntriesRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/overtime-ledger-entries/{id}":{"get":{"operationId":"getOvertimeLedgerEntries","tags":["overtime-ledger-entries"],"summary":"overtime-ledger-entries einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OvertimeLedgerEntriesRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/schedules":{"get":{"operationId":"listSchedules","tags":["schedules"],"summary":"schedules auflisten","description":"Drehtage/Drehplaene eines Projekts. Die Zeitzone wird beim Anlegen aus dem Projekt eingefroren und ist danach read-only; Call-Times sind Wanduhr-Zeiten (HH:MM) in dieser Zone.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SchedulesRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createSchedules","tags":["schedules"],"summary":"schedules anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchedulesCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SchedulesRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/schedules/{id}":{"get":{"operationId":"getSchedules","tags":["schedules"],"summary":"schedules einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SchedulesRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateSchedules","tags":["schedules"],"summary":"schedules aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchedulesUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SchedulesRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteSchedules","tags":["schedules"],"summary":"schedules loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/schedule-assignments":{"get":{"operationId":"listScheduleAssignments","tags":["schedule-assignments"],"summary":"schedule-assignments auflisten","description":"Talent-Zuweisungen eines Drehtags (Crew laeuft ueber crew-assignments). Pro Drehtag und Talent genau eine Zuweisung (Konflikt antwortet 409). Liste verlangt ?schedule_id=.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"schedule_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleAssignmentsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createScheduleAssignments","tags":["schedule-assignments"],"summary":"schedule-assignments anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleAssignmentsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ScheduleAssignmentsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/schedule-assignments/{id}":{"get":{"operationId":"getScheduleAssignments","tags":["schedule-assignments"],"summary":"schedule-assignments einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ScheduleAssignmentsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateScheduleAssignments","tags":["schedule-assignments"],"summary":"schedule-assignments aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleAssignmentsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ScheduleAssignmentsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteScheduleAssignments","tags":["schedule-assignments"],"summary":"schedule-assignments loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/schedule-locations":{"get":{"operationId":"listScheduleLocations","tags":["schedule-locations"],"summary":"schedule-locations auflisten","description":"Drehorte eines Drehtags (Verweise auf den locations-Pool). Liste verlangt ?schedule_id=.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"schedule_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleLocationsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createScheduleLocations","tags":["schedule-locations"],"summary":"schedule-locations anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleLocationsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ScheduleLocationsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/schedule-locations/{id}":{"get":{"operationId":"getScheduleLocations","tags":["schedule-locations"],"summary":"schedule-locations einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ScheduleLocationsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateScheduleLocations","tags":["schedule-locations"],"summary":"schedule-locations aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleLocationsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ScheduleLocationsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteScheduleLocations","tags":["schedule-locations"],"summary":"schedule-locations loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/schedule-clients":{"get":{"operationId":"listScheduleClients","tags":["schedule-clients"],"summary":"schedule-clients auflisten","description":"Kunden/Gaeste eines Drehtags. client_id verweist optional auf den clients-Pool; name ist der Anzeige-Name auf dem Callsheet. Liste verlangt ?schedule_id=.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"schedule_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleClientsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createScheduleClients","tags":["schedule-clients"],"summary":"schedule-clients anlegen","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleClientsCreate"}}}},"responses":{"201":{"description":"Angelegte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ScheduleClientsRow"}}}}}},"403":{"description":"Read-only-Key oder RLS verweigert.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Konflikt (z. B. Unique-Regel verletzt).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen (details).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/schedule-clients/{id}":{"get":{"operationId":"getScheduleClients","tags":["schedule-clients"],"summary":"schedule-clients einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ScheduleClientsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"updateScheduleClients","tags":["schedule-clients"],"summary":"schedule-clients aendern","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleClientsUpdate"}}}},"responses":{"200":{"description":"Aktualisierte Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ScheduleClientsRow"}}}}}},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validierung fehlgeschlagen.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deleteScheduleClients","tags":["schedule-clients"],"summary":"schedule-clients loeschen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Geloescht."},"404":{"description":"Nicht gefunden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/callsheets":{"get":{"operationId":"listCallsheets","tags":["callsheets"],"summary":"callsheets auflisten","description":"Callsheets (read-only). sections und published_snapshot sind interne App-Strukturen ohne Stabilitaetsgarantie; geschrieben wird ausschliesslich in der App. Liste verlangt ?schedule_id=.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"schedule_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CallsheetsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/callsheets/{id}":{"get":{"operationId":"getCallsheets","tags":["callsheets"],"summary":"callsheets einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CallsheetsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/callsheet-recipients":{"get":{"operationId":"listCallsheetRecipients","tags":["callsheet-recipients"],"summary":"callsheet-recipients auflisten","description":"Versand- und RSVP-Status eines Callsheets (read-only). Versand und RSVP-Links laufen ausschliesslich ueber die App; der rsvp_token ist ueber die API nie sichtbar. Liste verlangt ?callsheet_id=.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"callsheet_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"rsvp_status","in":"query","required":false,"description":"Einer von: pending, accepted, declined.","schema":{"type":"string","enum":["pending","accepted","declined"]}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CallsheetRecipientsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/callsheet-recipients/{id}":{"get":{"operationId":"getCallsheetRecipients","tags":["callsheet-recipients"],"summary":"callsheet-recipients einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CallsheetRecipientsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/assets":{"get":{"operationId":"listAssets","tags":["assets"],"summary":"assets auflisten","description":"Hochgeladene Medien (read-only). GET auf ein einzelnes Asset liefert download_url (signiert, 1 Stunde gueltig). Datei-Ablage und Vorlagen sind ausgenommen.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AssetsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/assets/{id}":{"get":{"operationId":"getAssets","tags":["assets"],"summary":"assets einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AssetsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/review-assets":{"get":{"operationId":"listReviewAssets","tags":["review-assets"],"summary":"review-assets auflisten","description":"Review-Medien eines Projekts (read-only). Uploads und Versionen laufen ueber die App (Storage-Quota, Transcoding).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"folder_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReviewAssetsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/review-assets/{id}":{"get":{"operationId":"getReviewAssets","tags":["review-assets"],"summary":"review-assets einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReviewAssetsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/review-comments":{"get":{"operationId":"listReviewComments","tags":["review-comments"],"summary":"review-comments auflisten","description":"Review-Kommentare (read-only) — inkl. Video-Timecodes (timecode_seconds) und Zeichnungs-Annotationen der Reviewer. Ohne Filter workspace-weit; ?created_since= eignet sich fuer Polling auf neue Kommentare (z. B. taeglicher Slack-Sync).","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"asset_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"version_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"completed","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"boolean"}},{"name":"created_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReviewCommentsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/review-comments/{id}":{"get":{"operationId":"getReviewComments","tags":["review-comments"],"summary":"review-comments einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReviewCommentsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/review-image-selections":{"get":{"operationId":"listReviewImageSelections","tags":["review-image-selections"],"summary":"review-image-selections auflisten","description":"Bild-Markierungen der Reviewer (read-only) — Auswahl-Flags, Bewertungen und Labels je Review-Asset (Picdrop-Muster). Ohne Filter workspace-weit; ?updated_since= fuer Polling.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"asset_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"selected","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"boolean"}},{"name":"created_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReviewImageSelectionsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/review-image-selections/{id}":{"get":{"operationId":"getReviewImageSelections","tags":["review-image-selections"],"summary":"review-image-selections einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReviewImageSelectionsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/review-approvals":{"get":{"operationId":"listReviewApprovals","tags":["review-approvals"],"summary":"review-approvals auflisten","description":"Freigabe-Entscheidungen der Reviewer (read-only): approved, changes_requested oder rejected je Asset/Version. ?created_since= fuer Polling auf neue Entscheidungen.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"asset_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"version_id","in":"query","required":false,"description":"Filter (UUID).","schema":{"type":"string","format":"uuid"}},{"name":"decision","in":"query","required":false,"description":"Einer von: approved, changes_requested, rejected.","schema":{"type":"string","enum":["approved","changes_requested","rejected"]}},{"name":"created_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}},{"name":"updated_since","in":"query","required":false,"description":"Nur Eintraege ab diesem Zeitpunkt (ISO 8601).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReviewApprovalsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/review-approvals/{id}":{"get":{"operationId":"getReviewApprovals","tags":["review-approvals"],"summary":"review-approvals einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReviewApprovalsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/review-folders":{"get":{"operationId":"listReviewFolders","tags":["review-folders"],"summary":"review-folders auflisten","description":"Ordner des Review-Bereichs eines Projekts (read-only, verschachtelbar). review-assets verweisen ueber folder_id auf ihren Ordner.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"project_id","in":"query","required":false,"description":"Auf ein Projekt des Workspace einschraenken (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReviewFoldersRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/review-folders/{id}":{"get":{"operationId":"getReviewFolders","tags":["review-folders"],"summary":"review-folders einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReviewFoldersRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/review-asset-versions":{"get":{"operationId":"listReviewAssetVersions","tags":["review-asset-versions"],"summary":"review-asset-versions auflisten","description":"Versionen eines Review-Assets (read-only) — Aufloesung, Laenge, Codecs, Transcode-Status. Kommentare referenzieren die Version ueber version_id. Liste verlangt ?asset_id=.","parameters":[{"name":"limit","in":"query","required":false,"description":"Seitengroesse (Default 50, max. 100).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Cursor der vorherigen Antwort (next_cursor) fuer die naechste Seite.","schema":{"type":"string"}},{"name":"asset_id","in":"query","required":true,"description":"Pflicht-Filter: Parent-Ressource (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Seite der Liste.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReviewAssetVersionsRow"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Ungueltiger Filter/Cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Fehlender/ungueltiger Key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein Enterprise-Abo.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit erreicht (Retry-After-Header).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/review-asset-versions/{id}":{"get":{"operationId":"getReviewAssetVersions","tags":["review-asset-versions"],"summary":"review-asset-versions einzeln lesen","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Die Zeile.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReviewAssetVersionsRow"}}}}}},"404":{"description":"Nicht gefunden (auch bei fremdem Workspace).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key (tg_live_…)"}},"schemas":{"Error":{"type":"object","required":["error","request_id"],"properties":{"error":{"type":"string","enum":["invalid_body","invalid_cursor","invalid_filter","missing_authorization","invalid_key","key_revoked","not_enabled","read_only_key","key_creator_inactive","forbidden","not_found","unknown_resource","method_not_allowed","conflict","duplicate_number","validation_failed","rate_limited","server_error","unavailable"]},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"}}}},"request_id":{"type":"string","format":"uuid"}}},"ClientsRow":{"type":"object","description":"Zeile der Ressource clients; Felder: id, workspace_id, name, email, phone, role_label, note, last_used_at, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"name":{},"email":{},"phone":{},"role_label":{},"note":{},"last_used_at":{},"created_at":{},"updated_at":{}}},"ClientsCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}]},"phone":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"role_label":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"required":["name"],"additionalProperties":false},"ClientsUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}]},"phone":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"role_label":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"additionalProperties":false},"TalentsRow":{"type":"object","description":"Zeile der Ressource talents; Felder: id, workspace_id, brand_id, project_id, name, type, description, age, gender, height, body_type, languages, location, contact, daily_rate, tags, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"brand_id":{},"project_id":{},"name":{},"type":{},"description":{},"age":{},"gender":{},"height":{},"body_type":{},"languages":{},"location":{},"contact":{},"daily_rate":{},"tags":{},"created_at":{},"updated_at":{}}},"TalentsCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"type":{"type":"string","enum":["person","object"],"default":"person"},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"age":{"anyOf":[{"type":"integer","minimum":0,"maximum":150},{"type":"null"}]},"gender":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"height":{"anyOf":[{"type":"number","minimum":0,"maximum":300},{"type":"null"}]},"body_type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"languages":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"location":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"contact":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"daily_rate":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"tags":{"anyOf":[{"type":"array","items":{"type":"string","maxLength":60},"maxItems":50},{"type":"null"}]},"project_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"brand_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"required":["name"],"additionalProperties":false},"TalentsUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"type":{"type":"string","enum":["person","object"],"default":"person"},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"age":{"anyOf":[{"type":"integer","minimum":0,"maximum":150},{"type":"null"}]},"gender":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"height":{"anyOf":[{"type":"number","minimum":0,"maximum":300},{"type":"null"}]},"body_type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"languages":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"location":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"contact":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"daily_rate":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"tags":{"anyOf":[{"type":"array","items":{"type":"string","maxLength":60},"maxItems":50},{"type":"null"}]}},"additionalProperties":false},"LocationsRow":{"type":"object","description":"Zeile der Ressource locations; Felder: id, workspace_id, brand_id, project_id, name, description, category, type, contact_name, contact_details, parking, power_supply, daily_rate, max_crew_size, address, nearby, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"brand_id":{},"project_id":{},"name":{},"description":{},"category":{},"type":{},"contact_name":{},"contact_details":{},"parking":{},"power_supply":{},"daily_rate":{},"max_crew_size":{},"address":{},"nearby":{},"created_at":{},"updated_at":{}}},"LocationsCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"category":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"contact_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"contact_details":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"parking":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"power_supply":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"daily_rate":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"max_crew_size":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"address":{"anyOf":[{"type":"object","properties":{"full":{"type":"string","maxLength":500},"lng":{"type":"number","minimum":-180,"maximum":180},"lat":{"type":"number","minimum":-90,"maximum":90}},"required":["full"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},"LocationsUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"category":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"type":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"contact_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"contact_details":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"parking":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"power_supply":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"daily_rate":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"max_crew_size":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"address":{"anyOf":[{"type":"object","properties":{"full":{"type":"string","maxLength":500},"lng":{"type":"number","minimum":-180,"maximum":180},"lat":{"type":"number","minimum":-90,"maximum":90}},"required":["full"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},"BrandsRow":{"type":"object","description":"Zeile der Ressource brands; Felder: id, workspace_id, name, description, industry, brand_type, target_audience, age_range, location, website, created_at.","properties":{"id":{},"workspace_id":{},"name":{},"description":{},"industry":{},"brand_type":{},"target_audience":{},"age_range":{},"location":{},"website":{},"created_at":{}}},"ProjectsRow":{"type":"object","description":"Zeile der Ressource projects; Felder: id, workspace_id, brand_id, name, description, project_number, aspect_ratio, timezone, budget_cents, sort_order, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"brand_id":{},"name":{},"description":{},"project_number":{},"aspect_ratio":{},"timezone":{},"budget_cents":{},"sort_order":{},"created_at":{},"updated_at":{}}},"ProjectsCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"brand_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"aspect_ratio":{"type":"string","maxLength":16},"project_number":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"seed_default_files":{"type":"boolean","default":false},"task_template_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"locale":{"type":"string","enum":["de","en","fr","es"],"default":"de"}},"required":["name"],"additionalProperties":false},"ProjectsUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"budget_cents":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"additionalProperties":false},"TasksRow":{"type":"object","description":"Zeile der Ressource tasks; Felder: id, project_id, title, description, status, priority, labels, assignee_crew_member_id, assignee_user_id, parent_task_id, section_id, schedule_id, position, start_at, due_at, completed_at, tag_ids, created_by, created_at, updated_at.","properties":{"id":{},"project_id":{},"title":{},"description":{},"status":{},"priority":{},"labels":{},"assignee_crew_member_id":{},"assignee_user_id":{},"parent_task_id":{},"section_id":{},"schedule_id":{},"position":{},"start_at":{},"due_at":{},"completed_at":{},"tag_ids":{},"created_by":{},"created_at":{},"updated_at":{}}},"TasksCreate":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":500},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}]},"status":{"type":"string","enum":["open","in_progress","blocked","done"],"default":"open"},"priority":{"type":"string","enum":["low","normal","high","urgent"],"default":"normal"},"labels":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":50,"default":[]},"assignee_crew_member_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"parent_task_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"section_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"schedule_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"start_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"due_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"project_id":{"type":"string","format":"uuid"}},"required":["title","project_id"],"additionalProperties":false},"TasksUpdate":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":500},"description":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}]},"status":{"type":"string","enum":["open","in_progress","blocked","done"],"default":"open"},"priority":{"type":"string","enum":["low","normal","high","urgent"],"default":"normal"},"labels":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":50,"default":[]},"assignee_crew_member_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"parent_task_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"section_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"schedule_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"start_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"due_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"additionalProperties":false},"TaskSectionsRow":{"type":"object","description":"Zeile der Ressource task-sections; Felder: id, project_id, name, color, position, is_done, status_equiv, created_at.","properties":{"id":{},"project_id":{},"name":{},"color":{},"position":{},"is_done":{},"status_equiv":{},"created_at":{}}},"TaskSectionsCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"color":{"type":"string","maxLength":50},"project_id":{"type":"string","format":"uuid"}},"required":["name","project_id"],"additionalProperties":false},"TaskSectionsUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"color":{"type":"string","maxLength":50}},"additionalProperties":false},"TaskTagsRow":{"type":"object","description":"Zeile der Ressource task-tags; Felder: id, project_id, name, color, position, created_at.","properties":{"id":{},"project_id":{},"name":{},"color":{},"position":{},"created_at":{}}},"TaskTagsCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","maxLength":50},"project_id":{"type":"string","format":"uuid"}},"required":["name","project_id"],"additionalProperties":false},"TaskTagsUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"color":{"type":"string","maxLength":50}},"additionalProperties":false},"TaskWatchersRow":{"type":"object","description":"Zeile der Ressource task-watchers; Felder: task_id, user_id, created_at.","properties":{"task_id":{},"user_id":{},"created_at":{}}},"TaskWatchersCreate":{"type":"object","properties":{"task_id":{"type":"string","format":"uuid"},"user_id":{"type":"string","format":"uuid"}},"required":["task_id","user_id"],"additionalProperties":false},"TaskCommentsRow":{"type":"object","description":"Zeile der Ressource task-comments; Felder: id, task_id, author_user_id, body, mentions, created_at, updated_at.","properties":{"id":{},"task_id":{},"author_user_id":{},"body":{},"mentions":{},"created_at":{},"updated_at":{}}},"TaskCommentsCreate":{"type":"object","properties":{"task_id":{"type":"string","format":"uuid"},"body":{"type":"string","minLength":1,"maxLength":8000},"mentions":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50,"default":[]}},"required":["task_id","body"],"additionalProperties":false},"TaskCommentsUpdate":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":8000},"mentions":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50}},"additionalProperties":false},"TaskDependenciesRow":{"type":"object","description":"Zeile der Ressource task-dependencies; Felder: task_id, depends_on_task_id, created_at.","properties":{"task_id":{},"depends_on_task_id":{},"created_at":{}}},"TaskDependenciesCreate":{"type":"object","properties":{"task_id":{"type":"string","format":"uuid"},"depends_on_task_id":{"type":"string","format":"uuid"}},"required":["task_id","depends_on_task_id"],"additionalProperties":false},"CreativesRow":{"type":"object","description":"Zeile der Ressource creatives; Felder: id, project_id, title, status, goal, key_message, audience, aspect_ratio, position, must_haves, no_gos, references, created_at.","properties":{"id":{},"project_id":{},"title":{},"status":{},"goal":{},"key_message":{},"audience":{},"aspect_ratio":{},"position":{},"must_haves":{},"no_gos":{},"references":{},"created_at":{}}},"CreativesCreate":{"type":"object","properties":{"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"status":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"goal":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"key_message":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"audience":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"aspect_ratio":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}]},"project_id":{"type":"string","format":"uuid"}},"required":["project_id"],"additionalProperties":false},"CreativesUpdate":{"type":"object","properties":{"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"status":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"goal":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"key_message":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"audience":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"aspect_ratio":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}]}},"additionalProperties":false},"SegmentsRow":{"type":"object","description":"Zeile der Ressource segments; Felder: id, creatives_id, title, description, duration, position, created_at.","properties":{"id":{},"creatives_id":{},"title":{},"description":{},"duration":{},"position":{},"created_at":{}}},"SegmentsCreate":{"type":"object","properties":{"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"duration":{"anyOf":[{"type":"integer","minimum":0,"maximum":86400},{"type":"null"}]},"creatives_id":{"type":"string","format":"uuid"}},"required":["creatives_id"],"additionalProperties":false},"SegmentsUpdate":{"type":"object","properties":{"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"duration":{"anyOf":[{"type":"integer","minimum":0,"maximum":86400},{"type":"null"}]}},"additionalProperties":false},"ShotsRow":{"type":"object","description":"Zeile der Ressource shots; Felder: id, project_id, creatives_id, c_segment_id, c_action, c_audio, c_on_screen_text, c_talents, c_locations, shot_size, shot_status, camera_movement, camera_perspective, camera_equipment, lens, frame_rate, duration, day_night, int_ext, scene_number, script_pages, position, angle, shot_id, active_angle, created_at.","properties":{"id":{},"project_id":{},"creatives_id":{},"c_segment_id":{},"c_action":{},"c_audio":{},"c_on_screen_text":{},"c_talents":{},"c_locations":{},"shot_size":{},"shot_status":{},"camera_movement":{},"camera_perspective":{},"camera_equipment":{},"lens":{},"frame_rate":{},"duration":{},"day_night":{},"int_ext":{},"scene_number":{},"script_pages":{},"position":{},"angle":{},"shot_id":{},"active_angle":{},"created_at":{}}},"ShotsCreate":{"type":"object","properties":{"c_action":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"c_audio":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"c_on_screen_text":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"c_segment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"shot_size":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"shot_status":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"camera_movement":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"camera_perspective":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"camera_equipment":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"lens":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"frame_rate":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"duration":{"anyOf":[{"type":"integer","minimum":0,"maximum":86400},{"type":"null"}]},"day_night":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}]},"int_ext":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}]},"scene_number":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}]},"script_pages":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}]},"project_id":{"type":"string","format":"uuid"},"creatives_id":{"type":"string","format":"uuid"},"shot_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"required":["project_id","creatives_id"],"additionalProperties":false},"ShotsUpdate":{"type":"object","properties":{"c_action":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"c_audio":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"c_on_screen_text":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"c_segment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"shot_size":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"shot_status":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"camera_movement":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"camera_perspective":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"camera_equipment":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"lens":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"frame_rate":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"duration":{"anyOf":[{"type":"integer","minimum":0,"maximum":86400},{"type":"null"}]},"day_night":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}]},"int_ext":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}]},"scene_number":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}]},"script_pages":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}]}},"additionalProperties":false},"ConceptsRow":{"type":"object","description":"Zeile der Ressource concepts; Felder: id, project_id, title, type, status, favorite, folder_id, content, created_at, updated_at.","properties":{"id":{},"project_id":{},"title":{},"type":{},"status":{},"favorite":{},"folder_id":{},"content":{},"created_at":{},"updated_at":{}}},"ConceptsCreate":{"type":"object","properties":{"project_id":{"type":"string","format":"uuid"},"title":{"type":"string","maxLength":300},"type":{"type":"string","enum":["concept","canvas","briefing"],"default":"concept"},"folder_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"content":{"type":"object","properties":{"type":{"type":"string","const":"doc"},"content":{"type":"array","items":{}}},"required":["type","content"],"additionalProperties":true}},"required":["project_id"],"additionalProperties":false},"ConceptsUpdate":{"type":"object","properties":{"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"favorite":{"type":"boolean"},"folder_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"additionalProperties":false},"ShotCommentsRow":{"type":"object","description":"Zeile der Ressource shot-comments; Felder: id, project_id, shot_id, author_user_id, author_name, author_email, share_link_id, body, created_at.","properties":{"id":{},"project_id":{},"shot_id":{},"author_user_id":{},"author_name":{},"author_email":{},"share_link_id":{},"body":{},"created_at":{}}},"ShotCommentsCreate":{"type":"object","properties":{"shot_id":{"type":"string","format":"uuid"},"body":{"type":"string","minLength":1,"maxLength":5000}},"required":["shot_id","body"],"additionalProperties":false},"ShotMarkersRow":{"type":"object","description":"Zeile der Ressource shot-markers; Felder: id, shot_id, project_id, label, note, timecode, marked_at, created_by, created_at.","properties":{"id":{},"shot_id":{},"project_id":{},"label":{},"note":{},"timecode":{},"marked_at":{},"created_by":{},"created_at":{}}},"ShotMarkersCreate":{"type":"object","properties":{"label":{"type":"string","enum":["good","great","safety","ng","note"],"default":"good"},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"timecode":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"shot_id":{"type":"string","format":"uuid"}},"required":["shot_id"],"additionalProperties":false},"ShotMarkersUpdate":{"type":"object","properties":{"label":{"type":"string","enum":["good","great","safety","ng","note"],"default":"good"},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"timecode":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]}},"additionalProperties":false},"ConceptFoldersRow":{"type":"object","description":"Zeile der Ressource concept-folders; Felder: id, project_id, name, parent_folder_id, sort_order, created_at.","properties":{"id":{},"project_id":{},"name":{},"parent_folder_id":{},"sort_order":{},"created_at":{}}},"ConceptFoldersCreate":{"type":"object","properties":{"project_id":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":200},"parent_folder_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"required":["project_id","name"],"additionalProperties":false},"ConceptFoldersUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"parent_folder_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"additionalProperties":false},"EquipmentRow":{"type":"object","description":"Zeile der Ressource equipment; Felder: id, workspace_id, project_id, equipment_id, name, manufacturer, model, description, category, subcategory, tags, condition, quantity, serial_number, internal_id, storage_location, shelf, container, vendor, invoice_number, purchase_date, purchase_price, warranty_until, weight, country_of_origin, customs_value, customs_tariff_number, accessories_position, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"project_id":{},"equipment_id":{},"name":{},"manufacturer":{},"model":{},"description":{},"category":{},"subcategory":{},"tags":{},"condition":{},"quantity":{},"serial_number":{},"internal_id":{},"storage_location":{},"shelf":{},"container":{},"vendor":{},"invoice_number":{},"purchase_date":{},"purchase_price":{},"warranty_until":{},"weight":{},"country_of_origin":{},"customs_value":{},"customs_tariff_number":{},"accessories_position":{},"created_at":{},"updated_at":{}}},"EquipmentCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":300},"manufacturer":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"model":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"category":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":30,"default":[]},"subcategory":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":50,"default":[]},"condition":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"quantity":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"serial_number":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"internal_id":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"storage_location":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"shelf":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"container":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"vendor":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"invoice_number":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"purchase_date":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"purchase_price":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"warranty_until":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"weight":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"country_of_origin":{"anyOf":[{"type":"string","maxLength":3},{"type":"null"}]},"customs_value":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"customs_tariff_number":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"equipment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"required":["name"],"additionalProperties":false},"EquipmentUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":300},"manufacturer":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"model":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"category":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":30,"default":[]},"subcategory":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":50,"default":[]},"condition":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"quantity":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"serial_number":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"internal_id":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"storage_location":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"shelf":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"container":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"vendor":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"invoice_number":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"purchase_date":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"purchase_price":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"warranty_until":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"weight":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"country_of_origin":{"anyOf":[{"type":"string","maxLength":3},{"type":"null"}]},"customs_value":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"customs_tariff_number":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]}},"additionalProperties":false},"KitsRow":{"type":"object","description":"Zeile der Ressource kits; Felder: id, workspace_id, title, description, notes, category, favorite, position, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"title":{},"description":{},"notes":{},"category":{},"favorite":{},"position":{},"created_at":{},"updated_at":{}}},"KitsCreate":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"category":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":30,"default":[]},"favorite":{"type":["boolean","null"]}},"required":["title"],"additionalProperties":false},"KitsUpdate":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"category":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":30,"default":[]},"favorite":{"type":["boolean","null"]}},"additionalProperties":false},"KitItemsRow":{"type":"object","description":"Zeile der Ressource kit-items; Felder: id, kit_id, equipment_id, quantity, position, created_at.","properties":{"id":{},"kit_id":{},"equipment_id":{},"quantity":{},"position":{},"created_at":{}}},"KitItemsCreate":{"type":"object","properties":{"kit_id":{"type":"string","format":"uuid"},"equipment_id":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"default":1}},"required":["kit_id","equipment_id"],"additionalProperties":false},"KitItemsUpdate":{"type":"object","properties":{"quantity":{"type":"integer","minimum":1}},"additionalProperties":false},"ElementsRow":{"type":"object","description":"Zeile der Ressource elements; Felder: id, project_id, creatives_id, title, description, status, position, created_at, updated_at.","properties":{"id":{},"project_id":{},"creatives_id":{},"title":{},"description":{},"status":{},"position":{},"created_at":{},"updated_at":{}}},"ElementsCreate":{"type":"object","properties":{"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"status":{"type":"boolean","default":false},"project_id":{"type":"string","format":"uuid"},"creatives_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"required":["project_id"],"additionalProperties":false},"ElementsUpdate":{"type":"object","properties":{"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"status":{"type":"boolean","default":false}},"additionalProperties":false},"EquipmentListsRow":{"type":"object","description":"Zeile der Ressource equipment-lists; Felder: id, project_id, title, notes, starts_at, favorite, position, created_at.","properties":{"id":{},"project_id":{},"title":{},"notes":{},"starts_at":{},"favorite":{},"position":{},"created_at":{}}},"EquipmentListsCreate":{"type":"object","properties":{"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"favorite":{"type":["boolean","null"]},"project_id":{"type":"string","format":"uuid"}},"required":["project_id"],"additionalProperties":false},"EquipmentListsUpdate":{"type":"object","properties":{"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"starts_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"favorite":{"type":["boolean","null"]}},"additionalProperties":false},"EquipmentListReferencesRow":{"type":"object","description":"Zeile der Ressource equipment-list-references; Felder: id, equipment_list_id, reference_type, equipment_id, kit_id, element_id, quantity, notes, checked, position, created_at.","properties":{"id":{},"equipment_list_id":{},"reference_type":{},"equipment_id":{},"kit_id":{},"element_id":{},"quantity":{},"notes":{},"checked":{},"position":{},"created_at":{}}},"EquipmentListReferencesCreate":{"anyOf":[{"type":"object","properties":{"reference_type":{"type":"string","const":"equipment"},"equipment_id":{"type":"string","format":"uuid"},"equipment_list_id":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"default":1},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"checked":{"type":"boolean","default":false}},"required":["reference_type","equipment_id","equipment_list_id"],"additionalProperties":false},{"type":"object","properties":{"reference_type":{"type":"string","const":"kit"},"kit_id":{"type":"string","format":"uuid"},"equipment_list_id":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"default":1},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"checked":{"type":"boolean","default":false}},"required":["reference_type","kit_id","equipment_list_id"],"additionalProperties":false},{"type":"object","properties":{"reference_type":{"type":"string","const":"element"},"element_id":{"type":"string","format":"uuid"},"equipment_list_id":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"default":1},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"checked":{"type":"boolean","default":false}},"required":["reference_type","element_id","equipment_list_id"],"additionalProperties":false}]},"EquipmentListReferencesUpdate":{"type":"object","properties":{"quantity":{"type":"integer","minimum":1},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"checked":{"type":"boolean"}},"additionalProperties":false},"EquipmentRentalsRow":{"type":"object","description":"Zeile der Ressource equipment-rentals; Felder: id, workspace_id, direction, title, client_id, counterparty_name, contact_email, contact_phone, starts_on, ends_on, status, currency, notes, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"direction":{},"title":{},"client_id":{},"counterparty_name":{},"contact_email":{},"contact_phone":{},"starts_on":{},"ends_on":{},"status":{},"currency":{},"notes":{},"created_at":{},"updated_at":{}}},"EquipmentRentalsCreate":{"type":"object","properties":{"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"client_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"counterparty_name":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"contact_email":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}]},"contact_phone":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"status":{"type":"string","enum":["reserved","out","returned","cancelled"],"default":"reserved"},"currency":{"type":"string","minLength":3,"maxLength":3,"default":"EUR"},"notes":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"direction":{"type":"string","enum":["out","in"]},"starts_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"ends_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["direction","starts_on","ends_on"],"additionalProperties":false},"EquipmentRentalsUpdate":{"type":"object","properties":{"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"client_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"counterparty_name":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}]},"contact_email":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}]},"contact_phone":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"status":{"type":"string","enum":["reserved","out","returned","cancelled"],"default":"reserved"},"currency":{"type":"string","minLength":3,"maxLength":3,"default":"EUR"},"notes":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"starts_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"ends_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"additionalProperties":false},"EquipmentRentalItemsRow":{"type":"object","description":"Zeile der Ressource equipment-rental-items; Felder: id, rental_id, equipment_id, quantity, daily_rate, flat_price, notes, position, created_at.","properties":{"id":{},"rental_id":{},"equipment_id":{},"quantity":{},"daily_rate":{},"flat_price":{},"notes":{},"position":{},"created_at":{}}},"EquipmentRentalItemsCreate":{"anyOf":[{"type":"object","properties":{"rental_id":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"default":1},"daily_rate":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"flat_price":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"equipment_id":{"type":"string","format":"uuid"}},"required":["rental_id","equipment_id"],"additionalProperties":false},{"type":"object","properties":{"rental_id":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"default":1},"daily_rate":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"flat_price":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":300},"manufacturer":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"model":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"serial_number":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"weight":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]}},"required":["rental_id","name"],"additionalProperties":false}]},"EquipmentRentalItemsUpdate":{"type":"object","properties":{"quantity":{"type":"integer","minimum":1},"daily_rate":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"flat_price":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"additionalProperties":false},"CrewMembersRow":{"type":"object","description":"Zeile der Ressource crew-members; Felder: id, workspace_id, display_name, email, phone, department, job_title, daily_rate, weekly_contract_hours, note, kind, membership, status, user_id, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"display_name":{},"email":{},"phone":{},"department":{},"job_title":{},"daily_rate":{},"weekly_contract_hours":{},"note":{},"kind":{},"membership":{},"status":{},"user_id":{},"created_at":{},"updated_at":{}}},"CrewMembersCreate":{"type":"object","properties":{"display_name":{"type":"string","minLength":1,"maxLength":200},"email":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}]},"phone":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"department":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"job_title":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"daily_rate":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"weekly_contract_hours":{"anyOf":[{"type":"number","minimum":0,"maximum":168},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]}},"required":["display_name"],"additionalProperties":false},"CrewMembersUpdate":{"type":"object","properties":{"display_name":{"type":"string","minLength":1,"maxLength":200},"email":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}]},"phone":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"department":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"job_title":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"daily_rate":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"weekly_contract_hours":{"anyOf":[{"type":"number","minimum":0,"maximum":168},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]}},"additionalProperties":false},"CrewAssignmentsRow":{"type":"object","description":"Zeile der Ressource crew-assignments; Felder: id, workspace_id, project_id, schedule_id, crew_member_id, role_label, department, daily_rate, call_time, wrap_time, note, status, position, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"project_id":{},"schedule_id":{},"crew_member_id":{},"role_label":{},"department":{},"daily_rate":{},"call_time":{},"wrap_time":{},"note":{},"status":{},"position":{},"created_at":{},"updated_at":{}}},"CrewAssignmentsCreate":{"type":"object","properties":{"role_label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"department":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"daily_rate":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"call_time":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"wrap_time":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"crew_member_id":{"type":"string","format":"uuid"},"schedule_id":{"type":"string","format":"uuid"}},"required":["crew_member_id","schedule_id"],"additionalProperties":false},"CrewAssignmentsUpdate":{"type":"object","properties":{"role_label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"department":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"daily_rate":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"call_time":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"wrap_time":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"additionalProperties":false},"TimeEntriesRow":{"type":"object","description":"Zeile der Ressource time-entries; Felder: id, crew_member_id, workspace_id, project_id, schedule_id, work_date, started_at, ended_at, break_minutes, note, external_label, source, approval_status, approved_at, created_at, updated_at.","properties":{"id":{},"crew_member_id":{},"workspace_id":{},"project_id":{},"schedule_id":{},"work_date":{},"started_at":{},"ended_at":{},"break_minutes":{},"note":{},"external_label":{},"source":{},"approval_status":{},"approved_at":{},"created_at":{},"updated_at":{}}},"TimeEntriesCreate":{"type":"object","properties":{"work_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"started_at":{"type":"string","format":"date-time"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"break_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"note":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"external_label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"crew_member_id":{"type":"string","format":"uuid"},"project_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"schedule_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"source":{"type":"string","enum":["manual","schedule","timer"],"default":"manual"},"approval_status":{"type":"string","enum":["pending","approved"],"default":"approved"}},"required":["work_date","started_at","crew_member_id"],"additionalProperties":false},"TimeEntriesUpdate":{"type":"object","properties":{"work_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"started_at":{"type":"string","format":"date-time"},"ended_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"break_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"note":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"external_label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"additionalProperties":false},"CrewContractsRow":{"type":"object","description":"Zeile der Ressource crew-contracts; Felder: id, workspace_id, crew_member_id, project_id, kind, title, status, fee, buyout_scope, valid_from, valid_until, sent_at, signed_at, document_asset_id, signed_document_asset_id, note, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"crew_member_id":{},"project_id":{},"kind":{},"title":{},"status":{},"fee":{},"buyout_scope":{},"valid_from":{},"valid_until":{},"sent_at":{},"signed_at":{},"document_asset_id":{},"signed_document_asset_id":{},"note":{},"created_at":{},"updated_at":{}}},"CrewDocumentsRow":{"type":"object","description":"Zeile der Ressource crew-documents; Felder: id, workspace_id, crew_member_id, project_id, kind, title, note, valid_until, asset_id, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"crew_member_id":{},"project_id":{},"kind":{},"title":{},"note":{},"valid_until":{},"asset_id":{},"created_at":{},"updated_at":{}}},"ShootWindowsRow":{"type":"object","description":"Zeile der Ressource shoot-windows; Felder: id, workspace_id, project_id, starts_on, ends_on, label, note, planned_days, created_by, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"project_id":{},"starts_on":{},"ends_on":{},"label":{},"note":{},"planned_days":{},"created_by":{},"created_at":{},"updated_at":{}}},"ShootWindowsCreate":{"type":"object","properties":{"starts_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"ends_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"planned_days":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"project_id":{"type":"string","format":"uuid"}},"required":["starts_on","ends_on","project_id"],"additionalProperties":false},"ShootWindowsUpdate":{"type":"object","properties":{"starts_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"ends_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"planned_days":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"additionalProperties":false},"CrewHoldsRow":{"type":"object","description":"Zeile der Ressource crew-holds; Felder: id, workspace_id, project_id, window_id, crew_member_id, starts_on, ends_on, status, role_label, note, created_by, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"project_id":{},"window_id":{},"crew_member_id":{},"starts_on":{},"ends_on":{},"status":{},"role_label":{},"note":{},"created_by":{},"created_at":{},"updated_at":{}}},"CrewHoldsCreate":{"type":"object","properties":{"starts_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"ends_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"status":{"type":"string","enum":["option","confirmed","declined"],"default":"option"},"role_label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"window_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"project_id":{"type":"string","format":"uuid"},"crew_member_id":{"type":"string","format":"uuid"}},"required":["starts_on","ends_on","project_id","crew_member_id"],"additionalProperties":false},"CrewHoldsUpdate":{"type":"object","properties":{"starts_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"ends_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"status":{"type":"string","enum":["option","confirmed","declined"],"default":"option"},"role_label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"window_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"additionalProperties":false},"CrewAbsencesRow":{"type":"object","description":"Zeile der Ressource crew-absences; Felder: id, workspace_id, crew_member_id, starts_on, ends_on, starts_half, ends_half, kind, category, reason, source, approval_status, requested_by, decided_by, decided_at, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"crew_member_id":{},"starts_on":{},"ends_on":{},"starts_half":{},"ends_half":{},"kind":{},"category":{},"reason":{},"source":{},"approval_status":{},"requested_by":{},"decided_by":{},"decided_at":{},"created_at":{},"updated_at":{}}},"CrewAbsencesCreate":{"type":"object","properties":{"starts_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"ends_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"starts_half":{"type":"boolean","default":false},"ends_half":{"type":"boolean","default":false},"kind":{"type":"string","enum":["blocked","tentative"],"default":"blocked"},"category":{"type":"string","enum":["vacation","sick","unavailable","tentative","other","overtime_comp"],"default":"unavailable"},"reason":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"crew_member_id":{"type":"string","format":"uuid"}},"required":["starts_on","ends_on","crew_member_id"],"additionalProperties":false},"CrewAbsencesUpdate":{"type":"object","properties":{"starts_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"ends_on":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"starts_half":{"type":"boolean","default":false},"ends_half":{"type":"boolean","default":false},"kind":{"type":"string","enum":["blocked","tentative"],"default":"blocked"},"category":{"type":"string","enum":["vacation","sick","unavailable","tentative","other","overtime_comp"],"default":"unavailable"},"reason":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"additionalProperties":false},"CrewVacationEntitlementsRow":{"type":"object","description":"Zeile der Ressource crew-vacation-entitlements; Felder: id, workspace_id, crew_member_id, year, annual_days, carryover_days, note, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"crew_member_id":{},"year":{},"annual_days":{},"carryover_days":{},"note":{},"created_at":{},"updated_at":{}}},"CrewVacationEntitlementsCreate":{"type":"object","properties":{"year":{"type":"integer","minimum":2000,"maximum":2200},"annual_days":{"type":"number","minimum":0,"maximum":366,"default":0},"carryover_days":{"type":"number","minimum":0,"maximum":366,"default":0},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"crew_member_id":{"type":"string","format":"uuid"}},"required":["year","crew_member_id"],"additionalProperties":false},"CrewVacationEntitlementsUpdate":{"type":"object","properties":{"annual_days":{"type":"number","minimum":0,"maximum":366},"carryover_days":{"type":"number","minimum":0,"maximum":366},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"additionalProperties":false},"CrewWorkSchedulesRow":{"type":"object","description":"Zeile der Ressource crew-work-schedules; Felder: id, workspace_id, crew_member_id, valid_from, mon_minutes, tue_minutes, wed_minutes, thu_minutes, fri_minutes, sat_minutes, sun_minutes, note, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"crew_member_id":{},"valid_from":{},"mon_minutes":{},"tue_minutes":{},"wed_minutes":{},"thu_minutes":{},"fri_minutes":{},"sat_minutes":{},"sun_minutes":{},"note":{},"created_at":{},"updated_at":{}}},"CrewWorkSchedulesCreate":{"type":"object","properties":{"valid_from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"mon_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"tue_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"wed_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"thu_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"fri_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"sat_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"sun_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"crew_member_id":{"type":"string","format":"uuid"}},"required":["valid_from","crew_member_id"],"additionalProperties":false},"CrewWorkSchedulesUpdate":{"type":"object","properties":{"valid_from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"mon_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"tue_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"wed_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"thu_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"fri_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"sat_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"sun_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":0},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"additionalProperties":false},"CrewHolidayOverridesRow":{"type":"object","description":"Zeile der Ressource crew-holiday-overrides; Felder: id, workspace_id, holiday_date, is_workday, label, created_at.","properties":{"id":{},"workspace_id":{},"holiday_date":{},"is_workday":{},"label":{},"created_at":{}}},"CrewHolidayOverridesCreate":{"type":"object","properties":{"holiday_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"is_workday":{"type":"boolean","default":false},"label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"required":["holiday_date"],"additionalProperties":false},"CrewHolidayOverridesUpdate":{"type":"object","properties":{"is_workday":{"type":"boolean"},"label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"additionalProperties":false},"CrewQualificationsRow":{"type":"object","description":"Zeile der Ressource crew-qualifications; Felder: id, workspace_id, crew_member_id, label, issuer, valid_until, note, document_asset_id, created_at, updated_at.","properties":{"id":{},"workspace_id":{},"crew_member_id":{},"label":{},"issuer":{},"valid_until":{},"note":{},"document_asset_id":{},"created_at":{},"updated_at":{}}},"CrewQualificationsCreate":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":200},"issuer":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"valid_until":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"crew_member_id":{"type":"string","format":"uuid"}},"required":["label","crew_member_id"],"additionalProperties":false},"CrewQualificationsUpdate":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":200},"issuer":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"valid_until":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"additionalProperties":false},"OvertimeAccountsRow":{"type":"object","description":"Zeile der Ressource overtime-accounts; Felder: id, workspace_id, crew_member_id, max_daily_minutes, min_rest_minutes, max_weekly_minutes, max_monthly_minutes, created_at.","properties":{"id":{},"workspace_id":{},"crew_member_id":{},"max_daily_minutes":{},"min_rest_minutes":{},"max_weekly_minutes":{},"max_monthly_minutes":{},"created_at":{}}},"OvertimeAccountsCreate":{"type":"object","properties":{"max_daily_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":600},"min_rest_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":660},"max_weekly_minutes":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"max_monthly_minutes":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"crew_member_id":{"type":"string","format":"uuid"}},"required":["crew_member_id"],"additionalProperties":false},"OvertimeAccountsUpdate":{"type":"object","properties":{"max_daily_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":600},"min_rest_minutes":{"type":"integer","minimum":0,"maximum":1440,"default":660},"max_weekly_minutes":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"max_monthly_minutes":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"additionalProperties":false},"OvertimeLedgerEntriesRow":{"type":"object","description":"Zeile der Ressource overtime-ledger-entries; Felder: id, account_id, time_entry_id, delta_minutes, kind, effective_date, created_at.","properties":{"id":{},"account_id":{},"time_entry_id":{},"delta_minutes":{},"kind":{},"effective_date":{},"created_at":{}}},"SchedulesRow":{"type":"object","description":"Zeile der Ressource schedules; Felder: id, project_id, title, starts_at, timezone, general_call, shooting_call, lunch, wrap, notes, favorite, position, created_at.","properties":{"id":{},"project_id":{},"title":{},"starts_at":{},"timezone":{},"general_call":{},"shooting_call":{},"lunch":{},"wrap":{},"notes":{},"favorite":{},"position":{},"created_at":{}}},"SchedulesCreate":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"starts_at":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}]},"general_call":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"shooting_call":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"lunch":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"wrap":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"favorite":{"type":["boolean","null"]},"project_id":{"type":"string","format":"uuid"}},"required":["title","project_id"],"additionalProperties":false},"SchedulesUpdate":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"starts_at":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"notes":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}]},"general_call":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"shooting_call":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"lunch":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"wrap":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"favorite":{"type":["boolean","null"]}},"additionalProperties":false},"ScheduleAssignmentsRow":{"type":"object","description":"Zeile der Ressource schedule-assignments; Felder: id, schedule_id, assignee_type, talent_id, role_label, call_time, note, position, created_at.","properties":{"id":{},"schedule_id":{},"assignee_type":{},"talent_id":{},"role_label":{},"call_time":{},"note":{},"position":{},"created_at":{}}},"ScheduleAssignmentsCreate":{"type":"object","properties":{"role_label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"call_time":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"schedule_id":{"type":"string","format":"uuid"},"talent_id":{"type":"string","format":"uuid"}},"required":["schedule_id","talent_id"],"additionalProperties":false},"ScheduleAssignmentsUpdate":{"type":"object","properties":{"role_label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"call_time":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"additionalProperties":false},"ScheduleLocationsRow":{"type":"object","description":"Zeile der Ressource schedule-locations; Felder: id, schedule_id, location_id, note, position, created_at.","properties":{"id":{},"schedule_id":{},"location_id":{},"note":{},"position":{},"created_at":{}}},"ScheduleLocationsCreate":{"type":"object","properties":{"schedule_id":{"type":"string","format":"uuid"},"location_id":{"type":"string","format":"uuid"},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"required":["schedule_id","location_id"],"additionalProperties":false},"ScheduleLocationsUpdate":{"type":"object","properties":{"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"additionalProperties":false},"ScheduleClientsRow":{"type":"object","description":"Zeile der Ressource schedule-clients; Felder: id, schedule_id, client_id, name, role_label, call_time, email, phone, note, position, created_at.","properties":{"id":{},"schedule_id":{},"client_id":{},"name":{},"role_label":{},"call_time":{},"email":{},"phone":{},"note":{},"position":{},"created_at":{}}},"ScheduleClientsCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"client_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"role_label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"call_time":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"email":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}]},"phone":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"schedule_id":{"type":"string","format":"uuid"}},"required":["name","schedule_id"],"additionalProperties":false},"ScheduleClientsUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"client_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"role_label":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"call_time":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}(:\\d{2})?$"},{"type":"null"}]},"email":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}]},"phone":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"additionalProperties":false},"CallsheetsRow":{"type":"object","description":"Zeile der Ressource callsheets; Felder: id, schedule_id, status, sections, published_snapshot, published_at, created_at, updated_at.","properties":{"id":{},"schedule_id":{},"status":{},"sections":{},"published_snapshot":{},"published_at":{},"created_at":{},"updated_at":{}}},"CallsheetRecipientsRow":{"type":"object","description":"Zeile der Ressource callsheet-recipients; Felder: id, callsheet_id, email, name, rsvp_status, sent_at, opened_at, responded_at, crew_assignment_id, schedule_assignment_id, created_at, updated_at.","properties":{"id":{},"callsheet_id":{},"email":{},"name":{},"rsvp_status":{},"sent_at":{},"opened_at":{},"responded_at":{},"crew_assignment_id":{},"schedule_assignment_id":{},"created_at":{},"updated_at":{}}},"AssetsRow":{"type":"object","description":"Zeile der Ressource assets; Felder: id, workspace_id, brand_id, project_id, name, type, extension, path, size, starred, created_at.","properties":{"id":{},"workspace_id":{},"brand_id":{},"project_id":{},"name":{},"type":{},"extension":{},"path":{},"size":{},"starred":{},"created_at":{}}},"ReviewAssetsRow":{"type":"object","description":"Zeile der Ressource review-assets; Felder: id, project_id, folder_id, name, type, status, original_filename, file_size_bytes, current_version_id, sort_order, created_at, updated_at.","properties":{"id":{},"project_id":{},"folder_id":{},"name":{},"type":{},"status":{},"original_filename":{},"file_size_bytes":{},"current_version_id":{},"sort_order":{},"created_at":{},"updated_at":{}}},"ReviewCommentsRow":{"type":"object","description":"Zeile der Ressource review-comments; Felder: id, asset_id, version_id, parent_comment_id, body_plain, body_rich, annotations, timecode_seconds, timecode_end_seconds, completed, resolved_at, attachment_url, author_user_id, author_name, author_email, reviewer_id, created_at, updated_at.","properties":{"id":{},"asset_id":{},"version_id":{},"parent_comment_id":{},"body_plain":{},"body_rich":{},"annotations":{},"timecode_seconds":{},"timecode_end_seconds":{},"completed":{},"resolved_at":{},"attachment_url":{},"author_user_id":{},"author_name":{},"author_email":{},"reviewer_id":{},"created_at":{},"updated_at":{}}},"ReviewImageSelectionsRow":{"type":"object","description":"Zeile der Ressource review-image-selections; Felder: id, asset_id, reviewer_id, reviewer_email, label, rating, selected, created_at, updated_at.","properties":{"id":{},"asset_id":{},"reviewer_id":{},"reviewer_email":{},"label":{},"rating":{},"selected":{},"created_at":{},"updated_at":{}}},"ReviewApprovalsRow":{"type":"object","description":"Zeile der Ressource review-approvals; Felder: id, project_id, asset_id, version_id, decision, note, reviewer_id, reviewer_name, reviewer_email, created_at, updated_at.","properties":{"id":{},"project_id":{},"asset_id":{},"version_id":{},"decision":{},"note":{},"reviewer_id":{},"reviewer_name":{},"reviewer_email":{},"created_at":{},"updated_at":{}}},"ReviewFoldersRow":{"type":"object","description":"Zeile der Ressource review-folders; Felder: id, project_id, name, parent_folder_id, sort_order, created_at, updated_at.","properties":{"id":{},"project_id":{},"name":{},"parent_folder_id":{},"sort_order":{},"created_at":{},"updated_at":{}}},"ReviewAssetVersionsRow":{"type":"object","description":"Zeile der Ressource review-asset-versions; Felder: id, asset_id, version_number, type, status, format, width, height, duration_seconds, frame_rate, aspect_ratio, video_codec, audio_codec, color_profile, uploaded_by, created_at, updated_at.","properties":{"id":{},"asset_id":{},"version_number":{},"type":{},"status":{},"format":{},"width":{},"height":{},"duration_seconds":{},"frame_rate":{},"aspect_ratio":{},"video_codec":{},"audio_codec":{},"color_profile":{},"uploaded_by":{},"created_at":{},"updated_at":{}}}}}}