Skip to content

Commit dc758e1

Browse files
committed
fix(data): seed default settings and preferences for admin user
Updates the `seedInitialAdminAndConfig` method to create and insert the default `UserAppSettings` and `UserContentPreferences` records for the seeded admin user. This fixes a bug where the admin user would lack these necessary associated records, ensuring consistency with the user creation logic in `AuthService`.
1 parent 35fa931 commit dc758e1

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

lib/src/services/database_seeding_service.dart

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,37 @@ class DatabaseSeedingService {
268268
parameters: adminUser.toJson(),
269269
);
270270

271+
// Seed default settings and preferences for the admin user.
272+
final adminSettings = UserAppSettings(id: adminUser.id);
273+
final adminPreferences = UserContentPreferences(id: adminUser.id);
274+
275+
await _connection.execute(
276+
Sql.named(
277+
'INSERT INTO user_app_settings (id, user_id, '
278+
'display_settings, language) '
279+
'VALUES (@id, @user_id, @display_settings, @language) '
280+
'ON CONFLICT (id) DO NOTHING',
281+
),
282+
parameters: {
283+
...adminSettings.toJson(),
284+
'user_id': adminUser.id,
285+
},
286+
);
287+
288+
await _connection.execute(
289+
Sql.named(
290+
'INSERT INTO user_content_preferences (id, user_id, '
291+
'followed_categories, followed_sources, followed_countries, '
292+
'saved_headlines) VALUES (@id, @user_id, @followed_categories, '
293+
'@followed_sources, @followed_countries, @saved_headlines) '
294+
'ON CONFLICT (id) DO NOTHING',
295+
),
296+
parameters: {
297+
...adminPreferences.toJson(),
298+
'user_id': adminUser.id,
299+
},
300+
);
301+
271302
await _connection.execute('COMMIT');
272303
_log.info(
273304
'Initial AppConfig and admin user seeding completed successfully.',

0 commit comments

Comments
 (0)