import 'package:flutter/material.dart'; import 'package:tm_app/core/utils/result.dart'; import 'package:tm_app/data/repositories/tender_detail_repository.dart'; import 'package:tm_app/data/services/model/tender_detail_request/tender_detail_request.dart'; import 'package:tm_app/data/services/model/tender_detail_response/tender_detail_response_model.dart'; class TenderDetailViewModel with ChangeNotifier { final TenderDetailRepository _tenderDetailRepository; TenderDetailViewModel({ required TenderDetailRepository tenderDetailRepository, }) : _tenderDetailRepository = tenderDetailRepository { WidgetsBinding.instance.addPostFrameCallback((_) { getTenderDetail(id: 'JNDFKMDV-100JF'); }); } bool _isLoading = false; String? _errorMessage; TenderDetailResponseModel? _tenderDetail; bool get isLoading => _isLoading; String? get errorMessage => _errorMessage; TenderDetailResponseModel? get tenderDetail => _tenderDetail; Future getTenderDetail({required String id}) async { _isLoading = true; _errorMessage = null; notifyListeners(); final request = TenderDetailRequest(id: id); final result = await _tenderDetailRepository.getTenderDetail( request: request, ); switch (result) { case Ok(): _tenderDetail = result.value; break; case Error(): _errorMessage = result.error.toString(); break; } _isLoading = false; notifyListeners(); } }