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['support_title'] ?? doc['titulo_soporte'], 'Soporte ProsApp'),
      parrafoSoporte: _s(doc['support_description'] ?? doc['parrafo_soporte'],
          'Estamos aquí para ayudarte. Contáctanos por cualquiera de estos canales.'),
      numeroSoporte: _s(doc['support_phone'] ?? doc['numero_soporte']),
      emailSoporte: _s(doc['support_email'] ?? doc['email_soporte']),
      diasSoporte: _s(doc['support_days'] ?? doc['dias_soporte'], 'Lunes a Viernes'),
      horasSoporte: _s(doc['support_hours'] ?? doc['horas_soporte'], '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']),
    );
  }
}
