22 lines
800 B
Dart
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(),
|
|
);
|
|
}
|
|
}
|