import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:flux/core/blocs/session/session_bloc.dart'; import 'package:flux/features/store/data/store_repository.dart'; import 'package:flux/features/store/models/store_model.dart'; import 'package:get_it/get_it.dart'; part 'store_events.dart'; part 'store_state.dart'; class StoreBloc extends Bloc { final StoreRepository _repository = GetIt.I(); final SessionBloc _sessionBloc; StoreBloc(this._sessionBloc) : super(const StoreState(stores: [])) { on(_onCreateStore); on(_onLoadStores); } Future _onCreateStore( CreateStoreRequested event, Emitter emit, ) async { emit(state.copyWith(status: StoreStatus.loading)); try { await _repository.createStore(event.store); emit(state.copyWith(status: StoreStatus.success)); } catch (e) { emit( state.copyWith(status: StoreStatus.failure, errorMessage: e.toString()), ); } } Future _onLoadStores( LoadStoresRequested event, Emitter emit, ) async { emit(state.copyWith(status: StoreStatus.loading)); try { final stores = await _repository.getStoresByCompany( _sessionBloc.state.company!.id, ); emit( state.copyWith( status: StoreStatus.success, stores: stores, // Assicurati di avere 'stores' nello StoreState ), ); } catch (e) { emit( state.copyWith(status: StoreStatus.failure, errorMessage: e.toString()), ); } } }