fix puntuaciones
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user