package request import ( common "git.echol.cn/loser/st/server/model/common/request" ) // CreateExtensionRequest 创建/安装扩展请求 type CreateExtensionRequest struct { Name string `json:"name" binding:"required,min=1,max=500"` DisplayName string `json:"displayName"` Version string `json:"version"` Author string `json:"author"` Description string `json:"description"` Homepage string `json:"homepage"` Repository string `json:"repository"` License string `json:"license"` Tags []string `json:"tags"` ExtensionType string `json:"extensionType" binding:"required,oneof=ui server hybrid"` Category string `json:"category"` Dependencies map[string]string `json:"dependencies"` Conflicts []string `json:"conflicts"` ManifestData map[string]interface{} `json:"manifestData" binding:"required"` ScriptPath string `json:"scriptPath"` StylePath string `json:"stylePath"` AssetsPaths []string `json:"assetsPaths"` Settings map[string]interface{} `json:"settings"` Options map[string]interface{} `json:"options"` InstallSource string `json:"installSource"` SourceURL string `json:"sourceUrl"` // 原始安装 URL(用于更新) Branch string `json:"branch"` // Git 分支 AutoUpdate bool `json:"autoUpdate"` // 是否自动更新 Metadata map[string]interface{} `json:"metadata"` } // ExtensionListRequest 扩展列表查询请求 type ExtensionListRequest struct { common.PageInfo Name string `json:"name" form:"name"` // 扩展名称(模糊搜索) ExtensionType string `json:"extensionType" form:"extensionType"` // 扩展类型 Category string `json:"category" form:"category"` // 分类 IsEnabled *bool `json:"isEnabled" form:"isEnabled"` // 是否启用 IsInstalled *bool `json:"isInstalled" form:"isInstalled"` // 是否已安装 Tag string `json:"tag" form:"tag"` // 标签过滤 } // InstallExtensionRequest 安装扩展请求 type InstallExtensionRequest struct { Source string `json:"source" binding:"required,oneof=url file marketplace"` // 安装来源 URL string `json:"url"` // URL 安装 ManifestData []byte `json:"manifestData"` // 文件安装 MarketplaceID string `json:"marketplaceId"` // 市场安装 } // UninstallExtensionRequest 卸载扩展请求 type UninstallExtensionRequest struct { DeleteFiles bool `json:"deleteFiles"` // 是否删除文件 } // ToggleExtensionRequest 启用/禁用扩展请求 type ToggleExtensionRequest struct { IsEnabled *bool `json:"isEnabled"` // 使用指针类型,允许 false 值 } // UpdateExtensionSettingsRequest 更新扩展配置请求 type UpdateExtensionSettingsRequest struct { Settings map[string]interface{} `json:"settings" binding:"required"` } // ImportExtensionRequest 导入扩展请求 type ImportExtensionRequest struct { Format string `json:"format" binding:"required,oneof=zip folder"` } // ExportExtensionRequest 导出扩展请求 type ExportExtensionRequest struct { Format string `json:"format" binding:"required,oneof=zip folder"` IncludeAssets bool `json:"includeAssets"` // 是否包含资源文件 } // ExtensionStatsRequest 扩展统计请求 type ExtensionStatsRequest struct { ExtensionID uint `json:"extensionId" binding:"required"` Action string `json:"action" binding:"required,oneof=usage error load"` // 统计类型 Value int `json:"value"` } // InstallExtensionFromGitRequest 从 Git URL 安装扩展请求 type InstallExtensionFromGitRequest struct { GitUrl string `json:"gitUrl" binding:"required"` // Git 仓库 URL Branch string `json:"branch" binding:"omitempty,max=100"` // 分支名称(可选,默认 main) } // InstallExtensionFromURLRequest 从 URL 安装扩展请求(智能识别 Git URL 或 Manifest URL) type InstallExtensionFromURLRequest struct { URL string `json:"url" binding:"required"` // Git 仓库 URL 或 Manifest.json URL Branch string `json:"branch"` // Git 分支名称(可选,默认 main) } // UpdateExtensionRequest 更新扩展请求 type UpdateExtensionRequest struct { Force bool `json:"force"` // 是否强制更新(忽略本地修改) DisplayName string `json:"displayName"` Description string `json:"description"` Settings map[string]interface{} `json:"settings"` Options map[string]interface{} `json:"options"` Metadata map[string]interface{} `json:"metadata"` }