{"openapi":"3.1.0","info":{"title":"RK9LIVE API","version":"0.2.0","description":"Inhalte von rk9live.com (Profil, Kanäle, Content, News, Merch, Partner, Kooperationen, Termine) sowie Speicher und Ereignisse für die eigenen Apps. Lesen ist ohne Schlüssel möglich (nur visibility public); Schreiben braucht einen Schlüssel. Datenmodell: rk9live-content/1.","contact":{"name":"RK9LIVE","url":"https://rk9live.com/ai/"}},"servers":[{"url":"https://rk9live.com/api/v1"}],"tags":[{"name":"System"},{"name":"Inhalte"},{"name":"Apps"}],"paths":{"/health":{"get":{"tags":["System"],"summary":"Lebenszeichen","operationId":"health","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"version":{"type":"string"},"time":{"type":"string"}}}}}}}}},"/openapi.json":{"get":{"tags":["System"],"summary":"Diese Beschreibung","operationId":"openapi","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/keys/me":{"get":{"tags":["System"],"summary":"Eigenen Schlüssel prüfen (Label, App, Rechte)","operationId":"keysMe","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"app":{"type":["string","null"]},"scopes":{"type":"array","items":{"type":"string"}}}}}}},"401":{"description":"kein oder ungültiger Schlüssel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/export":{"get":{"tags":["Inhalte"],"summary":"Alle lesbaren Inhalte in der Form von content.json","operationId":"exportContent","security":[{},{"bearerAuth":[]}],"description":"Ohne Schlüssel nur visibility public. Mit partners:read zusätzlich partners, mit content:write alles.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentFile"}}}}}}},"/import":{"post":{"tags":["Inhalte"],"summary":"Datei in content.json-Form einspielen (Upsert)","operationId":"importContent","security":[{"bearerAuth":[]}],"parameters":[{"name":"mode","in":"query","schema":{"enum":["merge","replace"],"default":"merge"},"description":"replace leert jede Art vor dem Einspielen"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentFile"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"imported":{"type":"object"},"mode":{"type":"string"}}}}}},"401":{"description":"kein Schlüssel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Datei ungültig (details)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/items":{"get":{"tags":["Inhalte"],"summary":"Inhalte (Videos, Shorts, Posts, Tracks, Mixe, Sets, Releases, Artikel, Streams) auflisten","operationId":"list_items","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/status"}},{"name":"type","in":"query","schema":{"type":"string"},"description":"nur items: video, short, post, track, mix, set, release, article, stream"},{"name":"platform","in":"query","schema":{"$ref":"#/components/schemas/platform"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"count":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Item"}}}}}}}}}},"/items/{id}":{"get":{"tags":["Inhalte"],"summary":"Item lesen","operationId":"get_items","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"404":{"description":"nicht vorhanden oder nicht sichtbar","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"Item anlegen oder ersetzen","operationId":"put_items","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"401":{"description":"kein Schlüssel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Eintrag ungültig (details)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Inhalte"],"summary":"Item löschen","operationId":"delete_items","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"gelöscht"},"404":{"description":"nicht vorhanden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/news":{"get":{"tags":["Inhalte"],"summary":"Neuigkeiten auflisten","operationId":"list_news","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/status"}},{"name":"type","in":"query","schema":{"type":"string"},"description":"nur items: video, short, post, track, mix, set, release, article, stream"},{"name":"platform","in":"query","schema":{"$ref":"#/components/schemas/platform"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"count":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/News"}}}}}}}}}},"/news/{id}":{"get":{"tags":["Inhalte"],"summary":"News lesen","operationId":"get_news","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/News"}}}},"404":{"description":"nicht vorhanden oder nicht sichtbar","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"News anlegen oder ersetzen","operationId":"put_news","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/News"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/News"}}}},"401":{"description":"kein Schlüssel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Eintrag ungültig (details)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Inhalte"],"summary":"News löschen","operationId":"delete_news","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"gelöscht"},"404":{"description":"nicht vorhanden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/channels":{"get":{"tags":["Inhalte"],"summary":"Kanäle (Plattformen und Handles) auflisten","operationId":"list_channels","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/status"}},{"name":"type","in":"query","schema":{"type":"string"},"description":"nur items: video, short, post, track, mix, set, release, article, stream"},{"name":"platform","in":"query","schema":{"$ref":"#/components/schemas/platform"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"count":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Channel"}}}}}}}}}},"/channels/{id}":{"get":{"tags":["Inhalte"],"summary":"Channel lesen","operationId":"get_channels","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Channel"}}}},"404":{"description":"nicht vorhanden oder nicht sichtbar","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"Channel anlegen oder ersetzen","operationId":"put_channels","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Channel"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Channel"}}}},"401":{"description":"kein Schlüssel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Eintrag ungültig (details)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Inhalte"],"summary":"Channel löschen","operationId":"delete_channels","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"gelöscht"},"404":{"description":"nicht vorhanden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/apps":{"get":{"tags":["Inhalte"],"summary":"Eigene Werkzeuge (vorerst nicht öffentlich) auflisten","operationId":"list_apps","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/status"}},{"name":"type","in":"query","schema":{"type":"string"},"description":"nur items: video, short, post, track, mix, set, release, article, stream"},{"name":"platform","in":"query","schema":{"$ref":"#/components/schemas/platform"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"count":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/App"}}}}}}}}}},"/apps/{id}":{"get":{"tags":["Inhalte"],"summary":"App lesen","operationId":"get_apps","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/App"}}}},"404":{"description":"nicht vorhanden oder nicht sichtbar","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"App anlegen oder ersetzen","operationId":"put_apps","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/App"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/App"}}}},"401":{"description":"kein Schlüssel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Eintrag ungültig (details)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Inhalte"],"summary":"App löschen","operationId":"delete_apps","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"gelöscht"},"404":{"description":"nicht vorhanden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/merch/stores":{"get":{"tags":["Inhalte"],"summary":"Merch-Shops auflisten","operationId":"list_merch_stores","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/status"}},{"name":"type","in":"query","schema":{"type":"string"},"description":"nur items: video, short, post, track, mix, set, release, article, stream"},{"name":"platform","in":"query","schema":{"$ref":"#/components/schemas/platform"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"count":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/MerchStore"}}}}}}}}}},"/merch/stores/{id}":{"get":{"tags":["Inhalte"],"summary":"MerchStore lesen","operationId":"get_merch_stores","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchStore"}}}},"404":{"description":"nicht vorhanden oder nicht sichtbar","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"MerchStore anlegen oder ersetzen","operationId":"put_merch_stores","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchStore"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchStore"}}}},"401":{"description":"kein Schlüssel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Eintrag ungültig (details)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Inhalte"],"summary":"MerchStore löschen","operationId":"delete_merch_stores","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"gelöscht"},"404":{"description":"nicht vorhanden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/merch/products":{"get":{"tags":["Inhalte"],"summary":"Merch-Produkte auflisten","operationId":"list_merch_products","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/status"}},{"name":"type","in":"query","schema":{"type":"string"},"description":"nur items: video, short, post, track, mix, set, release, article, stream"},{"name":"platform","in":"query","schema":{"$ref":"#/components/schemas/platform"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"count":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/MerchProduct"}}}}}}}}}},"/merch/products/{id}":{"get":{"tags":["Inhalte"],"summary":"MerchProduct lesen","operationId":"get_merch_products","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchProduct"}}}},"404":{"description":"nicht vorhanden oder nicht sichtbar","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"MerchProduct anlegen oder ersetzen","operationId":"put_merch_products","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchProduct"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchProduct"}}}},"401":{"description":"kein Schlüssel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Eintrag ungültig (details)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Inhalte"],"summary":"MerchProduct löschen","operationId":"delete_merch_products","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"gelöscht"},"404":{"description":"nicht vorhanden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/partners":{"get":{"tags":["Inhalte"],"summary":"Partner (Sponsoren, Affiliates, Labels, Booking) auflisten","operationId":"list_partners","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/status"}},{"name":"type","in":"query","schema":{"type":"string"},"description":"nur items: video, short, post, track, mix, set, release, article, stream"},{"name":"platform","in":"query","schema":{"$ref":"#/components/schemas/platform"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"count":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Partner"}}}}}}}}}},"/partners/{id}":{"get":{"tags":["Inhalte"],"summary":"Partner lesen","operationId":"get_partners","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Partner"}}}},"404":{"description":"nicht vorhanden oder nicht sichtbar","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"Partner anlegen oder ersetzen","operationId":"put_partners","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Partner"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Partner"}}}},"401":{"description":"kein Schlüssel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Eintrag ungültig (details)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Inhalte"],"summary":"Partner löschen","operationId":"delete_partners","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"gelöscht"},"404":{"description":"nicht vorhanden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/collaborations":{"get":{"tags":["Inhalte"],"summary":"Kooperationen auflisten","operationId":"list_collaborations","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/status"}},{"name":"type","in":"query","schema":{"type":"string"},"description":"nur items: video, short, post, track, mix, set, release, article, stream"},{"name":"platform","in":"query","schema":{"$ref":"#/components/schemas/platform"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"count":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Collaboration"}}}}}}}}}},"/collaborations/{id}":{"get":{"tags":["Inhalte"],"summary":"Collaboration lesen","operationId":"get_collaborations","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Collaboration"}}}},"404":{"description":"nicht vorhanden oder nicht sichtbar","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"Collaboration anlegen oder ersetzen","operationId":"put_collaborations","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Collaboration"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Collaboration"}}}},"401":{"description":"kein Schlüssel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Eintrag ungültig (details)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Inhalte"],"summary":"Collaboration löschen","operationId":"delete_collaborations","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"gelöscht"},"404":{"description":"nicht vorhanden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events":{"get":{"tags":["Inhalte"],"summary":"Termine auflisten","operationId":"list_events","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"status","in":"query","schema":{"$ref":"#/components/schemas/status"}},{"name":"type","in":"query","schema":{"type":"string"},"description":"nur items: video, short, post, track, mix, set, release, article, stream"},{"name":"platform","in":"query","schema":{"$ref":"#/components/schemas/platform"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"count":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}}}}}}}}},"/events/{id}":{"get":{"tags":["Inhalte"],"summary":"Event lesen","operationId":"get_events","security":[{},{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"404":{"description":"nicht vorhanden oder nicht sichtbar","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"Event anlegen oder ersetzen","operationId":"put_events","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"401":{"description":"kein Schlüssel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Eintrag ungültig (details)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Inhalte"],"summary":"Event löschen","operationId":"delete_events","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"gelöscht"},"404":{"description":"nicht vorhanden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/profile":{"get":{"tags":["Inhalte"],"summary":"Profil (Bio, Genres, Setup, Kontakt) lesen","operationId":"get_profile","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Profile"}}}},"404":{"description":"noch nicht gesetzt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"Profil (Bio, Genres, Setup, Kontakt) setzen","operationId":"put_profile","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Profile"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Profile"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"ungültig","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/site":{"get":{"tags":["Inhalte"],"summary":"Seiteneinstellungen lesen","operationId":"get_site","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Site"}}}},"404":{"description":"noch nicht gesetzt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"Seiteneinstellungen setzen","operationId":"put_site","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Site"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Site"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"ungültig","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/partners/mediakit":{"get":{"tags":["Inhalte"],"summary":"Mediakit für Werbepartner (audience, reach, formats, pricing, rules) lesen","operationId":"get_mediakit","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaKit"}}}},"404":{"description":"noch nicht gesetzt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"Mediakit für Werbepartner (audience, reach, formats, pricing, rules) setzen","operationId":"put_mediakit","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaKit"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaKit"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"ungültig","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/partners/types":{"get":{"tags":["Inhalte"],"summary":"Partnerarten lesen","operationId":"get_partner_types","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTypes"}}}},"404":{"description":"noch nicht gesetzt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Inhalte"],"summary":"Partnerarten setzen","operationId":"put_partner_types","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTypes"}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerTypes"}}}},"403":{"description":"Recht content:write fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"ungültig","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/apps/{app}/records":{"get":{"tags":["Apps"],"summary":"Gespeicherte Dokumente einer App auflisten","operationId":"listRecords","security":[{"bearerAuth":[]}],"parameters":[{"name":"app","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]{2,40}$"},"description":"App-Kennung, z. B. creator, planner, midi"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"app":{"type":"string"},"records":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}},"403":{"description":"Recht records:<app> fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/apps/{app}/records/{key}":{"get":{"tags":["Apps"],"summary":"Dokument lesen","operationId":"getRecord","security":[{"bearerAuth":[]}],"parameters":[{"name":"app","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]{2,40}$"},"description":"App-Kennung, z. B. creator, planner, midi"},{"name":"key","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,120}$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRecord"}}}},"404":{"description":"nicht vorhanden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Apps"],"summary":"Dokument speichern (JSON, bis 256 KB)","operationId":"putRecord","security":[{"bearerAuth":[]}],"parameters":[{"name":"app","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]{2,40}$"},"description":"App-Kennung, z. B. creator, planner, midi"},{"name":"key","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,120}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{}}}},"responses":{"200":{"description":"gespeichert","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppRecord"}}}},"413":{"description":"zu groß","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Apps"],"summary":"Dokument löschen","operationId":"deleteRecord","security":[{"bearerAuth":[]}],"parameters":[{"name":"app","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]{2,40}$"},"description":"App-Kennung, z. B. creator, planner, midi"},{"name":"key","in":"path","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,120}$"}}],"responses":{"204":{"description":"gelöscht"},"404":{"description":"nicht vorhanden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/apps/{app}/events":{"get":{"tags":["Apps"],"summary":"Letzte Ereignisse einer App","operationId":"listEvents","security":[{"bearerAuth":[]}],"parameters":[{"name":"app","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]{2,40}$"},"description":"App-Kennung, z. B. creator, planner, midi"},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":500}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"app":{"type":"string"},"events":{"type":"array","items":{"$ref":"#/components/schemas/AppEvent"}}}}}}}}},"post":{"tags":["Apps"],"summary":"Ereignis melden","operationId":"postEvent","security":[{"bearerAuth":[]}],"parameters":[{"name":"app","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]{2,40}$"},"description":"App-Kennung, z. B. creator, planner, midi"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["kind"],"properties":{"kind":{"type":"string","pattern":"^[a-z0-9._-]{1,60}$"},"payload":{}}}}}},"responses":{"201":{"description":"angelegt","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"}}}}}},"403":{"description":"Recht events:<app> fehlt","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"lang":{"enum":["de","en"]},"i18n":{"type":"object","required":["de","en"],"properties":{"de":{"type":"string"},"en":{"type":"string"}},"additionalProperties":false},"status":{"enum":["placeholder","planned","draft","published","archived"],"description":"placeholder = Beispiel/Struktur; planned = vorgesehen; draft = in Arbeit; published = live; archived = nicht mehr aktiv"},"visibility":{"enum":["public","partners","private"],"description":"public = Seite und API; partners = nur mit Partner-Schlüssel; private = nie ausgeliefert"},"platform":{"enum":["youtube","tiktok","instagram","soundcloud","spotify","bandcamp","twitch","apple-music","beatport","shop","site","other"]},"idPRF":{"type":"string","pattern":"^PRF-[0-9]{6}$"},"idCNT":{"type":"string","pattern":"^CNT-[0-9]{6}$"},"idNWS":{"type":"string","pattern":"^NWS-[0-9]{6}$"},"idMST":{"type":"string","pattern":"^MST-[0-9]{6}$"},"idMRP":{"type":"string","pattern":"^MRP-[0-9]{6}$"},"idPRT":{"type":"string","pattern":"^PRT-[0-9]{6}$"},"idCOL":{"type":"string","pattern":"^COL-[0-9]{6}$"},"idEVT":{"type":"string","pattern":"^EVT-[0-9]{6}$"},"Item":{"type":"object","required":["id","type","platform","title","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idCNT"},"type":{"enum":["video","short","post","track","mix","set","release","article","stream"]},"platform":{"$ref":"#/components/schemas/platform"},"title":{"$ref":"#/components/schemas/i18n"},"summary":{"$ref":"#/components/schemas/i18n"},"url":{"type":["string","null"]},"thumbnail":{"type":["string","null"]},"series":{"type":["string","null"]},"publishedAt":{"type":["string","null"]},"durationSec":{"type":["integer","null"]},"bpm":{"type":["number","null"]},"key":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string"}},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"},"source":{"type":"object","description":"Herkunft, z. B. Creator-ERP-Variante: { \"creatorVariant\": \"VAR-000001\" }"}}},"News":{"type":"object","required":["id","date","title","body","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idNWS"},"date":{"type":"string","format":"date"},"title":{"$ref":"#/components/schemas/i18n"},"body":{"$ref":"#/components/schemas/i18n"},"url":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string"}},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}},"Channel":{"type":"object","required":["id","platform","label","url","status","visibility"],"properties":{"id":{"type":"string","pattern":"^CH-[a-z0-9-]+$"},"platform":{"$ref":"#/components/schemas/platform"},"label":{"type":"string"},"handle":{"type":"string"},"url":{"type":"string","format":"uri"},"purpose":{"$ref":"#/components/schemas/i18n"},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"},"order":{"type":"integer"}}},"App":{"type":"object","required":["id","name","version","summary","status","visibility"],"properties":{"id":{"type":"string","pattern":"^APP-[a-z0-9-]+$"},"name":{"type":"string"},"version":{"type":"string"},"url":{"type":["string","null"]},"summary":{"$ref":"#/components/schemas/i18n"},"repo":{"type":"string"},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}},"MerchStore":{"type":"object","required":["id","name","provider","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idMST"},"name":{"type":"string"},"provider":{"type":"string","description":"z. B. placeholder, shopify, spreadshirt, printful, bandcamp"},"url":{"type":["string","null"]},"regions":{"type":"array","items":{"type":"string"}},"fulfilment":{"enum":["print-on-demand","stock","digital","dropship","other"]},"summary":{"$ref":"#/components/schemas/i18n"},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}},"MerchProduct":{"type":"object","required":["id","storeId","name","category","price","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idMRP"},"storeId":{"$ref":"#/components/schemas/idMST"},"name":{"$ref":"#/components/schemas/i18n"},"category":{"enum":["apparel","accessory","print","digital","music","bundle","other"]},"subcategory":{"type":"string"},"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":["number","null"]},"currency":{"type":"string","pattern":"^[A-Z]{3}$"}}},"sizes":{"type":"array","items":{"type":"string"}},"colors":{"type":"array","items":{"type":"string"}},"url":{"type":["string","null"]},"image":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string"}},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}},"Partner":{"type":"object","required":["id","name","typeId","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idPRT"},"name":{"type":"string"},"typeId":{"type":"string"},"url":{"type":["string","null"]},"since":{"type":["string","null"]},"summary":{"$ref":"#/components/schemas/i18n"},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"},"conditions":{"$ref":"#/components/schemas/i18n","description":"spezifische Konditionen dieses Partners (ergänzt das allgemeine Mediakit)"},"portal":{"type":"object","description":"Partner-Portal: Link, über den der Partner Status-Updates und Nachrichten einstellt (WEB-0002, geplant)","required":["status"],"properties":{"url":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/status"},"keyId":{"type":["string","null"],"description":"ID des Partner-Schlüssels (nie der Schlüssel selbst)"}}},"contact":{"type":"object","properties":{"name":{"type":["string","null"]},"email":{"type":["string","null"]}}}}},"Collaboration":{"type":"object","required":["id","kind","partner","title","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idCOL"},"kind":{"enum":["track","remix","set","video","stream","event","product","other"]},"partner":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"url":{"type":["string","null"]}}},"title":{"$ref":"#/components/schemas/i18n"},"summary":{"$ref":"#/components/schemas/i18n"},"url":{"type":["string","null"]},"date":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}},"Event":{"type":"object","required":["id","title","date","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idEVT"},"title":{"$ref":"#/components/schemas/i18n"},"date":{"type":"string"},"venue":{"type":["string","null"]},"city":{"type":["string","null"]},"url":{"type":["string","null"]},"kind":{"enum":["club","festival","stream","release-party","other"]},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}},"Profile":{"type":"object","required":["id","name","role","tagline","bio","genres","contact","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idPRF"},"name":{"type":"string"},"person":{"type":"string"},"role":{"$ref":"#/components/schemas/i18n"},"tagline":{"$ref":"#/components/schemas/i18n"},"bio":{"$ref":"#/components/schemas/i18n"},"genres":{"type":"array","items":{"type":"string"}},"location":{"$ref":"#/components/schemas/i18n"},"setup":{"type":"array","items":{"$ref":"#/components/schemas/i18n"}},"contact":{"type":"object","additionalProperties":{"type":"object","required":["email","status"],"properties":{"email":{"type":"string","format":"email"},"status":{"$ref":"#/components/schemas/status"},"note":{"$ref":"#/components/schemas/i18n"}}}},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}},"Site":{"type":"object","required":["name","domain","defaultLang","languages"],"properties":{"name":{"type":"string"},"domain":{"type":"string"},"defaultLang":{"$ref":"#/components/schemas/lang"},"languages":{"type":"array","items":{"$ref":"#/components/schemas/lang"},"minItems":1},"showPlaceholders":{"type":"boolean"},"api":{"type":"object","additionalProperties":{"type":"string"}}}},"MediaKit":{"type":"object","required":["id","updatedAt","audience","reach","formats","pricing","contact","status","visibility"],"properties":{"id":{"type":"string","pattern":"^MDK-[0-9]{6}$"},"updatedAt":{"type":"string","format":"date"},"audience":{"$ref":"#/components/schemas/i18n"},"reach":{"type":"array","items":{"type":"object","required":["platform","followers","monthlyViews","asOf","status"],"properties":{"platform":{"$ref":"#/components/schemas/platform"},"followers":{"type":["integer","null"]},"monthlyViews":{"type":["integer","null"]},"asOf":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/status"}}}},"formats":{"type":"array","items":{"type":"object","required":["id","name","channels","status"],"properties":{"id":{"type":"string","pattern":"^FMT-[a-z0-9-]+$"},"name":{"$ref":"#/components/schemas/i18n"},"channels":{"type":"array","items":{"type":"string"}},"status":{"$ref":"#/components/schemas/status"}}}},"pricing":{"type":"object","required":["model"],"properties":{"model":{"enum":["on-request","rate-card","revenue-share","free"]},"note":{"$ref":"#/components/schemas/i18n"}}},"rules":{"$ref":"#/components/schemas/i18n"},"contact":{"type":"string","format":"email"},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"},"scope":{"$ref":"#/components/schemas/i18n","description":"Geltung: allgemeine Konditionen; Verweis auf partnerspezifische Einträge"}}},"PartnerTypes":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^PRT-type-[a-z0-9-]+$"},"name":{"$ref":"#/components/schemas/i18n"},"description":{"$ref":"#/components/schemas/i18n"}}}},"ContentFile":{"title":"rk9live-content/1","description":"Standardisiertes Inhaltsmodell von rk9live.com. Dieselbe Form liefert die statische Datei content/content.json und die API (GET /api/v1/export). Texte sind zweisprachig (de/en). Jede Entität hat eine unveränderliche ID mit Präfix, einen Status und eine Sichtbarkeit.","type":"object","required":["schema","updatedAt","site","profile","channels","items","apps","news","merch","partners","collaborations","events"],"additionalProperties":false,"properties":{"schema":{"const":"rk9live-content/1"},"updatedAt":{"type":"string","format":"date-time"},"site":{"type":"object","required":["name","domain","defaultLang","languages"],"properties":{"name":{"type":"string"},"domain":{"type":"string"},"defaultLang":{"$ref":"#/components/schemas/lang"},"languages":{"type":"array","items":{"$ref":"#/components/schemas/lang"},"minItems":1},"showPlaceholders":{"type":"boolean"},"api":{"type":"object","additionalProperties":{"type":"string"}}}},"profile":{"type":"object","required":["id","name","role","tagline","bio","genres","contact","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idPRF"},"name":{"type":"string"},"person":{"type":"string"},"role":{"$ref":"#/components/schemas/i18n"},"tagline":{"$ref":"#/components/schemas/i18n"},"bio":{"$ref":"#/components/schemas/i18n"},"genres":{"type":"array","items":{"type":"string"}},"location":{"$ref":"#/components/schemas/i18n"},"setup":{"type":"array","items":{"$ref":"#/components/schemas/i18n"}},"contact":{"type":"object","additionalProperties":{"type":"object","required":["email","status"],"properties":{"email":{"type":"string","format":"email"},"status":{"$ref":"#/components/schemas/status"},"note":{"$ref":"#/components/schemas/i18n"}}}},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}},"channels":{"type":"array","items":{"type":"object","required":["id","platform","label","url","status","visibility"],"properties":{"id":{"type":"string","pattern":"^CH-[a-z0-9-]+$"},"platform":{"$ref":"#/components/schemas/platform"},"label":{"type":"string"},"handle":{"type":"string"},"url":{"type":"string","format":"uri"},"purpose":{"$ref":"#/components/schemas/i18n"},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"},"order":{"type":"integer"}}}},"items":{"type":"array","description":"Veröffentlichter oder geplanter Content: Videos, Shorts, Posts, Tracks, Mixe, Sets, Releases, Artikel.","items":{"type":"object","required":["id","type","platform","title","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idCNT"},"type":{"enum":["video","short","post","track","mix","set","release","article","stream"]},"platform":{"$ref":"#/components/schemas/platform"},"title":{"$ref":"#/components/schemas/i18n"},"summary":{"$ref":"#/components/schemas/i18n"},"url":{"type":["string","null"]},"thumbnail":{"type":["string","null"]},"series":{"type":["string","null"]},"publishedAt":{"type":["string","null"]},"durationSec":{"type":["integer","null"]},"bpm":{"type":["number","null"]},"key":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string"}},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"},"source":{"type":"object","description":"Herkunft, z. B. Creator-ERP-Variante: { \"creatorVariant\": \"VAR-000001\" }"}}}},"apps":{"type":"array","items":{"type":"object","required":["id","name","version","summary","status","visibility"],"properties":{"id":{"type":"string","pattern":"^APP-[a-z0-9-]+$"},"name":{"type":"string"},"version":{"type":"string"},"url":{"type":["string","null"]},"summary":{"$ref":"#/components/schemas/i18n"},"repo":{"type":"string"},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}}},"news":{"type":"array","items":{"type":"object","required":["id","date","title","body","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idNWS"},"date":{"type":"string","format":"date"},"title":{"$ref":"#/components/schemas/i18n"},"body":{"$ref":"#/components/schemas/i18n"},"url":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string"}},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}}},"merch":{"type":"object","required":["stores","products"],"properties":{"stores":{"type":"array","items":{"type":"object","required":["id","name","provider","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idMST"},"name":{"type":"string"},"provider":{"type":"string","description":"z. B. placeholder, shopify, spreadshirt, printful, bandcamp"},"url":{"type":["string","null"]},"regions":{"type":"array","items":{"type":"string"}},"fulfilment":{"enum":["print-on-demand","stock","digital","dropship","other"]},"summary":{"$ref":"#/components/schemas/i18n"},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}}},"products":{"type":"array","items":{"type":"object","required":["id","storeId","name","category","price","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idMRP"},"storeId":{"$ref":"#/components/schemas/idMST"},"name":{"$ref":"#/components/schemas/i18n"},"category":{"enum":["apparel","accessory","print","digital","music","bundle","other"]},"subcategory":{"type":"string"},"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":["number","null"]},"currency":{"type":"string","pattern":"^[A-Z]{3}$"}}},"sizes":{"type":"array","items":{"type":"string"}},"colors":{"type":"array","items":{"type":"string"}},"url":{"type":["string","null"]},"image":{"type":["string","null"]},"tags":{"type":"array","items":{"type":"string"}},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}}}}},"partners":{"type":"object","required":["mediaKit","types","partners"],"properties":{"mediaKit":{"type":"object","required":["id","updatedAt","audience","reach","formats","pricing","contact","status","visibility"],"properties":{"id":{"type":"string","pattern":"^MDK-[0-9]{6}$"},"updatedAt":{"type":"string","format":"date"},"audience":{"$ref":"#/components/schemas/i18n"},"reach":{"type":"array","items":{"type":"object","required":["platform","followers","monthlyViews","asOf","status"],"properties":{"platform":{"$ref":"#/components/schemas/platform"},"followers":{"type":["integer","null"]},"monthlyViews":{"type":["integer","null"]},"asOf":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/status"}}}},"formats":{"type":"array","items":{"type":"object","required":["id","name","channels","status"],"properties":{"id":{"type":"string","pattern":"^FMT-[a-z0-9-]+$"},"name":{"$ref":"#/components/schemas/i18n"},"channels":{"type":"array","items":{"type":"string"}},"status":{"$ref":"#/components/schemas/status"}}}},"pricing":{"type":"object","required":["model"],"properties":{"model":{"enum":["on-request","rate-card","revenue-share","free"]},"note":{"$ref":"#/components/schemas/i18n"}}},"rules":{"$ref":"#/components/schemas/i18n"},"contact":{"type":"string","format":"email"},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"},"scope":{"$ref":"#/components/schemas/i18n","description":"Geltung: allgemeine Konditionen; Verweis auf partnerspezifische Einträge"}}},"types":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","pattern":"^PRT-type-[a-z0-9-]+$"},"name":{"$ref":"#/components/schemas/i18n"},"description":{"$ref":"#/components/schemas/i18n"}}}},"partners":{"type":"array","description":"Konkrete Partner (nur mit Zustimmung öffentlich).","items":{"type":"object","required":["id","name","typeId","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idPRT"},"name":{"type":"string"},"typeId":{"type":"string"},"url":{"type":["string","null"]},"since":{"type":["string","null"]},"summary":{"$ref":"#/components/schemas/i18n"},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"},"conditions":{"$ref":"#/components/schemas/i18n","description":"spezifische Konditionen dieses Partners (ergänzt das allgemeine Mediakit)"},"portal":{"type":"object","description":"Partner-Portal: Link, über den der Partner Status-Updates und Nachrichten einstellt (WEB-0002, geplant)","required":["status"],"properties":{"url":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/status"},"keyId":{"type":["string","null"],"description":"ID des Partner-Schlüssels (nie der Schlüssel selbst)"}}},"contact":{"type":"object","properties":{"name":{"type":["string","null"]},"email":{"type":["string","null"]}}}}}}}},"collaborations":{"type":"array","items":{"type":"object","required":["id","kind","partner","title","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idCOL"},"kind":{"enum":["track","remix","set","video","stream","event","product","other"]},"partner":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"url":{"type":["string","null"]}}},"title":{"$ref":"#/components/schemas/i18n"},"summary":{"$ref":"#/components/schemas/i18n"},"url":{"type":["string","null"]},"date":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}}},"events":{"type":"array","items":{"type":"object","required":["id","title","date","status","visibility"],"properties":{"id":{"$ref":"#/components/schemas/idEVT"},"title":{"$ref":"#/components/schemas/i18n"},"date":{"type":"string"},"venue":{"type":["string","null"]},"city":{"type":["string","null"]},"url":{"type":["string","null"]},"kind":{"enum":["club","festival","stream","release-party","other"]},"status":{"$ref":"#/components/schemas/status"},"visibility":{"$ref":"#/components/schemas/visibility"}}}}}},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["code","message"]}},"required":["error"]},"AppRecord":{"type":"object","properties":{"app":{"type":"string"},"key":{"type":"string"},"value":{},"updated_at":{"type":"string","format":"date-time"}},"required":["app","key","value","updated_at"]},"AppEvent":{"type":"object","properties":{"id":{"type":"integer"},"app":{"type":"string"},"kind":{"type":"string"},"payload":{},"created_at":{"type":"string","format":"date-time"}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"rk9_…","description":"Schlüssel von Andre; Rechte: content:write, partners:read, records:<app>, events:<app>"}}}}