Skip to Content
šŸ“š MyStoryFlow Docs — Your guide to preserving family stories
Settings Mapping

Settings Database Mapping

This document provides a comprehensive mapping of all settings fields in the MyStoryFlow application to their corresponding database tables and columns. This ensures a clear 1-1 mapping and prevents duplication.

Database Tables Overview

The settings system uses the following specialized tables:

  • profiles - Core user profile information (name, email, bio, etc.)
  • user_settings - UI preferences, accessibility, and general app settings
  • user_notification_settings - All notification preferences (email, SMS, push, etc.)
  • user_grammar_settings - AI writing assistance and grammar preferences
  • user_privacy_settings - Privacy, sharing, and visibility settings
  • user_voice_settings - Voice recording and transcription preferences
  • user_data_exports - Data export requests and history
  • user_devices - User device registrations for push notifications

Settings Page Field Mappings

Profile Information Tab

UI FieldDatabase TableDatabase ColumnTypeDefaultNotes
First Nameprofilesfull_namestring-Derived from full_name split
Last Nameprofilesfull_namestring-Derived from full_name split
Emailauth.usersemailstring-Read-only, managed by Supabase Auth
PhoneprofilesphonestringnullOptional
BioprofilesbiotextnullOptional
Avatarprofilesavatar_urltextnullFile URL
Display Nameprofilesdisplay_nametextnullPublic display name
Relationship Roleprofilesrelationship_roletextnulle.g., ā€œGrandmotherā€, ā€œSonā€
Birth Yearprofilesbirth_yearintegernullOptional
Preferred Methodprofilespreferred_methodtext’mixed’Writing preference
Technology Comfortprofilestechnology_comforttext’somewhat_comfortable’Tech skill level

UI Preferences (Profile Tab)

UI FieldDatabase TableDatabase ColumnTypeDefaultNotes
Languageuser_settingspreferred_languagevarchar(10)ā€˜en’ISO language code
Dark Modeuser_settingsdark_modebooleanfalseTheme preference
Text Sizeuser_settingstext_size_preferencevarchar(20)ā€˜medium’small/medium/large/extra-large
Timezoneuser_settingstimezonevarchar(100)ā€˜America/New_York’IANA timezone
High Contrastuser_settingshigh_contrast_modebooleanfalseAccessibility
Reduce Motionuser_settingsreduce_motionbooleanfalseAccessibility
Screen Readeruser_settingsscreen_reader_optimizedbooleanfalseAccessibility

Email Notifications Tab

UI FieldDatabase TableDatabase ColumnTypeDefaultNotes
Email Notificationsuser_notification_settingsemail_enabledbooleantrueMaster email toggle
Story Updatesuser_notification_settingsstory_updatesbooleantrueStory completion notifications
Family Invitationsuser_notification_settingsfamily_invitationsbooleantrueFamily member invites
Weekly Digestuser_notification_settingsweekly_digestbooleantrueSummary emails
Marketing Emailsuser_notification_settingsmarketing_emailsbooleanfalsePromotional content
System Announcementsuser_settingssystem_announcementsbooleantrueImportant updates

SMS Notifications Tab

UI FieldDatabase TableDatabase ColumnTypeDefaultNotes
SMS Notificationsuser_notification_settingssms_enabledbooleanfalseMaster SMS toggle
Story Commentsuser_notification_settingsstory_commentsbooleantrueComment notifications
Collaboration Updatesuser_notification_settingscollaboration_updatesbooleantrueFamily collaboration

In-App Notifications Tab

UI FieldDatabase TableDatabase ColumnTypeDefaultNotes
Push Notificationsuser_notification_settingspush_enabledbooleantrueBrowser/app push
Sound Notificationsuser_settingssound_notificationsbooleantrueAudio alerts

Reminders & Prompts Tab

UI FieldDatabase TableDatabase ColumnTypeDefaultNotes
Writing Remindersuser_notification_settingswriting_remindersbooleanfalseReminder notifications
Reminder Frequencyuser_notification_settingsreminder_frequencyvarchar’weekly’daily/weekly/monthly
Reminder Timeuser_notification_settingsreminder_timetime’09:00:00’Time of day
Writing Promptsuser_settingswriting_promptsbooleantruePrompt suggestions
Prompt Frequencyuser_settingswriting_prompt_frequencyvarchar’weekly’Frequency of prompts

Grammar & Writing Tab

UI FieldDatabase TableDatabase ColumnTypeDefaultNotes
Grammar Assistanceuser_grammar_settingsgrammar_enabledbooleantrueEnable grammar help
Auto-Correctuser_grammar_settingsauto_correctbooleanfalseAutomatic corrections
Suggestion Leveluser_grammar_settingssuggestion_levelvarchar’moderate’light/moderate/comprehensive
Tone Suggestionsuser_grammar_settingstone_suggestionsbooleantrueWriting tone help
Clarity Suggestionsuser_grammar_settingsclarity_suggestionsbooleantrueClarity improvements
AI Enhancementuser_grammar_settingsai_enhancement_enabledbooleanfalseAdvanced AI features
Enhancement Styleuser_grammar_settingsenhancement_stylevarchar’preserve’preserve/improve/transform

