@@ -16,7 +16,7 @@ import 'package:flutter_news_app_api_server_full_source_code/src/services/countr
1616import 'package:flutter_news_app_api_server_full_source_code/src/services/dashboard_summary_service.dart' ;
1717import 'package:flutter_news_app_api_server_full_source_code/src/services/database_migration_service.dart' ;
1818import 'package:flutter_news_app_api_server_full_source_code/src/services/database_seeding_service.dart' ;
19- import 'package:flutter_news_app_api_server_full_source_code/src/services/default_user_preference_limit_service .dart' ;
19+ import 'package:flutter_news_app_api_server_full_source_code/src/services/default_user_action_limit_service .dart' ;
2020import 'package:flutter_news_app_api_server_full_source_code/src/services/firebase_authenticator.dart' ;
2121import 'package:flutter_news_app_api_server_full_source_code/src/services/firebase_push_notification_client.dart' ;
2222import 'package:flutter_news_app_api_server_full_source_code/src/services/jwt_auth_token_service.dart' ;
@@ -28,7 +28,7 @@ import 'package:flutter_news_app_api_server_full_source_code/src/services/push_n
2828import 'package:flutter_news_app_api_server_full_source_code/src/services/push_notification_service.dart' ;
2929import 'package:flutter_news_app_api_server_full_source_code/src/services/rate_limit_service.dart' ;
3030import 'package:flutter_news_app_api_server_full_source_code/src/services/token_blacklist_service.dart' ;
31- import 'package:flutter_news_app_api_server_full_source_code/src/services/user_preference_limit_service .dart' ;
31+ import 'package:flutter_news_app_api_server_full_source_code/src/services/user_action_limit_service .dart' ;
3232import 'package:flutter_news_app_api_server_full_source_code/src/services/verification_code_storage_service.dart' ;
3333import 'package:http_client/http_client.dart' ;
3434import 'package:logging/logging.dart' ;
@@ -73,6 +73,8 @@ class AppDependencies {
7373 late final DataRepository <RemoteConfig > remoteConfigRepository;
7474 late final DataRepository <InAppNotification > inAppNotificationRepository;
7575
76+ late final DataRepository <Engagement > engagementRepository;
77+ late final DataRepository <Report > reportRepository;
7678 late final EmailRepository emailRepository;
7779
7880 // Services
@@ -83,7 +85,7 @@ class AppDependencies {
8385 late final AuthService authService;
8486 late final DashboardSummaryService dashboardSummaryService;
8587 late final PermissionService permissionService;
86- late final UserPreferenceLimitService userPreferenceLimitService ;
88+ late final UserActionLimitService userActionLimitService ;
8789 late final RateLimitService rateLimitService;
8890 late final CountryQueryService countryQueryService;
8991 late final IPushNotificationService pushNotificationService;
@@ -231,6 +233,22 @@ class AppDependencies {
231233
232234 _log.info ('Initialized data client for InAppNotification.' );
233235
236+ final engagementClient = DataMongodb <Engagement >(
237+ connectionManager: _mongoDbConnectionManager,
238+ modelName: 'engagements' ,
239+ fromJson: Engagement .fromJson,
240+ toJson: (item) => item.toJson (),
241+ logger: Logger ('DataMongodb<Engagement>' ),
242+ );
243+
244+ final reportClient = DataMongodb <Report >(
245+ connectionManager: _mongoDbConnectionManager,
246+ modelName: 'reports' ,
247+ fromJson: Report .fromJson,
248+ toJson: (item) => item.toJson (),
249+ logger: Logger ('DataMongodb<Report>' ),
250+ );
251+
234252 // --- Conditionally Initialize Push Notification Clients ---
235253
236254 // Firebase
@@ -319,6 +337,9 @@ class AppDependencies {
319337 inAppNotificationRepository = DataRepository (
320338 dataClient: inAppNotificationClient,
321339 );
340+ engagementRepository = DataRepository (dataClient: engagementClient);
341+ reportRepository = DataRepository (dataClient: reportClient);
342+
322343 // Configure the HTTP client for SendGrid.
323344 // The HttpClient's AuthInterceptor will use the tokenProvider to add
324345 // the 'Authorization: Bearer <SENDGRID_API_KEY>' header.
@@ -368,9 +389,11 @@ class AppDependencies {
368389 topicRepository: topicRepository,
369390 sourceRepository: sourceRepository,
370391 );
371- userPreferenceLimitService = DefaultUserPreferenceLimitService (
392+ userActionLimitService = DefaultUserActionLimitService (
372393 remoteConfigRepository: remoteConfigRepository,
373- log: Logger ('DefaultUserPreferenceLimitService' ),
394+ engagementRepository: engagementRepository,
395+ reportRepository: reportRepository,
396+ log: Logger ('DefaultUserActionLimitService' ),
374397 );
375398 rateLimitService = MongoDbRateLimitService (
376399 connectionManager: _mongoDbConnectionManager,
0 commit comments