configuracion - sugerencias - soporte

This commit is contained in:
Felipe
2024-03-13 23:55:48 -05:00
parent cde7e72f1a
commit 66125235dd
23 changed files with 547 additions and 100 deletions
@@ -0,0 +1 @@
export '/src/entities/setting_entity.dart';
@@ -0,0 +1,107 @@
import 'package:equatable/equatable.dart';
class SettingEntity extends Equatable {
final bool? tarifas;
final bool? domicilios;
final bool? google;
final String? version;
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 SettingEntity({
required this.tarifas,
required this.domicilios,
required this.google,
required this.version,
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 SettingEntity fromDocument(Map<String, dynamic> doc) {
return SettingEntity(
tarifas: doc['tarifas'] as bool?,
domicilios: doc['domicilios'] as bool?,
google: doc['google'] as bool?,
version: doc['version'] 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?,
);
}
@override
List<Object?> get props => [
tarifas,
domicilios,
google,
version,
horaNotificacion,
tituloSoporte,
parrafoSoporte,
numeroSoporte,
emailSoporte,
diasSoporte,
horasSoporte,
politicasPrivacidad,
politicasPrivacidadTitle,
politicasPrivacidadBody,
terminosCondiciones,
terminosCondicionesTitle,
terminosCondicionesBody,
];
@override
String toString() {
return '''SettingEntity {
tarifas: $tarifas
domicilios: $domicilios
google: $google
version: $version
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
}''';
}
}
@@ -0,0 +1,19 @@
import 'package:equatable/equatable.dart';
class SettingUi extends Equatable {
final String cityName;
final String coordsOfCity;
final String stateOfCity;
final String countryOfCity;
const SettingUi({
required this.cityName,
required this.coordsOfCity,
required this.stateOfCity,
required this.countryOfCity,
});
@override
List<Object?> get props =>
[cityName, coordsOfCity, stateOfCity, countryOfCity];
}
@@ -0,0 +1,14 @@
import 'package:setting_repository/src/entities/entities.dart';
import 'package:setting_repository/src/repositories/setting_repo.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
class FirebaseSettingRepository implements SettingRepository {
final settingsCollection = FirebaseFirestore.instance.collection('settings');
@override
Future<SettingEntity> getSettings() async {
final DocumentSnapshot doc = await settingsCollection.doc('global').get();
return SettingEntity.fromDocument(doc.data() as Map<String, dynamic>);
}
}
@@ -0,0 +1,5 @@
import 'package:setting_repository/src/entities/entities.dart';
abstract class SettingRepository {
Future<SettingEntity> getSettings();
}