import type { DatabaseAdapter } from './database-adapter';

class AdapterRegistry {
	private _adapter: DatabaseAdapter | null = null;

	// 注册数据库适配器
	setDatabaseAdapter(adapter: DatabaseAdapter): void {
		this._adapter = adapter;
	}

	// 获取数据库适配器
	getDatabaseAdapter(): DatabaseAdapter {
		if (!this._adapter) {
			throw new Error('数据库适配器未注册。请在使用存储功能前调用 setDatabaseAdapter() 注册适配器。');
		}
		return this._adapter;
	}

	// 检查是否已注册适配器
	hasAdapter(): boolean {
		return this._adapter !== null;
	}
}

// 导出单例实例
export const adapterRegistry = new AdapterRegistry();
