removed hardcoded status feedback and submission mode

This commit is contained in:
amirrezaghabeli
2025-09-08 12:22:08 +03:30
parent 65822036c8
commit f6da74f739
25 changed files with 228 additions and 113 deletions
+21 -12
View File
@@ -7,6 +7,7 @@ import 'package:tm_app/data/services/model/liked_tenders_response/liked_tenders_
import 'package:tm_app/data/services/model/tender_approvals_toggle_response/tender_approvals_toggle_response.dart';
import 'package:tm_app/view_models/home_view_model.dart';
import '../core/constants/tender_approval_status.dart';
import '../data/services/model/feedback_response/feedback_response.dart';
import '../data/services/model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart';
import '../data/services/model/tender_approvals_by_id_response/tender_approvals_by_id_response.dart';
@@ -245,12 +246,14 @@ class LikedTendersViewModel with ChangeNotifier {
/// Check if tender is submitted
bool isTenderSubmitted(String tenderId) {
return getApprovalStatusForTenderId(tenderId) == 'submitted';
return getApprovalStatusForTenderId(tenderId) ==
TenderApprovalStatus.submitted.value;
}
/// Check if tender is rejected
bool isTenderRejected(String tenderId) {
return getApprovalStatusForTenderId(tenderId) == 'rejected';
return getApprovalStatusForTenderId(tenderId) ==
TenderApprovalStatus.rejected.value;
}
Future<void> submitTenderApproval({
@@ -268,12 +271,15 @@ class LikedTendersViewModel with ChangeNotifier {
final existingApproval = getApprovalStatusForTender(tenderId);
if (existingApproval != null) {
if (existingApproval.status == 'submitted') {
if (existingApproval.status == TenderApprovalStatus.submitted.value) {
// Remove from list if already submitted
tenderApprovals.removeWhere((a) => a.tenderId == tenderId);
} else if (existingApproval.status == 'rejected') {
} else if (existingApproval.status ==
TenderApprovalStatus.rejected.value) {
// Change rejected to submitted
final updatedApproval = existingApproval.copyWith(status: 'submitted');
final updatedApproval = existingApproval.copyWith(
status: TenderApprovalStatus.submitted.value,
);
final index = tenderApprovals.indexWhere((a) => a.tenderId == tenderId);
if (index != -1) {
tenderApprovals[index] = updatedApproval;
@@ -283,7 +289,7 @@ class LikedTendersViewModel with ChangeNotifier {
// Add new approval with submitted status
final newApproval = TenderApprovalsData(
id: null,
status: 'submitted',
status: TenderApprovalStatus.submitted.value,
tenderId: tenderId,
companyId: null,
submissionMode: submissionMode,
@@ -298,7 +304,7 @@ class LikedTendersViewModel with ChangeNotifier {
// Make server request
final result = await _tendersRepository.toggleApprovals(
tenderId: tenderId,
status: 'submitted',
status: TenderApprovalStatus.submitted.value,
submissionMode: submissionMode,
);
@@ -334,12 +340,15 @@ class LikedTendersViewModel with ChangeNotifier {
final existingApproval = getApprovalStatusForTender(tenderId);
if (existingApproval != null) {
if (existingApproval.status == 'rejected') {
if (existingApproval.status == TenderApprovalStatus.rejected.value) {
// Remove from list if already rejected
tenderApprovals.removeWhere((a) => a.tenderId == tenderId);
} else if (existingApproval.status == 'submitted') {
} else if (existingApproval.status ==
TenderApprovalStatus.submitted.value) {
// Change submitted to rejected
final updatedApproval = existingApproval.copyWith(status: 'rejected');
final updatedApproval = existingApproval.copyWith(
status: TenderApprovalStatus.rejected.value,
);
final index = tenderApprovals.indexWhere((a) => a.tenderId == tenderId);
if (index != -1) {
tenderApprovals[index] = updatedApproval;
@@ -349,7 +358,7 @@ class LikedTendersViewModel with ChangeNotifier {
// Add new approval with rejected status
final newApproval = TenderApprovalsData(
id: null,
status: 'rejected',
status: TenderApprovalStatus.rejected.value,
tenderId: tenderId,
companyId: null,
submissionMode: submissionMode,
@@ -364,7 +373,7 @@ class LikedTendersViewModel with ChangeNotifier {
// Make server request
final result = await _tendersRepository.toggleApprovals(
tenderId: tenderId,
status: 'rejected',
status: TenderApprovalStatus.rejected.value,
submissionMode: submissionMode,
);