fix: soporte visible + perfil con vinculacion de correo
- Setting.fromDocument con valores por defecto (null-safe) - SettingsProvider crea Setting vacio si el backend falla - support_view: guard para settings null - profile_view: seccion 'Acceso con correo' con toggle, campos email/password/confirmar, envia OTP, verifica codigo Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
bfa494b7fe
commit
8372e19d9f
+28
-43
@@ -39,50 +39,35 @@ class Setting {
|
||||
required this.terminosCondicionesBody,
|
||||
});
|
||||
|
||||
static Setting fromDocument(Map<String, dynamic> doc) {
|
||||
return Setting(
|
||||
tarifas: doc['tarifas'] as bool,
|
||||
domicilios: doc['domicilios'] as bool,
|
||||
google: doc['google'] as bool,
|
||||
versionIos: doc['version_ios'] as String,
|
||||
versionAndroid: doc['version_android'] as String,
|
||||
horaNotificacion: doc['hora_notificacion'] as String,
|
||||
tituloSoporte: doc['titulo_soporte'] as String,
|
||||
parrafoSoporte: doc['parrafo_soporte'] as String,
|
||||
numeroSoporte: doc['numero_soporte'] as String,
|
||||
emailSoporte: doc['email_soporte'] as String,
|
||||
diasSoporte: doc['dias_soporte'] as String,
|
||||
horasSoporte: doc['horas_soporte'] as String,
|
||||
politicasPrivacidad: doc['politicas_privacidad'] as String,
|
||||
politicasPrivacidadTitle: doc['politicas_privacidad_title'] as String,
|
||||
politicasPrivacidadBody: doc['politicas_privacidad_body'] as String,
|
||||
terminosCondiciones: doc['terminos_condiciones'] as String,
|
||||
terminosCondicionesTitle: doc['terminos_condiciones_title'] as String,
|
||||
terminosCondicionesBody: doc['terminos_condiciones_body'] as String,
|
||||
);
|
||||
static bool _b(dynamic v, [bool d = false]) {
|
||||
if (v == null) return d;
|
||||
if (v is bool) return v;
|
||||
return v.toString() == 'true';
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return '''Setting {
|
||||
tarifas: $tarifas
|
||||
domicilios: $domicilios
|
||||
google: $google
|
||||
versionIos: $versionIos
|
||||
versionAndroid: $versionAndroid
|
||||
horaNotificacion: $horaNotificacion
|
||||
tituloSoporte: $tituloSoporte
|
||||
parrafoSoporte: $parrafoSoporte
|
||||
numeroSoporte: $numeroSoporte
|
||||
emailSoporte: $emailSoporte
|
||||
diasSoporte: $diasSoporte
|
||||
horasSoporte: $horasSoporte
|
||||
politicasPrivacidad: $politicasPrivacidad
|
||||
politicasPrivacidadTitle: $politicasPrivacidadTitle
|
||||
politicasPrivacidadBody: $politicasPrivacidadBody
|
||||
terminosCondiciones: $terminosCondiciones
|
||||
terminosCondicionesTitle: $terminosCondicionesTitle
|
||||
terminosCondicionesBody: $terminosCondicionesBody
|
||||
}''';
|
||||
static String _s(dynamic v, [String d = '']) => v?.toString() ?? d;
|
||||
|
||||
static Setting fromDocument(Map<String, dynamic> doc) {
|
||||
return Setting(
|
||||
tarifas: _b(doc['tarifas']),
|
||||
domicilios: _b(doc['domicilios']),
|
||||
google: _b(doc['google']),
|
||||
versionIos: _s(doc['version_ios']),
|
||||
versionAndroid: _s(doc['version_android']),
|
||||
horaNotificacion: _s(doc['hora_notificacion']),
|
||||
tituloSoporte: _s(doc['titulo_soporte'], 'Soporte ProsApp'),
|
||||
parrafoSoporte: _s(doc['parrafo_soporte'],
|
||||
'Estamos aquí para ayudarte. Contáctanos por cualquiera de estos canales.'),
|
||||
numeroSoporte: _s(doc['numero_soporte'] ?? doc['support_phone']),
|
||||
emailSoporte: _s(doc['email_soporte'] ?? doc['support_email']),
|
||||
diasSoporte: _s(doc['dias_soporte'] ?? doc['support_days'], 'Lunes a Viernes'),
|
||||
horasSoporte: _s(doc['horas_soporte'] ?? doc['support_hours'], '8:00 am - 6:00 pm'),
|
||||
politicasPrivacidad: _s(doc['politicas_privacidad']),
|
||||
politicasPrivacidadTitle: _s(doc['politicas_privacidad_title']),
|
||||
politicasPrivacidadBody: _s(doc['politicas_privacidad_body']),
|
||||
terminosCondiciones: _s(doc['terminos_condiciones']),
|
||||
terminosCondicionesTitle: _s(doc['terminos_condiciones_title']),
|
||||
terminosCondicionesBody: _s(doc['terminos_condiciones_body']),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user