Files
prosappweb/lib/models/setting.dart
T
Lizandro GuarnizoandClaude Sonnet 4.6 8372e19d9f 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>
2026-06-27 09:34:39 -05:00

74 lines
2.7 KiB
Dart

class Setting {
final bool tarifas;
final bool domicilios;
final bool google;
final String versionIos;
final String versionAndroid;
final String horaNotificacion;
final String tituloSoporte;
final String parrafoSoporte;
final String numeroSoporte;
final String emailSoporte;
final String diasSoporte;
final String horasSoporte;
final String politicasPrivacidad;
final String politicasPrivacidadTitle;
final String politicasPrivacidadBody;
final String terminosCondiciones;
final String terminosCondicionesTitle;
final String terminosCondicionesBody;
const Setting({
required this.tarifas,
required this.domicilios,
required this.google,
required this.versionIos,
required this.versionAndroid,
required this.horaNotificacion,
required this.tituloSoporte,
required this.parrafoSoporte,
required this.numeroSoporte,
required this.emailSoporte,
required this.diasSoporte,
required this.horasSoporte,
required this.politicasPrivacidad,
required this.politicasPrivacidadTitle,
required this.politicasPrivacidadBody,
required this.terminosCondiciones,
required this.terminosCondicionesTitle,
required this.terminosCondicionesBody,
});
static bool _b(dynamic v, [bool d = false]) {
if (v == null) return d;
if (v is bool) return v;
return v.toString() == 'true';
}
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']),
);
}
}