/** * Preferences types — Fase 1 schema simple (theme + language + notifications.master). * Doc canónico: /apps/{appId}/users/{uid}/preferences/main * Cliente NUNCA escribe directo — todas las mutaciones via PUT /v2/auth/preferences. */ export type PreferencesTheme = 'light' | 'dark' | 'auto'; export type PreferencesLanguage = 'es' | 'en'; export type PreferencesFontSize = 'small' | 'medium' | 'large'; /** Forma del doc tal como lo escribe el backend (Admin SDK). */ export interface PreferencesDocument { theme?: PreferencesTheme; language?: PreferencesLanguage; fontSize?: PreferencesFontSize; notifications?: { master?: boolean; }; /** serverTimestamp escrito por el backend en cada sync. */ syncedAt?: unknown; } /** Payload aceptado por `PUT /v2/auth/preferences` — partial update. */ export interface PreferencesUpdate { theme?: PreferencesTheme; language?: PreferencesLanguage; fontSize?: PreferencesFontSize; notifications?: { master?: boolean; }; } /** Response del backend tras el PUT. */ export interface PreferencesUpdateResponse { operationId: string; theme: PreferencesTheme | ''; language: PreferencesLanguage | ''; fontSize: PreferencesFontSize | ''; notifications: { master?: boolean; }; updated: boolean; }