import 'dart:convert'; import 'package:tm_app/core/utils/result.dart'; import 'package:tm_app/data/services/model/feedback_response/feedback_response.dart'; import 'package:tm_app/data/services/model/tender_approvals_by_id_response/tender_approvals_by_id_response.dart'; import 'package:tm_app/data/services/model/tender_approvals_toggle_response/tender_approvals_toggle_response.dart'; import 'package:tm_app/data/services/model/tenders/tenders_response/tenders_response.dart'; import '../../core/network/network_manager.dart'; class TendersService { TendersService({required NetworkManager networkManager}) : _networkManager = networkManager; final NetworkManager _networkManager; Future> getTenders({ required int limit, required int offset, }) async { final result = await _networkManager.makeRequest( '/api/v1/tenders?limit=$limit&offset=$offset', method: 'GET', (json) => TendersResponse.fromJson(json), ); return result; } Future> getTenderFeedback({ required String tenderId, }) async { final result = await _networkManager.makeRequest( '/api/v1/feedback/tender/$tenderId', method: 'GET', (json) => FeedbackResponse.fromJson(json), ); return result; } Future> feedback({ required String tenderId, required String feedbackType, }) async { final data = jsonEncode({ 'feedback_type': feedbackType, 'tender_id': tenderId, }); final result = await _networkManager.makeRequest( '/api/v1/feedback', method: 'POST', (json) => FeedbackResponse.fromJson(json), data: data, ); return result; } Future> toggleApprovals({ required String tenderId, required String submissionMode, required String status, }) async { final data = jsonEncode({ 'tender_id': tenderId, 'submission_mode': submissionMode, 'status': status, }); final result = await _networkManager.makeRequest( '/api/v1/tender-approvals', method: 'POST', (json) => TenderApprovalsToggleResponse.fromJson(json), data: data, ); return result; } Future> getTenderApprovalsById({ required String tenderId, }) async { final result = await _networkManager.makeRequest( '/api/v1/tender-approvals/tender/$tenderId', method: 'GET', (json) => TenderApprovalsByIdResponse.fromJson(json), ); return result; } }