Files
ttstd-infinite-canvas/backend/internal/model/models_workbench.go

47 lines
2.5 KiB
Go

package model
import "time"
const (
WorkbenchKindImage = "image"
WorkbenchKindVideo = "video"
)
// WorkbenchTool is an administrator-managed public generation entry.
type WorkbenchTool struct {
ID string `json:"id" gorm:"primaryKey;size:36"`
Kind string `json:"kind" gorm:"size:16;index:idx_workbench_tools_kind_enabled_sort,priority:1"`
CategoryID string `json:"categoryId" gorm:"size:64;index"`
Name string `json:"name" gorm:"size:120;not null"`
Subtitle string `json:"subtitle" gorm:"size:240"`
Description string `json:"description" gorm:"type:text"`
IconResourceID string `json:"iconResourceId" gorm:"size:36"`
CoverResourceID string `json:"coverResourceId" gorm:"size:36"`
SortOrder int `json:"sortOrder" gorm:"not null;default:0;index:idx_workbench_tools_kind_enabled_sort,priority:3"`
CapabilityJSON string `json:"capabilityJson" gorm:"type:text"`
GuideJSON string `json:"guideJson" gorm:"type:text"`
Enabled bool `json:"enabled" gorm:"index:idx_workbench_tools_kind_enabled_sort,priority:2"`
Version int `json:"version" gorm:"not null;default:1"`
CreatedBy string `json:"createdBy" gorm:"size:36;index"`
UpdatedBy string `json:"updatedBy" gorm:"size:36;index"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}
// WorkbenchPreset is a versioned prompt/configuration preset owned by a tool.
type WorkbenchPreset struct {
ID string `json:"id" gorm:"primaryKey;size:36"`
ToolID string `json:"toolId" gorm:"size:36;index:idx_workbench_presets_tool_enabled_sort,priority:1"`
Name string `json:"name" gorm:"size:120;not null"`
Summary string `json:"summary" gorm:"size:500"`
PromptTemplate string `json:"promptTemplate" gorm:"type:text"`
DefaultParamsJSON string `json:"defaultParameters" gorm:"type:text"`
SortOrder int `json:"sortOrder" gorm:"not null;default:0;index:idx_workbench_presets_tool_enabled_sort,priority:3"`
Enabled bool `json:"enabled" gorm:"index:idx_workbench_presets_tool_enabled_sort,priority:2"`
Version int `json:"version" gorm:"not null;default:1"`
CreatedBy string `json:"createdBy" gorm:"size:36;index"`
UpdatedBy string `json:"updatedBy" gorm:"size:36;index"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
}