interface.go 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. // 类型别名:当前保留以减少迁移成本,但新代码应直接引用 `types` 包中的类型。
  43. // 未来会逐步移除这些别名以消除隐式依赖。
  44. type ConnectionGroup = types.ConnectionGroup
  45. type Script = types.Script
  46. type ScriptGroup = types.ScriptGroup