// public_provider.dart import 'dart:developer'; import 'package:flutter/foundation.dart'; import '../models/OfferModel.dart'; import '../services/public_service.dart'; class PublicProvider extends ChangeNotifier { static final PublicProvider _publicProvider = PublicProvider._internal(); factory PublicProvider() { return _publicProvider; } final PublicService _service = PublicService(); bool _isLoading = false; bool _isLoadingOffer = false; bool _isLoadingRideOption = false; List _offers = []; bool get isLoading => _isLoading; bool get isLoadingOffer => _isLoadingOffer; bool get isLoadingRideOption => _isLoadingRideOption; List get offers => _offers; Future fetchOffer() async { _isLoadingOffer = true; notifyListeners(); try { final apiResponse = await _service.getAllOffer("BANNER"); if (apiResponse.statusCode == 200 || apiResponse.statusCode == 201) { _offers = apiResponse.data ?? []; } } catch (e, stacktrace) { log('Error in fetchOffer : $e'); log('Stacktrace: $stacktrace'); } finally { _isLoadingOffer = false; notifyListeners(); } } PublicProvider._internal(); } final PublicProviderSingleton = PublicProvider();