fix puntuaciones

This commit is contained in:
Juan Felipe Duarte
2023-04-28 15:56:54 -05:00
parent b3d31d3a8d
commit 9354350b26
12 changed files with 239 additions and 61 deletions
+24
View File
@@ -1,5 +1,6 @@
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:prosappco/src/authentication/authentication_repository.dart';
import 'package:prosappco/src/models/scores_model.dart';
final uid = AuthenticationRepository.instance.getCurrentUserUid();
@@ -46,6 +47,28 @@ Future<List<Event>> getByProId(String day) async {
}
}
Future<List<Event>> getByProIdAll() async {
try {
var snapshot = await FirebaseFirestore.instance
.collection('services')
.where('professional_id', isEqualTo: uid)
.get();
List<Event> eventos = [];
for (var element in snapshot.docs) {
final event = Event.fromJson(element.data());
event.scoresModel =
await ScoresModel.scoreTo(event.userId ?? "", false, false);
eventos.add(event);
}
print('eventos $eventos');
return eventos;
} catch (e) {
print('Error getByProId $e');
return [];
}
}
class Event {
String? title;
String? description;
@@ -54,6 +77,7 @@ class Event {
String? range1Hour2;
String? userId;
String? professionalId;
ScoresModel? scoresModel;
Event({
this.title,
+13 -1
View File
@@ -12,6 +12,11 @@ class ScoresModel {
average = averageScore(details);
}
@override
String toString() {
return 'ScoresModel{total: $total, average: $average, details: $details}';
}
double averageScore(List<ScoreDetailModel> details) {
if (details.isEmpty) {
return 0.0;
@@ -39,9 +44,11 @@ class ScoresModel {
}
// You
static Future<ScoresModel> scoreFrom(String userGiven, bool userInfo) async {
static Future<ScoresModel> scoreFrom(
String userGiven, bool isFromClient, bool userInfo) async {
final givenScoresQuery = FirebaseFirestore.instance
.collection('scores')
.where('is_from_client', isEqualTo: isFromClient)
.where('from_user', isEqualTo: userGiven);
final givenScoresSnapshot = await givenScoresQuery.get();
@@ -77,6 +84,11 @@ class ScoreDetailModel {
required this.avatar,
});
@override
String toString() {
return 'ScoreDetailModel{id: $id, score: $score, fromUser: $fromUser, toUser: $toUser, comment: $comment, isFromClient: $isFromClient, name: $name, avatar: $avatar}';
}
static Future<ScoreDetailModel> fromDocumentSnapshot(
DocumentSnapshot<Map<String, dynamic>> snapshot, bool userInfo) async {
try {