Files
tm_app/lib/data/repositories/home_repository.dart
T
AmirReza Jamali 72881df210
continuous-integration/drone/push Build encountered an error
Implement tender workflows and dashboard integration
2026-07-14 11:12:09 +03:30

75 lines
3.0 KiB
Dart

import 'package:tm_app/core/utils/result.dart';
import 'package:tm_app/data/services/home_service.dart';
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';
import '../services/your_tenders_service.dart';
class HomeRepository {
HomeRepository({
required HomeService homeService,
required YourTendersService yourTendersService,
required LikedTendersService likedTendersService,
required TenderSubmissionsService tenderSubmissionsService,
}) : _homeService = homeService,
_yourTendersService = yourTendersService,
_likedTendersService = likedTendersService,
_tenderSubmissionsService = tenderSubmissionsService;
final HomeService _homeService;
final YourTendersService _yourTendersService;
final LikedTendersService _likedTendersService;
final TenderSubmissionsService _tenderSubmissionsService;
Future<Result<RecommendedTendersResponse>> getHomeRecommendedTenders({
required int limit,
required int offset,
}) async {
return _homeService.getRecommendedTenders(limit: limit, offset: offset);
}
Future<Result<TenderApprovalsResponse>> getYourTenders({
required GetTendersRequestModel requestModel,
}) {
return _yourTendersService.getTenders(requestModel: requestModel);
}
Future<Result<TenderApprovalsStatsResponse>> getTendersApprovalsStats() {
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(
requestModel: TenderFeedbackRequestModel(
feedbackType: 'like',
limit: 1,
offset: 0,
),
);
switch (result) {
case Ok(value: final response):
return Result.ok(response.data?.meta?.total ?? 0);
case Error(error: final error):
return Result.error(error);
}
}
Future<Result<Map<String, dynamic>>> checkUnreadNotifications() async {
return _homeService.checkUnreadNotifications();
}
}