diff --git a/lib/features/push_notification/data/datasource/fcm_datasource.dart b/lib/features/push_notification/data/datasource/fcm_datasource.dart index c5e8711a7..92b3f0e50 100644 --- a/lib/features/push_notification/data/datasource/fcm_datasource.dart +++ b/lib/features/push_notification/data/datasource/fcm_datasource.dart @@ -3,6 +3,7 @@ import 'package:fcm/model/firebase_subscription.dart'; import 'package:fcm/model/type_name.dart'; import 'package:model/fcm/fcm_token_dto.dart'; import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; +import 'package:tmail_ui_user/features/push_notification/domain/model/register_new_token_request.dart'; abstract class FCMDatasource { Future getFCMToken(String accountId); @@ -20,4 +21,6 @@ abstract class FCMDatasource { Future storeDeviceId(String deviceId); Future getFirebaseSubscriptionByDeviceId(String deviceId); + + Future registerNewToken(RegisterNewTokenRequest newTokenRequest); } \ No newline at end of file diff --git a/lib/features/push_notification/domain/model/register_new_token_request.dart b/lib/features/push_notification/domain/model/register_new_token_request.dart new file mode 100644 index 000000000..ff79e02c5 --- /dev/null +++ b/lib/features/push_notification/domain/model/register_new_token_request.dart @@ -0,0 +1,18 @@ + +import 'package:equatable/equatable.dart'; +import 'package:fcm/model/firebase_subscription.dart'; +import 'package:jmap_dart_client/jmap/core/id.dart'; + +class RegisterNewTokenRequest with EquatableMixin { + + final Id createRequestId; + final FirebaseSubscription firebaseSubscription; + + RegisterNewTokenRequest(this.createRequestId, this.firebaseSubscription); + + @override + List get props => [ + createRequestId, + firebaseSubscription + ]; +} \ No newline at end of file diff --git a/lib/features/push_notification/domain/repository/fcm_repository.dart b/lib/features/push_notification/domain/repository/fcm_repository.dart index 9d45197b7..db6cea9d8 100644 --- a/lib/features/push_notification/domain/repository/fcm_repository.dart +++ b/lib/features/push_notification/domain/repository/fcm_repository.dart @@ -3,6 +3,7 @@ import 'package:fcm/model/type_name.dart'; import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/properties/properties.dart'; import 'package:model/fcm/fcm_token_dto.dart'; +import 'package:tmail_ui_user/features/push_notification/domain/model/register_new_token_request.dart'; import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart'; import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; @@ -31,4 +32,6 @@ abstract class FCMRepository { Future storeDeviceId(String deviceId); Future getFirebaseSubscriptionByDeviceId(String deviceId); + + Future registerNewToken(RegisterNewTokenRequest newTokenRequest); } \ No newline at end of file