diff --git a/src/lib/types.ts b/src/lib/types.ts index e4084fa..c83e441 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -324,6 +324,17 @@ export interface UserSettings { * Extracts the .value property from each TranslatedField. */ export function transformApiSettings(apiSettings: ApiUserSettingsResponse): UserSettings { + // Validate that all required fields with TranslatedField wrappers are present + if (!apiSettings.onboarding?.value) { + throw new Error('API settings missing required field: onboarding.value. Received: ' + JSON.stringify(apiSettings)); + } + if (!apiSettings.default_remote_sport) { + throw new Error('API settings missing required field: default_remote_sport. Received: ' + JSON.stringify(apiSettings)); + } + if (!apiSettings.default_remote_member_id) { + throw new Error('API settings missing required field: default_remote_member_id. Received: ' + JSON.stringify(apiSettings)); + } + return { onboarding: apiSettings.onboarding.value, default_remote_sport: apiSettings.default_remote_sport.value,