Privacy & Sharing Tab

UI FieldDatabase TableDatabase ColumnTypeDefaultNotes
Profile Visibilityuser_privacy_settingsprofile_visibilityvarchar’private’public/family/private
Show in Directoryuser_privacy_settingsshow_in_directorybooleanfalsePublic user directory
Story Discoveryuser_privacy_settingsallow_story_discoverybooleanfalsePublic story discovery
Default Story Privacyuser_privacy_settingsdefault_story_privacyvarchar’private’Default for new stories
Family Collaborationuser_privacy_settingsallow_family_collaborationbooleantrueFamily can collaborate
Approval for Sharesuser_privacy_settingsrequire_approval_for_sharesbooleantrueRequire share approval

Data Collection Tab

UI FieldDatabase TableDatabase ColumnTypeDefaultNotes
Analyticsuser_privacy_settingsanalytics_enabledbooleantrueUsage analytics
Improvement Datauser_privacy_settingsimprovement_data_sharingbooleantrueProduct improvement
Marketing Datauser_privacy_settingsmarketing_data_usagebooleanfalseMarketing analytics

Voice Recording Tab

UI FieldDatabase TableDatabase ColumnTypeDefaultNotes
Recording Qualityuser_voice_settingsrecording_qualityvarchar’high’standard/high/premium
Noise Reductionuser_voice_settingsnoise_reductionbooleantrueAudio processing
Auto Transcriptionuser_voice_settingsauto_transcriptionbooleantrueAutomatic transcription
Voice Enhancementuser_voice_settingsvoice_enhancementbooleanfalseAI voice processing
Transcription Languageuser_voice_settingspreferred_languagevarchar’en’Language for transcription
Transcription Accuracyuser_voice_settingstranscription_accuracyvarchar’balanced’speed/balanced/accuracy

App Features Tab

UI FieldDatabase TableDatabase ColumnTypeDefaultNotes
Auto-Saveuser_settingsauto_save_enabledbooleantrueAutomatic saving
Auto-Save Intervaluser_settingsauto_save_interval_minutesinteger5Minutes between saves
Writing Tipsuser_settingsshow_writing_tipsbooleantrueShow helpful tips
Onboarding Hintsuser_settingsshow_onboarding_hintsbooleantrueShow onboarding help

Subscription Information (Read-Only)

UI FieldDatabase TableDatabase ColumnTypeNotes
Subscription Tierprofilessubscription_tiervarcharstarter/premium/family
Subscription Statusprofilessubscription_statusvarchartrial/active/cancelled
Trial Ends Atprofilestrial_ends_attimestampTrial expiration

Onboarding Information (System)

UI FieldDatabase TableDatabase ColumnTypeNotes
Onboarding Completedprofilesonboarding_completedbooleanSetup completion status
Onboarding Stepprofilesonboarding_stepvarcharCurrent onboarding step
Onboarding Dataprofilesonboarding_datajsonbOnboarding progress data

Data Export Requests

UI FieldDatabase TableDatabase ColumnTypeNotes
Export Typeuser_data_exportsexport_typevarcharstories/profile/all
Export Statususer_data_exportsstatusvarcharpending/processing/completed/failed
File URLuser_data_exportsfile_urltextDownload link
File Sizeuser_data_exportsfile_size_bytesbigintFile size in bytes
Expires Atuser_data_exportsexpires_attimestamptzDownload expiration

Important Notes

  1. No Duplicate Fields: Each setting should only exist in one table to maintain data consistency.

  2. Migration Complete: Old duplicate fields in profiles table have been migrated to appropriate specialized tables.

  3. RLS Policies: All settings tables have Row Level Security (RLS) policies ensuring users can only access their own settings.

  4. Foreign Key Constraints: All settings tables reference auth.users(id) with CASCADE DELETE to maintain referential integrity.

  5. Default Values: All fields have sensible defaults to ensure the app works even with minimal configuration.

  6. Indexes: Performance indexes are created on user_id columns for all settings tables.

  7. Updated At Triggers: All settings tables have automatic updated_at timestamp triggers.

API Endpoints

  • GET/PUT /api/settings/profile - Profile information
  • GET/PUT /api/settings/ui - UI preferences from user_settings
  • GET/PUT /api/settings/notifications - All notification settings
  • GET/PUT /api/settings/grammar - Grammar and writing settings
  • GET/PUT /api/settings/privacy - Privacy and sharing settings
  • GET/PUT /api/settings/voice - Voice recording settings
  • GET/POST /api/settings/data-export - Data export requests