fix(asset-library): 素材库 - 支持自定义分类、分页、完整预览和批量上传

This commit is contained in:
ddCat
2026-09-02 21:55:24 +08:00
parent 2ee97d45bc
commit d13ab83c4e
18 changed files with 1087 additions and 37 deletions

View File

@@ -75,6 +75,7 @@ type AnnouncementImageDraft struct {
type Asset struct {
ID string `json:"id" gorm:"primaryKey;size:80"`
UserID string `json:"userId" gorm:"index;size:36;index:idx_assets_user_updated,priority:1"`
FolderID string `json:"folderId,omitempty" gorm:"index;size:36"`
Kind string `json:"kind" gorm:"index;size:24"`
Category AssetCategory `json:"category" gorm:"index;size:32"`
Status AssetVersionStatus `json:"status" gorm:"index;size:24"`
@@ -85,6 +86,17 @@ type Asset struct {
UpdatedAt time.Time `json:"updatedAt" gorm:"index:idx_assets_user_updated,priority:2"`
}
// AssetFolder 是用户素材库的一层自定义分类;业务分类仍由 Asset.Category 表达。
type AssetFolder struct {
ID string `json:"id" gorm:"primaryKey;size:36"`
UserID string `json:"userId" gorm:"index;size:36;uniqueIndex:idx_asset_folders_user_name,priority:1"`
Name string `json:"name" gorm:"size:80"`
NameKey string `json:"-" gorm:"size:80;uniqueIndex:idx_asset_folders_user_name,priority:2"`
Position int `json:"position" gorm:"index"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
type ProjectAssetLink struct {
ID string `json:"id" gorm:"primaryKey;size:36"`
ProjectID string `json:"projectId" gorm:"index;size:36;uniqueIndex:idx_project_asset_links_unique,priority:1;index:idx_project_asset_links_project_folder_position,priority:1"`