Implement tender workflows and dashboard integration
continuous-integration/drone/push Build encountered an error

This commit is contained in:
AmirReza Jamali
2026-07-14 11:12:09 +03:30
parent ce170f9bc8
commit 72881df210
29 changed files with 1820 additions and 159 deletions
+13 -1
View File
@@ -4,6 +4,9 @@ import 'package:tm_app/data/services/liked_tenders_service.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';
import 'package:tm_app/data/services/model/tender_approvals_stats_response/tender_approvals_stats_response.dart';
import 'package:tm_app/data/services/model/feedback_stats_response/feedback_stat_response.dart';
import 'package:tm_app/data/services/model/tender_submission/tender_submission.dart';
import 'package:tm_app/data/services/tender_submissions_service.dart';
import '../services/model/request_models/get_tenders_request_model/get_tenders_request_model.dart';
import '../services/model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart';
@@ -14,12 +17,15 @@ class HomeRepository {
required HomeService homeService,
required YourTendersService yourTendersService,
required LikedTendersService likedTendersService,
required TenderSubmissionsService tenderSubmissionsService,
}) : _homeService = homeService,
_yourTendersService = yourTendersService,
_likedTendersService = likedTendersService;
_likedTendersService = likedTendersService,
_tenderSubmissionsService = tenderSubmissionsService;
final HomeService _homeService;
final YourTendersService _yourTendersService;
final LikedTendersService _likedTendersService;
final TenderSubmissionsService _tenderSubmissionsService;
Future<Result<RecommendedTendersResponse>> getHomeRecommendedTenders({
required int limit,
@@ -38,6 +44,12 @@ class HomeRepository {
return _homeService.getTendersApprovalsStats();
}
Future<Result<FeedbackStatResponse>> getCustomerFeedbackStats() =>
_homeService.getFeedbackStats();
Future<Result<TenderSubmissionStatsResponse>> getSubmissionStats() =>
_tenderSubmissionsService.getStats();
/// Returns how many tenders the current user has liked (not company-wide).
Future<Result<int>> getUserLikedTendersCount() async {
final result = await _likedTendersService.getLikedTenders(
@@ -4,17 +4,22 @@ import 'package:tm_app/data/services/model/liked_tenders_response/liked_tenders_
import 'package:tm_app/data/services/model/request_models/get_tenders_request_model/get_tenders_request_model.dart';
import 'package:tm_app/data/services/model/tender_approvals_response/tender_approvals_response.dart';
import 'package:tm_app/data/services/your_tenders_service.dart';
import 'package:tm_app/data/services/tender_submissions_service.dart';
import 'package:tm_app/data/services/model/tender_submission/tender_submission.dart';
import '../services/model/request_models/tender_feedback_request_model/tender_feedback_request_model.dart';
class YourTendersRepository {
final YourTendersService _yourTendersService;
final LikedTendersService _likedTendersService;
final TenderSubmissionsService _tenderSubmissionsService;
YourTendersRepository({
required YourTendersService yourTendersService,
required LikedTendersService likedTendersService,
required TenderSubmissionsService tenderSubmissionsService,
}) : _yourTendersService = yourTendersService,
_likedTendersService = likedTendersService;
_likedTendersService = likedTendersService,
_tenderSubmissionsService = tenderSubmissionsService;
Future<Result<TenderApprovalsResponse>> getTenders({
required GetTendersRequestModel requestModel,
@@ -27,4 +32,41 @@ class YourTendersRepository {
}) {
return _likedTendersService.getLikedTenders(requestModel: requestModel);
}
Future<Result<TenderSubmissionsResponse>> getSubmissions({
required String stage,
int limit = 20,
int offset = 0,
}) => _tenderSubmissionsService.getSubmissions(
stages: [stage],
limit: limit,
offset: offset,
);
Future<Result<TenderSubmissionResponse>> getSubmissionById(String id) =>
_tenderSubmissionsService.getById(id);
Future<Result<TenderSubmissionResponse>> getSubmissionByTender(
String tenderId,
) => _tenderSubmissionsService.getByTender(tenderId);
Future<Result<TenderSubmissionResponse>> ensureSubmission(
String tenderId, {
String? companyId,
}) => _tenderSubmissionsService.ensure(tenderId, companyId: companyId);
Future<Result<TenderSubmissionResponse>> updateSubmissionStatus({
required String id,
required String status,
String? reason,
String? description,
}) => _tenderSubmissionsService.updateStatus(
id: id,
status: status,
reason: reason,
description: description,
);
Future<Result<TenderSubmissionStatsResponse>> getSubmissionStats() =>
_tenderSubmissionsService.getStats();
}