mnemo_cards/mnemo_cards_backend/lib/user/user_model.dart
2025-11-16 14:25:27 +03:00

22 lines
800 B
Dart

import 'package:mnemo_cards_common_backend/mnemo_cards_common_backend.dart';
import 'package:mnemo_cards_backend/user/user_data_model.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
extension UserModelExtension on UserModel {
Future<UserDto> toDto() async {
await userData.load();
await subscriptionModel.load();
final subscription = subscriptionModel.value;
final activeSubscription = subscription != null && subscription.isActive;
return UserDto(
id: id,
name: name,
email: email,
admin: admin,
packs: packs.map((e) => e.id?.toString()).whereNotNull().toList(),
subscription: activeSubscription,
subscriptionFeatures: subscription?.features.toSet() ?? {},
userDataDto: userData.value?.toDto(),
);
}
}