import 'package:drift/drift.dart' as drift; import 'package:mnemo_cards_backend/database/database.dart'; import 'package:mnemo_cards_backend/packs/card_pack_drift_extension.dart'; import 'package:mnemo_cards_common_backend/mnemo_cards_common_backend.dart'; /// Extension для конвертации User (Drift) в UserModel extension UserToUserModel on User { Future toUserModel([List? packs]) async { final packModels = packs != null ? await Future.wait(packs.map((p) => p.toModel())) : []; final userModel = UserModel( id: id, name: name, email: email, telegram: telegram, admin: admin, purchases: purchases, userSettings: userSettings, packs: packModels, ); return userModel; } } /// Extension для конвертации UserModel в User (Drift) extension UserModelToUser on UserModel { UsersCompanion toUsersCompanion() { return UsersCompanion( id: id != null ? drift.Value(id!) : const drift.Value.absent(), externalUserId: const drift.Value.absent(), name: drift.Value(name), email: drift.Value(email), telegram: drift.Value(telegram), admin: drift.Value(admin), purchases: drift.Value(purchases), userSettings: drift.Value(userSettings), ); } }