interface.go 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package storage
  2. import (
  3. "dbview/service/internal/common/manager/storage/types"
  4. )
  5. // StorageInterface 定义存储接口
  6. type StorageInterface interface {
  7. // 连接管理
  8. // CreateConnection 新增第一个参数 kind,表示连接类别:"database" | "server" | "other"。
  9. // type 表示具体子类型(例如 mysql/postgres 或 ssh),version 表示版本号或次级信息。
  10. CreateConnection(groupID, name, description, kind, typ, version, server string, port int, username, password, database, connectionString string, useSSHTunnel bool, color string, autoConnect bool, displayOrder int) (*types.ConnectionWithDetails, error)
  11. GetConnection(connID string) (*types.ConnectionWithDetails, error)
  12. UpdateConnection(connID string, req *types.UpdateConnectionRequest) (*types.ConnectionWithDetails, error)
  13. DeleteConnection(connID string) error
  14. MoveConnection(connID, targetGroupID string) (*types.ConnectionWithDetails, error)
  15. GetAllConnections() ([]types.ConnectionWithDetails, error)
  16. // 连接分组管理
  17. CreateConnectionGroup(parentID, name, description, icon string, displayOrder int) (*types.ConnectionGroup, error)
  18. GetConnectionGroup(groupID string, loadConnections bool, recursive bool) (*types.ConnectionGroup, error)
  19. UpdateConnectionGroup(groupID, name, description, icon string, displayOrder int) (*types.ConnectionGroup, error)
  20. DeleteConnectionGroup(groupID string, cascadeDeleteChildren, cascadeDeleteConnections bool) error
  21. MoveConnectionGroup(groupID, newParentID string) error
  22. GetRootConnectionGroup(loadConnections bool, recursive bool) (*types.ConnectionGroup, error)
  23. GetConnectionGroupTree(loadConnections bool) (*types.ConnectionGroup, error)
  24. // Script 管理(通用脚本)
  25. CreateScript(connectionID, groupID, name, description, content string, favorite bool) (*types.Script, error)
  26. GetScript(scriptID string) (*types.Script, error)
  27. UpdateScript(scriptID, name, description, content string, favorite bool) (*types.Script, error)
  28. DeleteScript(scriptID string) error
  29. UpdateScriptExecutionStats(scriptID string) error
  30. ListScripts(connID string) ([]types.Script, error)
  31. // 脚本分组管理
  32. CreateScriptGroup(parentID, name, description string) (*types.ScriptGroup, error)
  33. GetScriptGroup(groupID string, loadScripts bool, recursive bool) (*types.ScriptGroup, error)
  34. UpdateScriptGroup(groupID, name, description string) (*types.ScriptGroup, error)
  35. DeleteScriptGroup(groupID string, cascadeDeleteChildren, cascadeDeleteScripts bool) error
  36. MoveScriptGroup(groupID, newParentID string) error
  37. GetRootScriptGroup(loadScripts bool, recursive bool) (*types.ScriptGroup, error)
  38. GetScriptGroupTree(loadScripts bool) (*types.ScriptGroup, error)
  39. // 配置管理
  40. CreateDefaultConfig() error
  41. }
  42. // 类型别名,保持向后兼容
  43. type ConnectionGroup = types.ConnectionGroup
  44. type Script = types.Script
  45. type ScriptGroup = types.ScriptGroup