mnemo_cards/mnemo_cards_backend/lib/user/user_drift_extension.dart

40 lines
1.6 KiB
Dart
Raw Normal View History

2025-12-13 13:27:05 +00:00
import 'package:isar/isar.dart';
import 'package:drift/drift.dart' as drift;
import 'package:mnemo_cards_backend/database/database.dart';
import 'package:mnemo_cards_common_backend/mnemo_cards_common_backend.dart';
/// Extension для конвертации User (Drift) в UserModel (Isar)
extension UserToUserModel on User {
Future<UserModel> toUserModel() async {
// Создаем UserModel на основе User из Drift
final userModel = UserModel(
id: id,
name: name,
email: email,
admin: admin,
// purchases и userSettings нужно загружать отдельно из UserDatas
purchases: [], // TODO: load from UserDatas
userSettings: null, // TODO: load from UserDatas
);
// TODO: Загрузить связанные данные (userData, packs, subscription)
// Пока оставляем пустыми для совместимости
return userModel;
}
}
/// Extension для конвертации UserModel в User (Drift)
extension UserModelToUser on UserModel {
UsersCompanion toUsersCompanion() {
return UsersCompanion(
id: id != null ? drift.Value(id as int) : const drift.Value.absent(),
// Note: UserModel не имеет externalUserId, purchases, userSettings
// Эти поля нужно брать из других источников или генерировать
externalUserId: const drift.Value.absent(), // TODO: generate or get from context
name: drift.Value(name),
email: drift.Value(email),
admin: drift.Value(admin),
);
}
}