Skip to content

Commit 43454b4

Browse files
committed
fix(api): align user_app_settings schema with data model
The user_app_settings table was missing the feed_preferences, engagement_shown_counts, and engagement_last_shown_timestamps columns, causing a crash during new user creation. This change updates the table schema and its corresponding seeding logic to be in perfect sync with the UserAppSettings model, resolving the runtime error.
1 parent 5ad4d72 commit 43454b4

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

lib/src/services/database_seeding_service.dart

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ class DatabaseSeedingService {
126126
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
127127
display_settings JSONB NOT NULL, -- Nested object, stored as JSON
128128
language TEXT NOT NULL, -- Simple string, stored as TEXT
129+
feed_preferences JSONB NOT NULL,
130+
engagement_shown_counts JSONB NOT NULL,
131+
engagement_last_shown_timestamps JSONB NOT NULL,
129132
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
130133
updated_at TIMESTAMPTZ
131134
);
@@ -364,19 +367,15 @@ class DatabaseSeedingService {
364367

365368
await _connection.execute(
366369
Sql.named(
367-
'INSERT INTO user_app_settings (id, user_id, '
368-
'display_settings, language) '
369-
'VALUES (@id, @user_id, @display_settings, @language) '
370+
'INSERT INTO user_app_settings (id, user_id, display_settings, '
371+
'language, feed_preferences, engagement_shown_counts, '
372+
'engagement_last_shown_timestamps) VALUES (@id, @user_id, '
373+
'@display_settings, @language, @feed_preferences, '
374+
'@engagement_shown_counts, @engagement_last_shown_timestamps) '
370375
'ON CONFLICT (id) DO NOTHING',
371376
),
372-
parameters: {
373-
'id': adminSettings.id,
374-
'user_id': adminUser.id,
375-
'display_settings':
376-
adminSettings.displaySettings.toJson(), // This is a complex object
377-
'language':
378-
adminSettings.language, // This is a simple String
379-
},
377+
parameters: adminSettings.toJson()
378+
..['user_id'] = adminUser.id,
380379
);
381380

382381
await _connection.execute(

0 commit comments

Comments
 (0)