import 'dart:async'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:finlytic_app/features/asset_detail/repositories/asset_repository.dart'; import 'asset_detail_event.dart'; import 'asset_detail_state.dart'; class AssetDetailBloc extends Bloc { final AssetRepository repository; AssetDetailBloc({required this.repository}) : super(AssetDetailInitial()) { on(_onLoadAssetData); on(_onForceRefreshAssetData); } Future _onLoadAssetData(LoadAssetData event, Emitter emit) async { emit(AssetDetailLoading()); try { final results = await Future.wait([ repository.getFundamentalData(event.symbol), repository.getTechnicalAnalysis(event.symbol), ]); emit(AssetDetailLoaded( fundamentalData: results[0] as dynamic, technicalAnalysis: results[1] as dynamic, )); } catch (e) { emit(AssetDetailError("Fehler beim Laden der Asset-Daten.")); } } Future _onForceRefreshAssetData(ForceRefreshAssetData event, Emitter emit) async { try { await repository.forceRefreshFundamentalData(event.symbol); // Optional: re-load after a delay, or rely on MQTT/SignalR to push the new data. } catch (e) { // ignore } } }