Files
customer-im-client-dev/apps/im_app/lib/app/di/db_provider.dart
Happi (哈比) 113ecb633a 更新数据库
2026-03-06 16:54:51 +08:00

32 lines
1.0 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:storage_sdk/storage_sdk.dart';
import '../../data/local/drift/app_database.dart';
/// 全局单例 StorageSdkApi整个 App 生命周期内唯一实例。
///
/// storage_sdk 负责数据库连接生命周期和 CRUD 机制;
/// im_app 负责 schemaAppDatabase + 各业务表)。
///
/// 用法:
/// ```dart
/// // 登录后开库
/// await ref.read(storageSdkLifecycleProvider).openDatabase(user.id);
///
/// // CRUD 示例
/// final db = ref.read(storageSdkProvider);
/// await db.insertOrReplace<UsersCompanion>(companion);
/// final users = await db.selectAll<User>();
/// ```
final storageSdkProvider = Provider<StorageSdkApi>((ref) {
return StorageSdkApi(
databaseFactory: (executor) => AppDatabase(executor),
tableRegistry: (db) => AppDatabase.getTableRegistry(db),
);
});
/// 生命周期管理,仅供登录/登出使用。
final storageSdkLifecycleProvider = Provider<StorageSdkLifecycle>((ref) {
return ref.read(storageSdkProvider) as StorageSdkLifecycle;
});