Implement remote library metadata sync for iPhone

This commit is contained in:
diyaa
2026-05-29 08:54:09 +02:00
parent ebc187f4a1
commit 6e73c1878e
20 changed files with 1379 additions and 48 deletions
+92
View File
@@ -238,6 +238,37 @@
]
}
},
"/api/v1/library/tracks": {
"get": {
"operationId": "LibraryController_getTracks_v1",
"parameters": [
{
"name": "deviceId",
"required": true,
"in": "query",
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LibraryTracksResponseDto"
}
}
}
}
},
"tags": [
"library"
]
}
},
"/api/v1/sync/bootstrap": {
"get": {
"operationId": "SyncController_bootstrap_v1",
@@ -582,6 +613,67 @@
"assetId"
]
},
"RemoteLibraryTrackDto": {
"type": "object",
"properties": {
"trackId": {
"type": "string",
"format": "uuid"
},
"title": {
"type": "string",
"example": "Track Title"
},
"artist": {
"type": "string",
"example": "Track Artist"
},
"durationSeconds": {
"type": "number",
"example": 245
},
"sha256": {
"type": "string",
"example": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"assetId": {
"type": "string",
"format": "uuid"
},
"createdAt": {
"type": "string",
"example": "2026-05-29T08:00:00.000Z"
},
"updatedAt": {
"type": "string",
"example": "2026-05-29T08:05:00.000Z"
}
},
"required": [
"trackId",
"title",
"artist",
"durationSeconds",
"sha256",
"assetId",
"createdAt",
"updatedAt"
]
},
"LibraryTracksResponseDto": {
"type": "object",
"properties": {
"tracks": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemoteLibraryTrackDto"
}
}
},
"required": [
"tracks"
]
},
"LibraryTrackDto": {
"type": "object",
"properties": {