refactor(server): use uuids in schemas (#29140)

This commit is contained in:
Timon 2026-06-17 14:50:17 +02:00 committed by GitHub
parent 430a2bbfd3
commit 3f2e51c5d4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
25 changed files with 269 additions and 87 deletions

View file

@ -16508,7 +16508,9 @@
},
"albumThumbnailAssetId": {
"description": "Thumbnail asset ID",
"format": "uuid",
"nullable": true,
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"albumUsers": {
@ -16551,6 +16553,8 @@
},
"id": {
"description": "Album ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isActivityEnabled": {
@ -16793,6 +16797,8 @@
},
"id": {
"description": "API key ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"name": {
@ -17001,6 +17007,8 @@
},
"id": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isTrashed": {
@ -17379,6 +17387,8 @@
"properties": {
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"error": {
@ -17494,6 +17504,8 @@
"properties": {
"id": {
"description": "Asset media ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"status": {
@ -17562,6 +17574,8 @@
"properties": {
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"key": {
@ -17809,7 +17823,9 @@
},
"duplicateId": {
"description": "Duplicate group ID",
"format": "uuid",
"nullable": true,
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"duration": {
@ -17845,6 +17861,8 @@
},
"id": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isArchived": {
@ -17923,6 +17941,8 @@
},
"ownerId": {
"description": "Owner user ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"people": {
@ -18020,10 +18040,14 @@
},
"id": {
"description": "Stack ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"primaryAssetId": {
"description": "Primary asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -18159,6 +18183,8 @@
},
"id": {
"description": "ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"success": {
@ -18337,6 +18363,8 @@
},
"userId": {
"description": "User ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -18441,6 +18469,8 @@
},
"userId": {
"description": "User ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -18600,6 +18630,8 @@
"assetIds": {
"description": "Asset IDs in this archive",
"items": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"type": "array"
@ -18785,6 +18817,8 @@
},
"duplicateId": {
"description": "Duplicate group ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"suggestedKeepAssetIds": {
@ -19101,6 +19135,8 @@
"properties": {
"id": {
"description": "Integrity report item id",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"path": {
@ -19275,6 +19311,8 @@
},
"id": {
"description": "Library ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"importPaths": {
@ -19290,6 +19328,8 @@
},
"ownerId": {
"description": "Owner user ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"refreshedAt": {
@ -19444,6 +19484,8 @@
},
"userId": {
"description": "User ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -19634,6 +19676,8 @@
},
"id": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"lat": {
@ -19834,6 +19878,8 @@
},
"id": {
"description": "Memory ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isSaved": {
@ -19849,6 +19895,8 @@
},
"ownerId": {
"description": "Owner user ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"seenAt": {
@ -20310,6 +20358,8 @@
},
"id": {
"description": "Notification ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"level": {
@ -20754,6 +20804,8 @@
},
"id": {
"description": "Person ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isFavorite": {
@ -20989,6 +21041,8 @@
},
"id": {
"description": "Person ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isFavorite": {
@ -21244,6 +21298,8 @@
},
"id": {
"description": "Plugin ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"methods": {
@ -22639,6 +22695,8 @@
},
"id": {
"description": "Version history entry ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"version": {
@ -22743,6 +22801,8 @@
},
"id": {
"description": "Session ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isPendingSyncReset": {
@ -22800,6 +22860,8 @@
},
"id": {
"description": "Session ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isPendingSyncReset": {
@ -23022,6 +23084,8 @@
},
"id": {
"description": "Shared link ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"key": {
@ -23047,6 +23111,8 @@
},
"userId": {
"description": "Owner user ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -23388,10 +23454,14 @@
},
"id": {
"description": "Stack ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"primaryAssetId": {
"description": "Primary asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -23665,6 +23735,8 @@
"properties": {
"albumId": {
"description": "Album ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -23677,10 +23749,14 @@
"properties": {
"albumId": {
"description": "Album ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -23694,10 +23770,14 @@
"properties": {
"albumId": {
"description": "Album ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -23711,10 +23791,14 @@
"properties": {
"albumId": {
"description": "Album ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"userId": {
"description": "User ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -23728,6 +23812,8 @@
"properties": {
"albumId": {
"description": "Album ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"role": {
@ -23735,6 +23821,8 @@
},
"userId": {
"description": "User ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -23760,6 +23848,8 @@
},
"id": {
"description": "Album ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isActivityEnabled": {
@ -23775,6 +23865,8 @@
},
"ownerId": {
"description": "Owner ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"thumbnailAssetId": {
@ -23818,6 +23910,8 @@
},
"id": {
"description": "Album ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isActivityEnabled": {
@ -23860,6 +23954,8 @@
"properties": {
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -23872,6 +23968,8 @@
"properties": {
"editId": {
"description": "Edit ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -23887,10 +23985,14 @@
},
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"id": {
"description": "Edit ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"parameters": {
@ -23918,6 +24020,8 @@
"properties": {
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"city": {
@ -24095,6 +24199,8 @@
"properties": {
"assetFaceId": {
"description": "Asset face ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -24107,6 +24213,8 @@
"properties": {
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"boundingBoxX1": {
@ -24135,6 +24243,8 @@
},
"id": {
"description": "Asset face ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"imageHeight": {
@ -24177,6 +24287,8 @@
"properties": {
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"boundingBoxX1": {
@ -24213,6 +24325,8 @@
},
"id": {
"description": "Asset face ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"imageHeight": {
@ -24261,6 +24375,8 @@
"properties": {
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"key": {
@ -24278,6 +24394,8 @@
"properties": {
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"key": {
@ -24326,6 +24444,8 @@
"properties": {
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"boxScore": {
@ -24335,6 +24455,8 @@
},
"id": {
"description": "OCR entry ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isVisible": {
@ -24461,6 +24583,8 @@
},
"id": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isEdited": {
@ -24495,6 +24619,8 @@
},
"ownerId": {
"description": "Owner ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"stackId": {
@ -24599,6 +24725,8 @@
},
"id": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isEdited": {
@ -24633,6 +24761,8 @@
},
"ownerId": {
"description": "Owner ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"stackId": {
@ -24711,6 +24841,8 @@
},
"id": {
"description": "User ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isAdmin": {
@ -24845,10 +24977,14 @@
"properties": {
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"memoryId": {
"description": "Memory ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -24862,10 +24998,14 @@
"properties": {
"assetId": {
"description": "Asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"memoryId": {
"description": "Memory ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -24879,6 +25019,8 @@
"properties": {
"memoryId": {
"description": "Memory ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -24919,6 +25061,8 @@
},
"id": {
"description": "Memory ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isSaved": {
@ -24934,6 +25078,8 @@
},
"ownerId": {
"description": "Owner ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"seenAt": {
@ -24983,10 +25129,14 @@
"properties": {
"sharedById": {
"description": "Shared by ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"sharedWithId": {
"description": "Shared with ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -25004,10 +25154,14 @@
},
"sharedById": {
"description": "Shared by ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"sharedWithId": {
"description": "Shared with ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -25022,6 +25176,8 @@
"properties": {
"personId": {
"description": "Person ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -25059,6 +25215,8 @@
},
"id": {
"description": "Person ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"isFavorite": {
@ -25075,6 +25233,8 @@
},
"ownerId": {
"description": "Owner ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"updatedAt": {
@ -25140,6 +25300,8 @@
"properties": {
"stackId": {
"description": "Stack ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -25159,14 +25321,20 @@
},
"id": {
"description": "Stack ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"ownerId": {
"description": "Owner ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"primaryAssetId": {
"description": "Primary asset ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"updatedAt": {
@ -25209,6 +25377,8 @@
"properties": {
"userId": {
"description": "User ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -25224,6 +25394,8 @@
},
"userId": {
"description": "User ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
}
},
@ -25240,6 +25412,8 @@
},
"userId": {
"description": "User ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"value": {
@ -25283,6 +25457,8 @@
},
"id": {
"description": "User ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"name": {
@ -26466,6 +26642,8 @@
},
"id": {
"description": "Tag ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"name": {
@ -26989,6 +27167,8 @@
},
"userId": {
"description": "User ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"userName": {
@ -27631,6 +27811,8 @@
},
"id": {
"description": "Workflow ID",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"type": "string"
},
"name": {

View file

@ -100,21 +100,21 @@ const AlbumUserResponseSchema = z
const ContributorCountResponseSchema = z
.object({
userId: z.string().describe('User ID'),
userId: z.uuidv4().describe('User ID'),
assetCount: z.int().min(0).describe('Number of assets contributed'),
})
.meta({ id: 'ContributorCountResponseDto' });
export const AlbumResponseSchema = z
.object({
id: z.string().describe('Album ID'),
id: z.uuidv4().describe('Album ID'),
albumName: z.string().describe('Album name'),
description: z.string().describe('Album description'),
// TODO: use `isoDatetimeToDate` when using `ZodSerializerDto` on the controllers.
createdAt: z.string().meta({ format: 'date-time' }).describe('Creation date'),
// TODO: use `isoDatetimeToDate` when using `ZodSerializerDto` on the controllers.
updatedAt: z.string().meta({ format: 'date-time' }).describe('Last update date'),
albumThumbnailAssetId: z.string().nullable().describe('Thumbnail asset ID'),
albumThumbnailAssetId: z.uuidv4().nullable().describe('Thumbnail asset ID'),
shared: z.boolean().describe('Is shared album'),
albumUsers: z
.array(AlbumUserResponseSchema)

View file

@ -21,7 +21,7 @@ const ApiKeyUpdateSchema = z
const ApiKeyResponseSchema = z
.object({
id: z.string().describe('API key ID'),
id: z.uuidv4().describe('API key ID'),
name: z.string().describe('API key name'),
createdAt: isoDatetimeToDate.describe('Creation date'),
updatedAt: isoDatetimeToDate.describe('Last update date'),

View file

@ -16,7 +16,7 @@ const AssetIdErrorReasonSchema = z
/** @deprecated Use `BulkIdResponseDto` instead */
const AssetIdsResponseSchema = z
.object({
assetId: z.string().describe('Asset ID'),
assetId: z.uuidv4().describe('Asset ID'),
success: z.boolean().describe('Whether operation succeeded'),
error: AssetIdErrorReasonSchema.optional(),
})
@ -43,7 +43,7 @@ export const BulkIdsSchema = z
const BulkIdResponseSchema = z
.object({
id: z.string().describe('ID'),
id: z.uuidv4().describe('ID'),
success: z.boolean().describe('Whether operation succeeded'),
error: BulkIdErrorReasonSchema.optional(),
errorMessage: z.string().optional(),

View file

@ -11,7 +11,7 @@ const AssetMediaStatusSchema = z.enum(AssetMediaStatus).describe('Upload status'
const AssetMediaResponseSchema = z
.object({
status: AssetMediaStatusSchema,
id: z.string().describe('Asset media ID'),
id: z.uuidv4().describe('Asset media ID'),
})
.meta({ id: 'AssetMediaResponseDto' });
@ -34,7 +34,7 @@ const AssetRejectReasonSchema = z
const AssetBulkUploadCheckResultSchema = z
.object({
id: z.string().describe('Asset ID'),
id: z.uuidv4().describe('Asset ID'),
action: AssetUploadActionSchema,
reason: AssetRejectReasonSchema.optional(),
assetId: z.string().optional().describe('Existing asset ID if duplicate'),

View file

@ -24,7 +24,7 @@ import z from 'zod';
const SanitizedAssetResponseSchema = z
.object({
id: z.string().describe('Asset ID'),
id: z.uuidv4().describe('Asset ID'),
type: AssetTypeSchema,
thumbhash: z
.string()
@ -52,8 +52,8 @@ export class SanitizedAssetResponseDto extends createZodDto(SanitizedAssetRespon
const AssetStackResponseSchema = z
.object({
id: z.string().describe('Stack ID'),
primaryAssetId: z.string().describe('Primary asset ID'),
id: z.uuidv4().describe('Stack ID'),
primaryAssetId: z.uuidv4().describe('Primary asset ID'),
assetCount: z.int().min(0).describe('Number of assets in stack'),
})
.meta({ id: 'AssetStackResponseDto' });
@ -65,7 +65,7 @@ export const AssetResponseSchema = SanitizedAssetResponseSchema.extend(
.string()
.meta({ format: 'date-time' })
.describe('The UTC timestamp when the asset was originally uploaded to Immich.'),
ownerId: z.string().describe('Owner user ID'),
ownerId: z.uuidv4().describe('Owner user ID'),
owner: UserResponseSchema.optional(),
libraryId: z
.uuidv4()
@ -103,7 +103,7 @@ export const AssetResponseSchema = SanitizedAssetResponseSchema.extend(
people: z.array(PersonResponseSchema).optional(),
checksum: z.string().describe('Base64 encoded SHA1 hash'),
stack: AssetStackResponseSchema.nullish(),
duplicateId: z.string().nullish().describe('Duplicate group ID'),
duplicateId: z.uuidv4().nullish().describe('Duplicate group ID'),
resized: z
.boolean()
.optional()

View file

@ -148,7 +148,7 @@ const AssetMetadataResponseSchema = z
.meta({ id: 'AssetMetadataResponseDto' });
const AssetMetadataBulkResponseSchema = AssetMetadataResponseSchema.extend({
assetId: z.string().describe('Asset ID'),
assetId: z.uuidv4().describe('Asset ID'),
}).meta({ id: 'AssetMetadataBulkResponseDto' });
const AssetCopySchema = z

View file

@ -29,7 +29,7 @@ const LoginCredentialSchema = z
const LoginResponseSchema = z
.object({
accessToken: z.string().describe('Access token'),
userId: z.string().describe('User ID'),
userId: z.uuidv4().describe('User ID'),
userEmail: toEmail.describe('User email'),
name: z.string().describe('User name'),
profileImagePath: z.string().describe('Profile image path'),

View file

@ -14,7 +14,7 @@ const DownloadInfoSchema = z
const DownloadArchiveInfoSchema = z
.object({
size: z.int().describe('Archive size in bytes'),
assetIds: z.array(z.string()).describe('Asset IDs in this archive'),
assetIds: z.array(z.uuidv4()).describe('Asset IDs in this archive'),
})
.meta({ id: 'DownloadArchiveInfo' });

View file

@ -4,7 +4,7 @@ import z from 'zod';
const DuplicateResponseSchema = z
.object({
duplicateId: z.string().describe('Duplicate group ID'),
duplicateId: z.uuidv4().describe('Duplicate group ID'),
assets: z.array(AssetResponseSchema).describe('Duplicate assets'),
suggestedKeepAssetIds: z.array(z.uuidv4()).describe('Suggested asset IDs to keep based on file size and EXIF data'),
})

View file

@ -27,7 +27,7 @@ const IntegrityDeleteReportSchema = z.object({ type: IntegrityReport }).meta({ i
export class IntegrityDeleteReportDto extends createZodDto(IntegrityDeleteReportSchema) {}
const IntegrityReportResponseItemSchema = z.object({
id: z.string().describe('Integrity report item id'),
id: z.uuidv4().describe('Integrity report item id'),
type: IntegrityReportSchema,
path: z.string().describe('Integrity report item path'),
});

View file

@ -62,8 +62,8 @@ const ValidateLibraryResponseSchema = z
const LibraryResponseSchema = z
.object({
id: z.string().describe('Library ID'),
ownerId: z.string().describe('Owner user ID'),
id: z.uuidv4().describe('Library ID'),
ownerId: z.uuidv4().describe('Owner user ID'),
name: z.string().describe('Library name'),
assetCount: z.int().describe('Number of assets'),
importPaths: z.array(z.string()).describe('Import paths'),

View file

@ -30,7 +30,7 @@ const MapMarkerSchema = z
const MapMarkerResponseSchema = z
.object({
id: z.string().describe('Asset ID'),
id: z.uuidv4().describe('Asset ID'),
lat: z.number().meta({ format: 'double' }).describe('Latitude'),
lon: z.number().meta({ format: 'double' }).describe('Longitude'),
city: z.string().nullable().describe('City name'),

View file

@ -59,7 +59,7 @@ const MemoryStatisticsResponseSchema = z
const MemoryResponseSchema = z
.object({
id: z.string().describe('Memory ID'),
id: z.uuidv4().describe('Memory ID'),
createdAt: isoDatetimeToDate.describe('Creation date'),
updatedAt: isoDatetimeToDate.describe('Last update date'),
deletedAt: isoDatetimeToDate.optional().describe('Deletion date'),
@ -67,7 +67,7 @@ const MemoryResponseSchema = z
seenAt: isoDatetimeToDate.optional().describe('Date when memory was seen'),
showAt: isoDatetimeToDate.optional().describe('Date when memory should be shown'),
hideAt: isoDatetimeToDate.optional().describe('Date when memory should be hidden'),
ownerId: z.string().describe('Owner user ID'),
ownerId: z.uuidv4().describe('Owner user ID'),
type: MemoryTypeSchema,
data: OnThisDaySchema,
isSaved: z.boolean().describe('Is memory saved'),

View file

@ -24,7 +24,7 @@ const TemplateSchema = z
const NotificationSchema = z
.object({
id: z.string().describe('Notification ID'),
id: z.uuidv4().describe('Notification ID'),
createdAt: isoDatetimeToDate.describe('Creation date'),
level: NotificationLevelSchema,
type: NotificationTypeSchema,

View file

@ -33,7 +33,7 @@ const PersonUpdateSchema = PersonCreateSchema.extend({
}).meta({ id: 'PersonUpdateDto' });
const PeopleUpdateItemSchema = PersonUpdateSchema.extend({
id: z.string().describe('Person ID'),
id: z.uuidv4().describe('Person ID'),
}).meta({ id: 'PeopleUpdateItem' });
const PeopleUpdateSchema = z
@ -60,7 +60,7 @@ const PersonSearchSchema = z
export const PersonResponseSchema = z
.object({
id: z.string().describe('Person ID'),
id: z.uuidv4().describe('Person ID'),
name: z.string().describe('Person name'),
// TODO: use `isoDateToDate` when using `ZodSerializerDto` on the controllers.
birthDate: z.string().meta({ format: 'date' }).describe('Person date of birth').nullable(),

View file

@ -32,7 +32,7 @@ const PluginMethodResponseSchema = z
const PluginResponseSchema = z
.object({
id: z.string().describe('Plugin ID'),
id: z.uuidv4().describe('Plugin ID'),
name: z.string().describe('Plugin name'),
title: z.string().describe('Plugin title'),
description: z.string().describe('Plugin description'),

View file

@ -73,7 +73,7 @@ const ServerVersionResponseSchema = z
const ServerVersionHistoryResponseSchema = z
.object({
id: z.string().describe('Version history entry ID'),
id: z.uuidv4().describe('Version history entry ID'),
createdAt: isoDatetimeToDate.describe('When this version was first seen'),
version: z.string().describe('Version string'),
})
@ -81,7 +81,7 @@ const ServerVersionHistoryResponseSchema = z
const UsageByUserSchema = z
.object({
userId: z.string().describe('User ID'),
userId: z.uuidv4().describe('User ID'),
userName: z.string().describe('User name'),
photos: z.int().describe('Number of photos'),
videos: z.int().describe('Number of videos'),

View file

@ -18,7 +18,7 @@ const SessionUpdateSchema = z
const SessionResponseSchema = z
.object({
id: z.string().describe('Session ID'),
id: z.uuidv4().describe('Session ID'),
createdAt: z.string().describe('Creation date'),
updatedAt: z.string().describe('Last update date'),
expiresAt: z.string().optional().describe('Expiration date'),

View file

@ -53,10 +53,10 @@ const SharedLinkLoginSchema = z
const SharedLinkResponseSchema = z
.object({
id: z.string().describe('Shared link ID'),
id: z.uuidv4().describe('Shared link ID'),
description: z.string().nullable().describe('Link description'),
password: z.string().nullable().describe('Has password'),
userId: z.string().describe('Owner user ID'),
userId: z.uuidv4().describe('Owner user ID'),
key: z.string().describe('Encryption key (base64url)'),
type: SharedLinkTypeSchema,
createdAt: isoDatetimeToDate.describe('Creation date'),

View file

@ -24,8 +24,8 @@ const StackUpdateSchema = z
const StackResponseSchema = z
.object({
id: z.string().describe('Stack ID'),
primaryAssetId: z.string().describe('Primary asset ID'),
id: z.uuidv4().describe('Stack ID'),
primaryAssetId: z.uuidv4().describe('Primary asset ID'),
assets: z.array(AssetResponseSchema),
})
.describe('Stack response')

View file

@ -19,7 +19,7 @@ import z from 'zod';
const SyncUserV1Schema = z
.object({
id: z.string().describe('User ID'),
id: z.uuidv4().describe('User ID'),
name: z.string().describe('User name'),
email: z.string().describe('User email'),
avatarColor: UserAvatarColorSchema.nullish(),
@ -40,27 +40,27 @@ const SyncAuthUserV1Schema = SyncUserV1Schema.merge(
}),
).meta({ id: 'SyncAuthUserV1' });
const SyncUserDeleteV1Schema = z.object({ userId: z.string().describe('User ID') }).meta({ id: 'SyncUserDeleteV1' });
const SyncUserDeleteV1Schema = z.object({ userId: z.uuidv4().describe('User ID') }).meta({ id: 'SyncUserDeleteV1' });
const SyncPartnerV1Schema = z
.object({
sharedById: z.string().describe('Shared by ID'),
sharedWithId: z.string().describe('Shared with ID'),
sharedById: z.uuidv4().describe('Shared by ID'),
sharedWithId: z.uuidv4().describe('Shared with ID'),
inTimeline: z.boolean().describe('In timeline'),
})
.meta({ id: 'SyncPartnerV1' });
const SyncPartnerDeleteV1Schema = z
.object({
sharedById: z.string().describe('Shared by ID'),
sharedWithId: z.string().describe('Shared with ID'),
sharedById: z.uuidv4().describe('Shared by ID'),
sharedWithId: z.uuidv4().describe('Shared with ID'),
})
.meta({ id: 'SyncPartnerDeleteV1' });
const SyncAssetV1Schema = z
.object({
id: z.string().describe('Asset ID'),
ownerId: z.string().describe('Owner ID'),
id: z.uuidv4().describe('Asset ID'),
ownerId: z.uuidv4().describe('Owner ID'),
originalFileName: z.string().describe('Original file name'),
thumbhash: z.string().nullable().describe('Thumbhash'),
checksum: z.string().describe('Checksum'),
@ -84,8 +84,8 @@ const SyncAssetV1Schema = z
const SyncAssetV2Schema = z
.object({
id: z.string().describe('Asset ID'),
ownerId: z.string().describe('Owner ID'),
id: z.uuidv4().describe('Asset ID'),
ownerId: z.uuidv4().describe('Owner ID'),
originalFileName: z.string().describe('Original file name'),
thumbhash: z.string().nullable().describe('Thumbhash'),
checksum: z.string().describe('Checksum'),
@ -123,12 +123,12 @@ export class SyncAssetV1 extends createZodDto(SyncAssetV1Schema) {}
export class SyncAssetV2 extends createZodDto(SyncAssetV2Schema) {}
const SyncAssetDeleteV1Schema = z
.object({ assetId: z.string().describe('Asset ID') })
.object({ assetId: z.uuidv4().describe('Asset ID') })
.meta({ id: 'SyncAssetDeleteV1' });
const SyncAssetExifV1Schema = z
.object({
assetId: z.string().describe('Asset ID'),
assetId: z.uuidv4().describe('Asset ID'),
description: z.string().nullable().describe('Description'),
exifImageWidth: z.int().nullable().describe('Exif image width'),
exifImageHeight: z.int().nullable().describe('Exif image height'),
@ -158,7 +158,7 @@ const SyncAssetExifV1Schema = z
const SyncAssetMetadataV1Schema = z
.object({
assetId: z.string().describe('Asset ID'),
assetId: z.uuidv4().describe('Asset ID'),
key: z.string().describe('Key'),
value: z.record(z.string(), z.unknown()).describe('Value'),
})
@ -166,15 +166,15 @@ const SyncAssetMetadataV1Schema = z
const SyncAssetMetadataDeleteV1Schema = z
.object({
assetId: z.string().describe('Asset ID'),
assetId: z.uuidv4().describe('Asset ID'),
key: z.string().describe('Key'),
})
.meta({ id: 'SyncAssetMetadataDeleteV1' });
const SyncAssetEditV1Schema = z
.object({
id: z.string().describe('Edit ID'),
assetId: z.string().describe('Asset ID'),
id: z.uuidv4().describe('Edit ID'),
assetId: z.uuidv4().describe('Asset ID'),
action: AssetEditActionSchema,
parameters: z.record(z.string(), z.unknown()).describe('Edit parameters'),
sequence: z.int().describe('Edit sequence'),
@ -182,7 +182,7 @@ const SyncAssetEditV1Schema = z
.meta({ id: 'SyncAssetEditV1' });
const SyncAssetEditDeleteV1Schema = z
.object({ editId: z.string().describe('Edit ID') })
.object({ editId: z.uuidv4().describe('Edit ID') })
.meta({ id: 'SyncAssetEditDeleteV1' });
@ExtraModel()
@ -199,28 +199,28 @@ export class SyncAssetEditV1 extends createZodDto(SyncAssetEditV1Schema) {}
class SyncAssetEditDeleteV1 extends createZodDto(SyncAssetEditDeleteV1Schema) {}
const SyncAlbumDeleteV1Schema = z
.object({ albumId: z.string().describe('Album ID') })
.object({ albumId: z.uuidv4().describe('Album ID') })
.meta({ id: 'SyncAlbumDeleteV1' });
const SyncAlbumUserDeleteV1Schema = z
.object({
albumId: z.string().describe('Album ID'),
userId: z.string().describe('User ID'),
albumId: z.uuidv4().describe('Album ID'),
userId: z.uuidv4().describe('User ID'),
})
.meta({ id: 'SyncAlbumUserDeleteV1' });
const SyncAlbumUserV1Schema = z
.object({
albumId: z.string().describe('Album ID'),
userId: z.string().describe('User ID'),
albumId: z.uuidv4().describe('Album ID'),
userId: z.uuidv4().describe('User ID'),
role: AlbumUserRoleSchema,
})
.meta({ id: 'SyncAlbumUserV1' });
const SyncAlbumV1Schema = z
.object({
id: z.string().describe('Album ID'),
ownerId: z.string().describe('Owner ID'),
id: z.uuidv4().describe('Album ID'),
ownerId: z.uuidv4().describe('Owner ID'),
name: z.string().describe('Album name'),
description: z.string().describe('Album description'),
createdAt: isoDatetimeToDate.describe('Created at'),
@ -233,7 +233,7 @@ const SyncAlbumV1Schema = z
const SyncAlbumV2Schema = z
.object({
id: z.string().describe('Album ID'),
id: z.uuidv4().describe('Album ID'),
name: z.string().describe('Album name'),
description: z.string().describe('Album description'),
createdAt: isoDatetimeToDate.describe('Created at'),
@ -246,15 +246,15 @@ const SyncAlbumV2Schema = z
const SyncAlbumToAssetV1Schema = z
.object({
albumId: z.string().describe('Album ID'),
assetId: z.string().describe('Asset ID'),
albumId: z.uuidv4().describe('Album ID'),
assetId: z.uuidv4().describe('Asset ID'),
})
.meta({ id: 'SyncAlbumToAssetV1' });
const SyncAlbumToAssetDeleteV1Schema = z
.object({
albumId: z.string().describe('Album ID'),
assetId: z.string().describe('Asset ID'),
albumId: z.uuidv4().describe('Album ID'),
assetId: z.uuidv4().describe('Asset ID'),
})
.meta({ id: 'SyncAlbumToAssetDeleteV1' });
@ -284,11 +284,11 @@ export function syncAlbumV2ToV1(
const SyncMemoryV1Schema = z
.object({
id: z.string().describe('Memory ID'),
id: z.uuidv4().describe('Memory ID'),
createdAt: isoDatetimeToDate.describe('Created at'),
updatedAt: isoDatetimeToDate.describe('Updated at'),
deletedAt: isoDatetimeToDate.nullable().describe('Deleted at'),
ownerId: z.string().describe('Owner ID'),
ownerId: z.uuidv4().describe('Owner ID'),
type: MemoryTypeSchema,
data: z.record(z.string(), z.unknown()).describe('Data'),
isSaved: z.boolean().describe('Is saved'),
@ -300,43 +300,43 @@ const SyncMemoryV1Schema = z
.meta({ id: 'SyncMemoryV1' });
const SyncMemoryDeleteV1Schema = z
.object({ memoryId: z.string().describe('Memory ID') })
.object({ memoryId: z.uuidv4().describe('Memory ID') })
.meta({ id: 'SyncMemoryDeleteV1' });
const SyncMemoryAssetV1Schema = z
.object({
memoryId: z.string().describe('Memory ID'),
assetId: z.string().describe('Asset ID'),
memoryId: z.uuidv4().describe('Memory ID'),
assetId: z.uuidv4().describe('Asset ID'),
})
.meta({ id: 'SyncMemoryAssetV1' });
const SyncMemoryAssetDeleteV1Schema = z
.object({
memoryId: z.string().describe('Memory ID'),
assetId: z.string().describe('Asset ID'),
memoryId: z.uuidv4().describe('Memory ID'),
assetId: z.uuidv4().describe('Asset ID'),
})
.meta({ id: 'SyncMemoryAssetDeleteV1' });
const SyncStackV1Schema = z
.object({
id: z.string().describe('Stack ID'),
id: z.uuidv4().describe('Stack ID'),
createdAt: isoDatetimeToDate.describe('Created at'),
updatedAt: isoDatetimeToDate.describe('Updated at'),
primaryAssetId: z.string().describe('Primary asset ID'),
ownerId: z.string().describe('Owner ID'),
primaryAssetId: z.uuidv4().describe('Primary asset ID'),
ownerId: z.uuidv4().describe('Owner ID'),
})
.meta({ id: 'SyncStackV1' });
const SyncStackDeleteV1Schema = z
.object({ stackId: z.string().describe('Stack ID') })
.object({ stackId: z.uuidv4().describe('Stack ID') })
.meta({ id: 'SyncStackDeleteV1' });
const SyncPersonV1Schema = z
.object({
id: z.string().describe('Person ID'),
id: z.uuidv4().describe('Person ID'),
createdAt: isoDatetimeToDate.describe('Created at'),
updatedAt: isoDatetimeToDate.describe('Updated at'),
ownerId: z.string().describe('Owner ID'),
ownerId: z.uuidv4().describe('Owner ID'),
name: z.string().describe('Person name'),
birthDate: isoDatetimeToDate.nullable().describe('Birth date'),
isHidden: z.boolean().describe('Is hidden'),
@ -347,13 +347,13 @@ const SyncPersonV1Schema = z
.meta({ id: 'SyncPersonV1' });
const SyncPersonDeleteV1Schema = z
.object({ personId: z.string().describe('Person ID') })
.object({ personId: z.uuidv4().describe('Person ID') })
.meta({ id: 'SyncPersonDeleteV1' });
const SyncAssetFaceV1Schema = z
.object({
id: z.string().describe('Asset face ID'),
assetId: z.string().describe('Asset ID'),
id: z.uuidv4().describe('Asset face ID'),
assetId: z.uuidv4().describe('Asset ID'),
personId: z.string().nullable().describe('Person ID'),
imageWidth: z.int().describe('Image width'),
imageHeight: z.int().describe('Image height'),
@ -371,12 +371,12 @@ const SyncAssetFaceV2Schema = SyncAssetFaceV1Schema.extend({
}).meta({ id: 'SyncAssetFaceV2' });
const SyncAssetFaceDeleteV1Schema = z
.object({ assetFaceId: z.string().describe('Asset face ID') })
.object({ assetFaceId: z.uuidv4().describe('Asset face ID') })
.meta({ id: 'SyncAssetFaceDeleteV1' });
const SyncUserMetadataV1Schema = z
.object({
userId: z.string().describe('User ID'),
userId: z.uuidv4().describe('User ID'),
key: UserMetadataKeySchema,
value: z.record(z.string(), z.unknown()).describe('User metadata value'),
})
@ -384,7 +384,7 @@ const SyncUserMetadataV1Schema = z
const SyncUserMetadataDeleteV1Schema = z
.object({
userId: z.string().describe('User ID'),
userId: z.uuidv4().describe('User ID'),
key: UserMetadataKeySchema,
})
.meta({ id: 'SyncUserMetadataDeleteV1' });
@ -404,8 +404,8 @@ class SyncMemoryAssetDeleteV1 extends createZodDto(SyncMemoryAssetDeleteV1Schema
const SyncAssetOcrV1Schema = z
.object({
id: z.string().describe('OCR entry ID'),
assetId: z.string().describe('Asset ID'),
id: z.uuidv4().describe('OCR entry ID'),
assetId: z.uuidv4().describe('Asset ID'),
x1: z.number().meta({ format: 'double' }).describe('Top-left X coordinate (normalized 01)'),
y1: z.number().meta({ format: 'double' }).describe('Top-left Y coordinate (normalized 01)'),

View file

@ -40,7 +40,7 @@ const TagBulkAssetsResponseSchema = z
export const TagResponseSchema = z
.object({
id: z.string().describe('Tag ID'),
id: z.uuidv4().describe('Tag ID'),
parentId: z.string().optional().describe('Parent tag ID'),
name: z.string().describe('Tag name'),
value: z.string().describe('Tag value (full path)'),

View file

@ -11,7 +11,7 @@ export class CreateProfileImageDto {
const CreateProfileImageResponseSchema = z
.object({
userId: z.string().describe('User ID'),
userId: z.uuidv4().describe('User ID'),
profileChangedAt: isoDatetimeToDate.describe('Profile image change date'),
profileImagePath: z.string().describe('Profile image file path'),
})

View file

@ -58,7 +58,7 @@ const WorkflowUpdateSchema = z
const WorkflowResponseSchema = z
.object({
id: z.string().describe('Workflow ID'),
id: z.uuidv4().describe('Workflow ID'),
trigger: WorkflowTriggerSchema.describe('Workflow trigger type'),
name: z.string().nullable().describe('Workflow name'),
description: z.string().nullable().describe('Workflow description'),