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 '../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, }) : _homeService = homeService, _yourTendersService = yourTendersService, _likedTendersService = likedTendersService; final HomeService _homeService; final YourTendersService _yourTendersService; final LikedTendersService _likedTendersService; Future> getHomeRecommendedTenders({ required int limit, required int offset, }) async { return _homeService.getRecommendedTenders(limit: limit, offset: offset); } Future> getYourTenders({ required GetTendersRequestModel requestModel, }) { return _yourTendersService.getTenders(requestModel: requestModel); } Future> getTendersApprovalsStats() { return _homeService.getTendersApprovalsStats(); } /// Returns how many tenders the current user has liked (not company-wide). Future> 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>> checkUnreadNotifications() async { return _homeService.checkUnreadNotifications(); } }