import 'package:flutter/material.dart'; import 'package:tm_app/core/utils/result.dart'; import 'package:tm_app/data/services/model/home/home_request/home_request_model.dart'; import 'package:tm_app/data/services/model/recommended_tenders_response/recommended_tenders_response.dart'; import '../data/repositories/home_repository.dart'; import '../data/services/model/home/home_response/home_response_model.dart'; class HomeViewModel with ChangeNotifier { final HomeRepository _homeRepository; HomeViewModel({required HomeRepository homeRepository}) : _homeRepository = homeRepository { getHome(homeRequestModel: HomeRequestModel(id: '1')); getHomeRecommandTenders(); } bool _isLoading = false; String? _errorMessage; HomeResponseModel? _homeResponse; bool get isLoading => _isLoading; String? get errorMessage => _errorMessage; HomeResponseModel? get homeResponse => _homeResponse; RecommendedTendersResponse? _recommendedTendersResponse; RecommendedTendersResponse? get recommendedTendersResponse => _recommendedTendersResponse; Future getHome({HomeRequestModel? homeRequestModel}) async { _isLoading = true; _errorMessage = null; notifyListeners(); final result = await _homeRepository.getHome( homeRequestModel: homeRequestModel, ); switch (result) { case Ok(): _homeResponse = result.value; break; case Error(): _errorMessage = result.error.toString(); break; } _isLoading = false; notifyListeners(); } Future getHomeRecommandTenders() async { _isLoading = true; _errorMessage = null; notifyListeners(); final result = await _homeRepository.getHomeRecommendedTenders(); switch (result) { case Ok(): _recommendedTendersResponse = result.value; break; case Error(): _errorMessage = result.error.toString(); break; } _isLoading = false; notifyListeners(); } }