import 'package:didvan/constants/assets.dart'; import 'package:didvan/models/enums.dart'; import 'package:didvan/models/radar_category.dart'; import 'package:didvan/models/radar_overview/radar_overview.dart'; import 'package:didvan/providers/core_provider.dart'; import 'package:didvan/services/network/request.dart'; import 'package:didvan/services/network/request_helper.dart'; class RadarState extends CoreProvier { bool isFiltering = false; String? _lastSearch; String? startDate; String? endDate; final List selectedCats = []; final List radars = []; void resetFilters() { startDate = null; endDate = null; selectedCats.clear(); } Future getRadarOverviews({ required int page, String? search, bool filter = false, }) async { if (search != null && search.isNotEmpty) { if (_lastSearch == search && !filter) { return; } isFiltering = true; _lastSearch = search; } else { isFiltering = false; } if (filter) { isFiltering = true; } appState = AppState.busy; final RequestService service = RequestService( RequestHelper.getRadarOverviews( page: page, startDate: startDate?.split(' ').first, endDate: endDate?.split(' ').first, search: search, categories: selectedCats.map((e) => e.id).toList(), ), ); await service.httpGet(); if (service.isSuccess) { for (var i = 0; i < service.result['radars'].length; i++) { radars.add(RadarOverview.fromJson(service.result['radars'][i])); } appState = AppState.idle; return; } appState = AppState.failed; } final List categories = [ RadarCategory( id: 1, title: 'اقتصادی', asset: Assets.economicCategoryIcon, ), RadarCategory( id: 2, title: 'سیاسی', asset: Assets.politicalCategoryIcon, ), RadarCategory( id: 3, title: 'فناوری', asset: Assets.techCategoryIcon, ), RadarCategory( id: 4, title: 'کسب و کار', asset: Assets.businessCategoryIcon, ), RadarCategory( id: 5, title: 'زیست محیطی', asset: Assets.enviromentalCategoryIcon, ), RadarCategory( id: 6, title: 'اجتماعی', asset: Assets.socialCategoryIcon, ), ]; }