puntaje pro

This commit is contained in:
Juan Felipe Duarte
2023-04-26 16:55:58 -05:00
parent 0a70d40d2d
commit c1747a45b9
12 changed files with 781 additions and 436 deletions
+41 -3
View File
@@ -9,6 +9,8 @@ import 'package:prosappco/src/components/pop_appbar.dart';
import 'package:prosappco/src/models/score_model.dart';
import 'package:prosappco/src/screens/professional_info.dart';
import '../models/score_model2.dart';
class ProfessionalScreen extends StatefulWidget {
const ProfessionalScreen({super.key});
@@ -29,7 +31,7 @@ class Professional {
final String cityName;
final String ubicacion;
final List<String> professionalEspecializado;
final ScoreModel puntuacion;
final ScoresModel scores;
Professional({
required this.professionalRef,
@@ -38,7 +40,7 @@ class Professional {
required this.cityName,
required this.ubicacion,
required this.professionalEspecializado,
required this.puntuacion,
required this.scores,
});
String getEspecializaciones() {
@@ -56,6 +58,42 @@ class Professional {
' professionalEspecializado: ${getEspecializaciones()}\n'
'}';
}
static Future<Professional?> getProfessional(String uid) async {
var photo = '...';
final FirebaseStorage storage = FirebaseStorage.instance;
try {
DocumentSnapshot user =
await FirebaseFirestore.instance.collection('users').doc(uid).get();
Map<String, dynamic> data = user.data() as Map<String, dynamic>;
photo = await AuthenticationRepository.instance.getPhoto(user.id);
if (data['estado'] == 'activo') {
List<String> especializaciones;
especializaciones = (data['especializaciones'] as List<dynamic>)
.map((e) => e.toString())
.toList();
Professional professional = Professional(
name: data['name'],
professionName: data['profesion'],
cityName: data['city'],
professionalRef: storage.ref().child(photo),
professionalEspecializado: especializaciones,
ubicacion: data['ubicacion'] ?? '',
scores: await ScoresModel.scoreFrom(uid, true),
);
return professional;
}
} catch (e) {
print('Error al obtener profesionales: $e');
}
return null;
}
}
Future<List<Professional>> getProfessionals() async {
@@ -84,7 +122,7 @@ Future<List<Professional>> getProfessionals() async {
professionalRef: storage.ref().child(_photo),
professionalEspecializado: especializaciones,
ubicacion: data['ubicacion'] ?? '',
puntuacion: await ScoreModel.fromJson(data['puntuacion'], true),
scores: await ScoresModel.scoreTo(user.id, true),
);
professionals.add(professional);
}