using System; using System.Collections.Generic; using System.Threading.Tasks; using TeamAAS.Database.Models; namespace TeamAAS.Database.Interfaces { /// /// 数据库管理器接口。 /// 负责多数据库实例的生命周期管理、配置持久化以及提供者发现。 /// public interface IDatabaseManager : IDisposable { /// /// 创建数据库实例 /// /// 唯一标识 /// 数据库配置 /// 是否创建成功 bool CreateDatabase(Guid id, DatabaseConfig config); /// /// 异步创建数据库实例 /// Task CreateDatabaseAsync(Guid id, DatabaseConfig config); /// /// 获取指定数据库实例 /// IDatabase GetDatabase(Guid id); /// /// 尝试获取数据库实例 /// bool TryGetDatabase(Guid id, out IDatabase database); /// /// 是否包含指定数据库 /// bool ContainsDatabase(Guid id); /// /// 获取所有数据库实例 /// IReadOnlyCollection GetAllDatabases(); /// /// 移除数据库实例 /// bool RemoveDatabase(Guid id); /// /// 异步移除数据库实例 /// Task RemoveDatabaseAsync(Guid id); /// /// 移除所有数据库 /// void RemoveAllDatabases(); /// /// 初始化所有数据库(根据配置创建实例) /// /// 数据库配置数组 /// 是否成功 (bool IsSucceed, string Message) InitializeAllDatabases(DatabaseConfig[] configs); /// /// 异步初始化 /// Task<(bool IsSucceed, string Message)> InitializeAllDatabasesAsync(DatabaseConfig[] configs); /// /// 获取所有数据库配置 /// IReadOnlyList GetAllDatabaseConfigs(); /// /// 保存配置到指定路径 /// bool SaveConfig(string path = null); /// /// 获取可用的数据库提供者列表(反射发现) /// List GetAvailableProviders(); } }