package dto // PluginConfigRequest 更新插件配置请求 // @Description 更新客户端插件配置 type PluginConfigRequest struct { Config map[string]string `json:"config" binding:"required"` } // PluginConfigResponse 插件配置响应 // @Description 插件配置详情 type PluginConfigResponse struct { PluginName string `json:"plugin_name"` Schema []ConfigField `json:"schema"` Config map[string]string `json:"config"` } // ConfigField 配置字段定义 // @Description 配置表单字段 type ConfigField struct { Key string `json:"key"` Label string `json:"label"` Type string `json:"type"` Default string `json:"default,omitempty"` Required bool `json:"required,omitempty"` Options []string `json:"options,omitempty"` Description string `json:"description,omitempty"` } // RuleSchema 规则表单模式 // @Description 代理规则的配置模式 type RuleSchema struct { NeedsLocalAddr bool `json:"needs_local_addr"` ExtraFields []ConfigField `json:"extra_fields,omitempty"` } // PluginInfo 插件信息 // @Description 服务端插件信息 type PluginInfo struct { Name string `json:"name"` Version string `json:"version"` Type string `json:"type"` Description string `json:"description"` Source string `json:"source"` Icon string `json:"icon,omitempty"` Enabled bool `json:"enabled"` RuleSchema *RuleSchema `json:"rule_schema,omitempty"` } // JSPluginCreateRequest 创建 JS 插件请求 // @Description 创建新的 JS 插件 type JSPluginCreateRequest struct { Name string `json:"name" binding:"required,min=1,max=64"` Source string `json:"source" binding:"required"` Signature string `json:"signature"` Description string `json:"description" binding:"max=500"` Author string `json:"author" binding:"max=64"` Config map[string]string `json:"config"` AutoStart bool `json:"auto_start"` } // JSPluginUpdateRequest 更新 JS 插件请求 // @Description 更新 JS 插件 type JSPluginUpdateRequest struct { Source string `json:"source"` Signature string `json:"signature"` Description string `json:"description" binding:"max=500"` Author string `json:"author" binding:"max=64"` Config map[string]string `json:"config"` AutoStart bool `json:"auto_start"` Enabled bool `json:"enabled"` } // JSPluginInstallRequest JS 插件安装请求 // @Description 安装 JS 插件到客户端 type JSPluginInstallRequest struct { PluginName string `json:"plugin_name" binding:"required"` Source string `json:"source" binding:"required"` Signature string `json:"signature"` RuleName string `json:"rule_name"` RemotePort int `json:"remote_port"` Config map[string]string `json:"config"` AutoStart bool `json:"auto_start"` } // StorePluginInfo 扩展商店插件信息 // @Description 插件商店中的插件信息 type StorePluginInfo struct { Name string `json:"name"` Version string `json:"version"` Type string `json:"type"` Description string `json:"description"` Author string `json:"author"` Icon string `json:"icon,omitempty"` DownloadURL string `json:"download_url,omitempty"` SignatureURL string `json:"signature_url,omitempty"` ConfigSchema []ConfigField `json:"config_schema,omitempty"` } // StoreInstallRequest 从商店安装插件请求 // @Description 从插件商店安装插件到客户端 type StoreInstallRequest struct { PluginName string `json:"plugin_name" binding:"required"` Version string `json:"version"` DownloadURL string `json:"download_url" binding:"required,url"` SignatureURL string `json:"signature_url" binding:"required,url"` ClientID string `json:"client_id" binding:"required"` RemotePort int `json:"remote_port"` ConfigSchema []ConfigField `json:"config_schema,omitempty"` // HTTP Basic Auth 配置 AuthEnabled bool `json:"auth_enabled,omitempty"` AuthUsername string `json:"auth_username,omitempty"` AuthPassword string `json:"auth_password,omitempty"` } // JSPluginPushRequest 推送 JS 插件到客户端请求 // @Description 推送 JS 插件到指定客户端 type JSPluginPushRequest struct { RemotePort int `json:"remote_port"` }