feedback stats added

This commit is contained in:
amirrezaghabeli
2025-08-27 09:40:48 +03:30
parent bc2522f4fb
commit 0f657228c8
15 changed files with 793 additions and 18 deletions
+25 -2
View File
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:tm_app/core/utils/result.dart';
import 'package:tm_app/data/services/model/feedback_stats/feedback_stats.dart';
import 'package:tm_app/data/services/model/home/home_request/home_request_model.dart';
import 'package:tm_app/data/services/model/recommended_tenders_response/recommended_tenders_response.dart';
import 'package:tm_app/data/services/model/tender_approvals_response/tender_approvals_response.dart';
@@ -7,13 +8,14 @@ import 'package:tm_app/data/services/model/tender_approvals_state_response/tende
import 'package:tm_app/data/services/model/tender_data/tender_data.dart';
import '../data/repositories/home_repository.dart';
import '../data/services/model/feedback_stats_response/feedback_stat_response.dart';
import '../data/services/model/home/home_response/home_response_model.dart';
class HomeViewModel with ChangeNotifier {
final HomeRepository _homeRepository;
HomeViewModel({required HomeRepository homeRepository})
: _homeRepository = homeRepository {
: _homeRepository = homeRepository {
init();
}
@@ -28,7 +30,7 @@ class HomeViewModel with ChangeNotifier {
RecommendedTendersResponse? _recommendedTendersResponse;
TenderApprovalsStateResponse? tenderApprovalsStateResponse;
FeedbackStats? feedbackStats;
final List<TenderData> _tenders = [];
final int _pageSize = 20;
int _currentPage = 0;
@@ -46,6 +48,7 @@ class HomeViewModel with ChangeNotifier {
void init() async {
await getApprovedStates();
await getYourTenders();
await getFeedbackStats();
}
Future<void> getHome({HomeRequestModel? homeRequestModel}) async {
@@ -163,4 +166,24 @@ class HomeViewModel with ChangeNotifier {
_isLoading = false;
notifyListeners();
}
Future<void> getFeedbackStats() async {
_isLoading = true;
_errorMessage = null;
notifyListeners();
final result = await _homeRepository.getFeedbackStats();
switch (result) {
case Ok<FeedbackStatResponse>():
feedbackStats = result.value.data;
break;
case Error<FeedbackStatResponse>():
_errorMessage = result.error.toString();
break;
}
_isLoading = false;
notifyListeners();
}
}