import 'package:fcm/model/firebase_subscription.dart'; import 'package:jmap_dart_client/http/converter/id_converter.dart'; import 'package:jmap_dart_client/jmap/core/error/set_error.dart'; import 'package:jmap_dart_client/jmap/core/id.dart'; import 'package:jmap_dart_client/jmap/core/method/response/set_response.dart'; class FirebaseSubscriptionSetResponse extends SetResponseNoAccount { FirebaseSubscriptionSetResponse({ Map? created, Map? updated, Set? destroyed, Map? notCreated, Map? notUpdated, Map? notDestroyed }) : super( created: created, updated: updated, destroyed: destroyed, notCreated: notCreated, notUpdated: notUpdated, notDestroyed: notDestroyed ); static FirebaseSubscriptionSetResponse deserialize(Map json) { return FirebaseSubscriptionSetResponse( created: (json['created'] as Map?)?.map((key, value) => MapEntry( const IdConverter().fromJson(key), FirebaseSubscription.fromJson(value as Map) )), updated: (json['updated'] as Map?)?.map((key, value) => MapEntry( const IdConverter().fromJson(key), value != null ? FirebaseSubscription.fromJson(value as Map) : null )), destroyed: (json['destroyed'] as List?)?.map((id) => const IdConverter().fromJson(id)).toSet(), notCreated: (json['notCreated'] as Map?)?.map((key, value) => MapEntry( const IdConverter().fromJson(key), SetError.fromJson(value) )), notUpdated: (json['notUpdated'] as Map?)?.map((key, value) => MapEntry( const IdConverter().fromJson(key), SetError.fromJson(value) )), notDestroyed: (json['notDestroyed'] as Map?)?.map((key, value) => MapEntry( const IdConverter().fromJson(key), SetError.fromJson(value) )), ); } @override List get props => [ created, updated, destroyed, notCreated, notUpdated, notDestroyed ]; }