home and tender change

This commit is contained in:
amirrezaghabeli
2025-08-22 09:30:02 +03:30
parent 62b94c2655
commit 47edc00b97
5 changed files with 128 additions and 27 deletions
+32 -1
View File
@@ -5,6 +5,8 @@ import 'package:tm_app/data/repositories/tenders_repository.dart';
import 'package:tm_app/data/services/model/tender_data/tender_data.dart';
import 'package:tm_app/data/services/model/tender_detail_response/tender_detail_response_model.dart';
import '../data/services/model/tender_approvals_by_id_response/tender_approvals_by_id_response.dart';
import '../data/services/model/tender_approvals_data/tender_approvals_data.dart';
import '../data/services/model/tender_approvals_toggle_response/tender_approvals_toggle_response.dart';
class TenderDetailViewModel with ChangeNotifier {
@@ -22,14 +24,17 @@ class TenderDetailViewModel with ChangeNotifier {
bool _isRejectApprovalLoading = false;
String? _errorMessage;
TenderData? _tenderDetail;
TenderApprovalsData? _tenderApprovalData;
bool approvalStatus = false;
String _status = '';
bool get isLoading => _isLoading;
bool get isSubmitApprovalLoading => _isSubmitApprovalLoading;
bool get isRejectApprovalLoading => _isRejectApprovalLoading;
String? get errorMessage => _errorMessage;
TenderData? get tenderDetail => _tenderDetail;
TenderApprovalsData? get tenderApprovalData => _tenderApprovalData;
String get status => _status;
Future<void> getTenderDetail({required String id}) async {
_isLoading = true;
@@ -40,6 +45,7 @@ class TenderDetailViewModel with ChangeNotifier {
switch (result) {
case Ok<TenderDetailResponseModel>():
_tenderDetail = result.value.data;
await getTenderApprovals(id);
break;
case Error<TenderDetailResponseModel>():
_errorMessage = result.error.toString();
@@ -64,6 +70,7 @@ class TenderDetailViewModel with ChangeNotifier {
switch (result) {
case Ok<TenderApprovalsToggleResponse>():
approvalStatus = true;
_status = result.value.data?.status ?? '';
break;
case Error<TenderApprovalsToggleResponse>():
_errorMessage = result.error.toString();
@@ -73,6 +80,7 @@ class TenderDetailViewModel with ChangeNotifier {
_isSubmitApprovalLoading = false;
notifyListeners();
_errorMessage = null;
approvalStatus = false;
notifyListeners();
}
@@ -90,6 +98,7 @@ class TenderDetailViewModel with ChangeNotifier {
switch (result) {
case Ok<TenderApprovalsToggleResponse>():
approvalStatus = true;
_status = result.value.data?.status ?? '';
break;
case Error<TenderApprovalsToggleResponse>():
_errorMessage = result.error.toString();
@@ -99,6 +108,28 @@ class TenderDetailViewModel with ChangeNotifier {
_isRejectApprovalLoading = false;
notifyListeners();
_errorMessage = null;
approvalStatus = false;
notifyListeners();
}
Future<void> getTenderApprovals(String tenderId) async {
_errorMessage = null;
notifyListeners();
final result = await _tendersRepository.getTenderApprovals(
tenderId: tenderId,
);
switch (result) {
case Ok<TenderApprovalsByIdResponse>():
_tenderApprovalData = result.value.data;
_status = result.value.data?.status ?? '';
break;
case Error<TenderApprovalsByIdResponse>():
_errorMessage = result.error.toString();
break;
}
notifyListeners();
_errorMessage = null;
notifyListeners();
}
}