feat: Introduce MediaAssetVariant for better asset management
- Added MediaAssetVariant enum with values 'main' and 'preview'. - Updated media asset service logic to utilize MediaAssetVariant for variant handling. - Refactored database models and queries to include variant and source_asset_id fields. - Enhanced validation for asset variants in upload and processing functions. - Updated Swagger documentation to reflect new variant structure and descriptions. - Implemented necessary database migrations to support the new variant constraints.
This commit is contained in:
@@ -2787,6 +2787,17 @@
|
||||
"MediaAssetTypeImage"
|
||||
]
|
||||
},
|
||||
"consts.MediaAssetVariant": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"main",
|
||||
"preview"
|
||||
],
|
||||
"x-enum-varnames": [
|
||||
"MediaAssetVariantMain",
|
||||
"MediaAssetVariantPreview"
|
||||
]
|
||||
},
|
||||
"consts.OrderStatus": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
@@ -3050,7 +3061,11 @@
|
||||
},
|
||||
"variant": {
|
||||
"description": "Variant indicates whether this asset is a main or preview product.\nAllowed: main/preview; default is main.",
|
||||
"type": "string"
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/consts.MediaAssetVariant"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -4055,6 +4070,10 @@
|
||||
"description": "存储提供方:例如 s3/minio/oss;便于多存储扩展",
|
||||
"type": "string"
|
||||
},
|
||||
"source_asset_id": {
|
||||
"description": "派生来源资源ID:preview 产物可指向对应 main 资源;用于建立 preview/main 的 1:1 追溯关系",
|
||||
"type": "integer"
|
||||
},
|
||||
"status": {
|
||||
"description": "处理状态:uploaded/processing/ready/failed/deleted;ready 才可被内容引用对外提供",
|
||||
"allOf": [
|
||||
@@ -4082,6 +4101,14 @@
|
||||
"user_id": {
|
||||
"description": "用户ID:资源上传者;用于审计与权限控制",
|
||||
"type": "integer"
|
||||
},
|
||||
"variant": {
|
||||
"description": "产物类型:main/preview;用于强制试看资源必须绑定独立产物,避免用正片绕过",
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/consts.MediaAssetVariant"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user