feat: implement new structure

This commit is contained in:
2025-12-29 09:30:49 +08:00
parent 503b15aab7
commit ad52371028
116 changed files with 17579 additions and 1213 deletions

View File

@@ -28,17 +28,17 @@ func newMediaAsset(db *gorm.DB, opts ...gen.DOOption) mediaAssetQuery {
_mediaAssetQuery.ID = field.NewInt64(tableName, "id")
_mediaAssetQuery.TenantID = field.NewInt64(tableName, "tenant_id")
_mediaAssetQuery.UserID = field.NewInt64(tableName, "user_id")
_mediaAssetQuery.Type = field.NewField(tableName, "type")
_mediaAssetQuery.Status = field.NewField(tableName, "status")
_mediaAssetQuery.Type = field.NewString(tableName, "type")
_mediaAssetQuery.Status = field.NewString(tableName, "status")
_mediaAssetQuery.Provider = field.NewString(tableName, "provider")
_mediaAssetQuery.Bucket = field.NewString(tableName, "bucket")
_mediaAssetQuery.ObjectKey = field.NewString(tableName, "object_key")
_mediaAssetQuery.Meta = field.NewJSONB(tableName, "meta")
_mediaAssetQuery.DeletedAt = field.NewField(tableName, "deleted_at")
_mediaAssetQuery.Variant = field.NewString(tableName, "variant")
_mediaAssetQuery.SourceAssetID = field.NewInt64(tableName, "source_asset_id")
_mediaAssetQuery.CreatedAt = field.NewTime(tableName, "created_at")
_mediaAssetQuery.UpdatedAt = field.NewTime(tableName, "updated_at")
_mediaAssetQuery.Variant = field.NewField(tableName, "variant")
_mediaAssetQuery.SourceAssetID = field.NewInt64(tableName, "source_asset_id")
_mediaAssetQuery.DeletedAt = field.NewField(tableName, "deleted_at")
_mediaAssetQuery.fillFieldMap()
@@ -49,20 +49,20 @@ type mediaAssetQuery struct {
mediaAssetQueryDo mediaAssetQueryDo
ALL field.Asterisk
ID field.Int64 // 主键ID自增仅用于内部关联
TenantID field.Int64 // 租户ID多租户隔离关键字段所有查询/写入必须限定 tenant_id
UserID field.Int64 // 用户ID资源上传者用于审计与权限控制
Type field.Field // 资源类型video/audio/image决定后续处理流程转码/缩略图/封面等)
Status field.Field // 处理状态uploaded/processing/ready/failed/deletedready 才可被内容引用对外提供
Provider field.String // 存储提供方:例如 s3/minio/oss便于多存储扩展
Bucket field.String // 存储桶:对象所在 bucket与 provider 组合确定存储定位
ObjectKey field.String // 对象键:对象在 bucket 内的 key不得暴露可长期复用的直链通过签名URL/token下发
Meta field.JSONB // 元数据JSON包含 hash、duration、width、height、bitrate、codec 等;用于展示与计费/风控
DeletedAt field.Field // 软删除时间:非空表示已删除;对外接口需过滤
CreatedAt field.Time // 创建时间:默认 now();用于审计与排序
UpdatedAt field.Time // 更新时间:默认 now();更新状态/元数据时写入
Variant field.Field // 产物类型main/preview用于强制试看资源必须绑定独立产物避免用正片绕过
SourceAssetID field.Int64 // 派生来源资源IDpreview 产物可指向对应 main 资源;用于建立 preview/main 的 1:1 追溯关系
ID field.Int64
TenantID field.Int64
UserID field.Int64
Type field.String
Status field.String
Provider field.String
Bucket field.String
ObjectKey field.String
Meta field.JSONB
Variant field.String
SourceAssetID field.Int64
CreatedAt field.Time
UpdatedAt field.Time
DeletedAt field.Field
fieldMap map[string]field.Expr
}
@@ -82,17 +82,17 @@ func (m *mediaAssetQuery) updateTableName(table string) *mediaAssetQuery {
m.ID = field.NewInt64(table, "id")
m.TenantID = field.NewInt64(table, "tenant_id")
m.UserID = field.NewInt64(table, "user_id")
m.Type = field.NewField(table, "type")
m.Status = field.NewField(table, "status")
m.Type = field.NewString(table, "type")
m.Status = field.NewString(table, "status")
m.Provider = field.NewString(table, "provider")
m.Bucket = field.NewString(table, "bucket")
m.ObjectKey = field.NewString(table, "object_key")
m.Meta = field.NewJSONB(table, "meta")
m.DeletedAt = field.NewField(table, "deleted_at")
m.Variant = field.NewString(table, "variant")
m.SourceAssetID = field.NewInt64(table, "source_asset_id")
m.CreatedAt = field.NewTime(table, "created_at")
m.UpdatedAt = field.NewTime(table, "updated_at")
m.Variant = field.NewField(table, "variant")
m.SourceAssetID = field.NewInt64(table, "source_asset_id")
m.DeletedAt = field.NewField(table, "deleted_at")
m.fillFieldMap()
@@ -135,11 +135,11 @@ func (m *mediaAssetQuery) fillFieldMap() {
m.fieldMap["bucket"] = m.Bucket
m.fieldMap["object_key"] = m.ObjectKey
m.fieldMap["meta"] = m.Meta
m.fieldMap["deleted_at"] = m.DeletedAt
m.fieldMap["created_at"] = m.CreatedAt
m.fieldMap["updated_at"] = m.UpdatedAt
m.fieldMap["variant"] = m.Variant
m.fieldMap["source_asset_id"] = m.SourceAssetID
m.fieldMap["created_at"] = m.CreatedAt
m.fieldMap["updated_at"] = m.UpdatedAt
m.fieldMap["deleted_at"] = m.DeletedAt
}
func (m mediaAssetQuery) clone(db *gorm.DB) mediaAssetQuery {