feat: 添加媒体资源管理相关API接口及数据结构,包括列表和详情查询

This commit is contained in:
2025-12-22 17:20:13 +08:00
parent 76f639b3f3
commit bcee0e06fe
8 changed files with 665 additions and 4 deletions

View File

@@ -939,6 +939,121 @@ const docTemplate = `{
}
}
},
"/t/{tenantCode}/v1/admin/media_assets": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Tenant"
],
"summary": "媒体资源列表(租户管理)",
"parameters": [
{
"type": "string",
"description": "Tenant Code",
"name": "tenantCode",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Asc specifies comma-separated field names to sort ascending by.",
"name": "asc",
"in": "query"
},
{
"type": "string",
"description": "CreatedAtFrom filters assets by created_at \u003e= this time; optional.",
"name": "created_at_from",
"in": "query"
},
{
"type": "string",
"description": "CreatedAtTo filters assets by created_at \u003c= this time; optional.",
"name": "created_at_to",
"in": "query"
},
{
"type": "string",
"description": "Desc specifies comma-separated field names to sort descending by.",
"name": "desc",
"in": "query"
},
{
"type": "integer",
"description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
"name": "page",
"in": "query"
},
{
"enum": [
"uploaded",
"processing",
"ready",
"failed",
"deleted"
],
"type": "string",
"x-enum-varnames": [
"MediaAssetStatusUploaded",
"MediaAssetStatusProcessing",
"MediaAssetStatusReady",
"MediaAssetStatusFailed",
"MediaAssetStatusDeleted"
],
"description": "Status filters by processing status (uploaded/processing/ready/failed/deleted); optional.",
"name": "status",
"in": "query"
},
{
"enum": [
"video",
"audio",
"image"
],
"type": "string",
"x-enum-varnames": [
"MediaAssetTypeVideo",
"MediaAssetTypeAudio",
"MediaAssetTypeImage"
],
"description": "Type filters by media type (video/audio/image); optional.",
"name": "type",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/requests.Pager"
},
{
"type": "object",
"properties": {
"items": {
"$ref": "#/definitions/models.MediaAsset"
}
}
}
]
}
}
}
}
},
"/t/{tenantCode}/v1/admin/media_assets/upload_init": {
"post": {
"consumes": [
@@ -979,6 +1094,45 @@ const docTemplate = `{
}
}
},
"/t/{tenantCode}/v1/admin/media_assets/{assetID}": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Tenant"
],
"summary": "媒体资源详情(租户管理)",
"parameters": [
{
"type": "string",
"description": "Tenant Code",
"name": "tenantCode",
"in": "path",
"required": true
},
{
"type": "integer",
"format": "int64",
"description": "AssetID",
"name": "assetID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.MediaAsset"
}
}
}
}
},
"/t/{tenantCode}/v1/admin/media_assets/{assetID}/upload_complete": {
"post": {
"consumes": [

View File

@@ -933,6 +933,121 @@
}
}
},
"/t/{tenantCode}/v1/admin/media_assets": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Tenant"
],
"summary": "媒体资源列表(租户管理)",
"parameters": [
{
"type": "string",
"description": "Tenant Code",
"name": "tenantCode",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Asc specifies comma-separated field names to sort ascending by.",
"name": "asc",
"in": "query"
},
{
"type": "string",
"description": "CreatedAtFrom filters assets by created_at \u003e= this time; optional.",
"name": "created_at_from",
"in": "query"
},
{
"type": "string",
"description": "CreatedAtTo filters assets by created_at \u003c= this time; optional.",
"name": "created_at_to",
"in": "query"
},
{
"type": "string",
"description": "Desc specifies comma-separated field names to sort descending by.",
"name": "desc",
"in": "query"
},
{
"type": "integer",
"description": "Limit is page size; only values in {10,20,50,100} are accepted (otherwise defaults to 10).",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Page is 1-based page index; values \u003c= 0 are normalized to 1.",
"name": "page",
"in": "query"
},
{
"enum": [
"uploaded",
"processing",
"ready",
"failed",
"deleted"
],
"type": "string",
"x-enum-varnames": [
"MediaAssetStatusUploaded",
"MediaAssetStatusProcessing",
"MediaAssetStatusReady",
"MediaAssetStatusFailed",
"MediaAssetStatusDeleted"
],
"description": "Status filters by processing status (uploaded/processing/ready/failed/deleted); optional.",
"name": "status",
"in": "query"
},
{
"enum": [
"video",
"audio",
"image"
],
"type": "string",
"x-enum-varnames": [
"MediaAssetTypeVideo",
"MediaAssetTypeAudio",
"MediaAssetTypeImage"
],
"description": "Type filters by media type (video/audio/image); optional.",
"name": "type",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/requests.Pager"
},
{
"type": "object",
"properties": {
"items": {
"$ref": "#/definitions/models.MediaAsset"
}
}
}
]
}
}
}
}
},
"/t/{tenantCode}/v1/admin/media_assets/upload_init": {
"post": {
"consumes": [
@@ -973,6 +1088,45 @@
}
}
},
"/t/{tenantCode}/v1/admin/media_assets/{assetID}": {
"get": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Tenant"
],
"summary": "媒体资源详情(租户管理)",
"parameters": [
{
"type": "string",
"description": "Tenant Code",
"name": "tenantCode",
"in": "path",
"required": true
},
{
"type": "integer",
"format": "int64",
"description": "AssetID",
"name": "assetID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/models.MediaAsset"
}
}
}
}
},
"/t/{tenantCode}/v1/admin/media_assets/{assetID}/upload_complete": {
"post": {
"consumes": [

View File

@@ -1921,6 +1921,112 @@ paths:
summary: 拒绝加入申请(租户管理)
tags:
- Tenant
/t/{tenantCode}/v1/admin/media_assets:
get:
consumes:
- application/json
parameters:
- description: Tenant Code
in: path
name: tenantCode
required: true
type: string
- description: Asc specifies comma-separated field names to sort ascending by.
in: query
name: asc
type: string
- description: CreatedAtFrom filters assets by created_at >= this time; optional.
in: query
name: created_at_from
type: string
- description: CreatedAtTo filters assets by created_at <= this time; optional.
in: query
name: created_at_to
type: string
- description: Desc specifies comma-separated field names to sort descending
by.
in: query
name: desc
type: string
- description: Limit is page size; only values in {10,20,50,100} are accepted
(otherwise defaults to 10).
in: query
name: limit
type: integer
- description: Page is 1-based page index; values <= 0 are normalized to 1.
in: query
name: page
type: integer
- description: Status filters by processing status (uploaded/processing/ready/failed/deleted);
optional.
enum:
- uploaded
- processing
- ready
- failed
- deleted
in: query
name: status
type: string
x-enum-varnames:
- MediaAssetStatusUploaded
- MediaAssetStatusProcessing
- MediaAssetStatusReady
- MediaAssetStatusFailed
- MediaAssetStatusDeleted
- description: Type filters by media type (video/audio/image); optional.
enum:
- video
- audio
- image
in: query
name: type
type: string
x-enum-varnames:
- MediaAssetTypeVideo
- MediaAssetTypeAudio
- MediaAssetTypeImage
produces:
- application/json
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/requests.Pager'
- properties:
items:
$ref: '#/definitions/models.MediaAsset'
type: object
summary: 媒体资源列表(租户管理)
tags:
- Tenant
/t/{tenantCode}/v1/admin/media_assets/{assetID}:
get:
consumes:
- application/json
parameters:
- description: Tenant Code
in: path
name: tenantCode
required: true
type: string
- description: AssetID
format: int64
in: path
name: assetID
required: true
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/models.MediaAsset'
summary: 媒体资源详情(租户管理)
tags:
- Tenant
/t/{tenantCode}/v1/admin/media_assets/{assetID}/upload_complete:
post:
consumes: