@@ -21,32 +21,20 @@ class DemoDataInitializerService {
2121 DemoDataInitializerService ({
2222 required DataRepository <AppSettings > appSettingsRepository,
2323 required DataRepository <UserContentPreferences >
24- userContentPreferencesRepository,
25- required DataRepository <Engagement > engagementRepository,
26- required DataRepository <Report > reportRepository,
27- required DataRepository <AppReview > appReviewRepository,
24+ userContentPreferencesRepository,
2825 required DataRepository <InAppNotification > inAppNotificationRepository,
2926 required this .appSettingsFixturesData,
3027 required this .userContentPreferencesFixturesData,
3128 required this .inAppNotificationsFixturesData,
32- required this .engagementFixturesData,
33- required this .reportFixturesData,
34- required this .appReviewFixturesData,
3529 }) : _appSettingsRepository = appSettingsRepository,
3630 _userContentPreferencesRepository = userContentPreferencesRepository,
37- _engagementRepository = engagementRepository,
38- _reportRepository = reportRepository,
39- _appReviewRepository = appReviewRepository,
4031 _inAppNotificationRepository = inAppNotificationRepository,
4132 _logger = Logger ('DemoDataInitializerService' );
4233
4334 final DataRepository <AppSettings > _appSettingsRepository;
4435 final DataRepository <UserContentPreferences >
45- _userContentPreferencesRepository;
36+ _userContentPreferencesRepository;
4637 final DataRepository <InAppNotification > _inAppNotificationRepository;
47- final DataRepository <Engagement > _engagementRepository;
48- final DataRepository <Report > _reportRepository;
49- final DataRepository <AppReview > _appReviewRepository;
5038 final Logger _logger;
5139
5240 /// A list of [AppSettings] fixture data to be used as a template.
@@ -64,15 +52,6 @@ class DemoDataInitializerService {
6452 /// All items in this list will be cloned for new users.
6553 final List <InAppNotification > inAppNotificationsFixturesData;
6654
67- /// A list of [Engagement] fixture data to be used as a template.
68- final List <Engagement > engagementFixturesData;
69-
70- /// A list of [Report] fixture data to be used as a template.
71- final List <Report > reportFixturesData;
72-
73- /// A list of [AppReview] fixture data to be used as a template.
74- final List <AppReview > appReviewFixturesData;
75-
7655 /// Initializes essential user-specific data in the in-memory clients
7756 /// for the given [user] .
7857 ///
@@ -85,14 +64,10 @@ class DemoDataInitializerService {
8564 /// user in the demo environment.
8665 Future <void > initializeUserSpecificData (User user) async {
8766 _logger.info ('Initializing user-specific data for user ID: ${user .id }' );
88-
8967 await Future .wait ([
9068 _ensureAppSettingsExist (user.id),
9169 _ensureUserContentPreferencesExist (user.id),
9270 _ensureInAppNotificationsExist (user.id),
93- _ensureEngagementsExist (user.id),
94- _ensureReportsExist (user.id),
95- _ensureAppReviewsExist (user.id),
9671 ]);
9772
9873 _logger.info (
@@ -235,126 +210,4 @@ class DemoDataInitializerService {
235210 // is not a critical failure for the app's startup.
236211 }
237212 }
238-
239- /// Ensures that [Engagement] s exist for the given [userId] .
240- Future <void > _ensureEngagementsExist (String userId) async {
241- try {
242- final existing = await _engagementRepository.readAll (userId: userId);
243- if (existing.items.isNotEmpty) {
244- _logger.finer ('Engagements already exist for user ID: $userId .' );
245- return ;
246- }
247-
248- _logger.fine (
249- 'No Engagements found for user ID: $userId . Creating from fixture.' ,
250- );
251-
252- if (engagementFixturesData.isEmpty) {
253- _logger.warning ('engagementFixturesData is empty. No items to create.' );
254- return ;
255- }
256-
257- // Filter engagements to only those not belonging to the fixture user.
258- final engagementsToCreate = engagementFixturesData
259- .where ((e) => e.userId != 'fixture_user_id' )
260- .toList ();
261-
262- final userItems = engagementsToCreate.map (
263- (i) => i.copyWith (userId: userId),
264- );
265-
266- await Future .wait (
267- userItems.map (
268- (item) => _engagementRepository.create (item: item, userId: userId),
269- ),
270- );
271- _logger.fine (
272- '${userItems .length } Engagements from fixture created for user ID: $userId .' ,
273- );
274- } catch (e, s) {
275- _logger.severe (
276- 'Error ensuring Engagements exist for user ID: $userId : $e ' ,
277- e,
278- s,
279- );
280- }
281- }
282-
283- /// Ensures that [Report] s exist for the given [userId] .
284- Future <void > _ensureReportsExist (String userId) async {
285- try {
286- final existing = await _reportRepository.readAll (userId: userId);
287- if (existing.items.isNotEmpty) {
288- _logger.finer ('Reports already exist for user ID: $userId .' );
289- return ;
290- }
291-
292- _logger.fine (
293- 'No Reports found for user ID: $userId . Creating from fixture.' ,
294- );
295-
296- if (reportFixturesData.isEmpty) {
297- _logger.warning ('reportFixturesData is empty. No items to create.' );
298- return ;
299- }
300-
301- final userItems = reportFixturesData.map (
302- (i) => i.copyWith (reporterUserId: userId),
303- );
304-
305- await Future .wait (
306- userItems.map (
307- (item) => _reportRepository.create (item: item, userId: userId),
308- ),
309- );
310- _logger.fine (
311- '${userItems .length } Reports from fixture created for user ID: $userId .' ,
312- );
313- } catch (e, s) {
314- _logger.severe (
315- 'Error ensuring Reports exist for user ID: $userId : $e ' ,
316- e,
317- s,
318- );
319- }
320- }
321-
322- /// Ensures that [AppReview] s exist for the given [userId] .
323- Future <void > _ensureAppReviewsExist (String userId) async {
324- try {
325- final existing = await _appReviewRepository.readAll (userId: userId);
326- if (existing.items.isNotEmpty) {
327- _logger.finer ('AppReviews already exist for user ID: $userId .' );
328- return ;
329- }
330-
331- _logger.fine (
332- 'No AppReviews found for user ID: $userId . Creating from fixture.' ,
333- );
334-
335- if (appReviewFixturesData.isEmpty) {
336- _logger.warning ('appReviewFixturesData is empty. No items to create.' );
337- return ;
338- }
339-
340- final userItems = appReviewFixturesData.map (
341- (i) => i.copyWith (userId: userId),
342- );
343-
344- await Future .wait (
345- userItems.map (
346- (item) => _appReviewRepository.create (item: item, userId: userId),
347- ),
348- );
349- _logger.fine (
350- '${userItems .length } AppReviews from fixture created for user ID: $userId .' ,
351- );
352- } catch (e, s) {
353- _logger.severe (
354- 'Error ensuring AppReviews exist for user ID: $userId : $e ' ,
355- e,
356- s,
357- );
358- }
359- }
360213}
0 commit comments