import 'package:flutter_bloc/flutter_bloc.dart'; import '../../data/models/super_admin_models.dart'; import '../../data/repositories/super_admin_repository.dart'; abstract class TreasuryState { const TreasuryState(); } class TreasuryInitial extends TreasuryState {} class TreasuryLoading extends TreasuryState {} class TreasuryLoaded extends TreasuryState { final List queue; final double? totalTreasuryBalanceJod; const TreasuryLoaded({ required this.queue, required this.totalTreasuryBalanceJod, }); TreasuryLoaded copyWith({ List? queue, double? totalTreasuryBalanceJod, }) { return TreasuryLoaded( queue: queue ?? this.queue, totalTreasuryBalanceJod: totalTreasuryBalanceJod ?? this.totalTreasuryBalanceJod, ); } } class TreasuryCubit extends Cubit { final SuperAdminRepository repository; TreasuryCubit({required this.repository}) : super(TreasuryInitial()); Future loadTreasury() async { emit(TreasuryLoading()); try { final results = await Future.wait([repository.getPayoutQueue(), repository.getMacroTelemetry()]); final queue = results[0] as List; final telemetry = results[1] as MacroTelemetryModel; emit(TreasuryLoaded( queue: queue, totalTreasuryBalanceJod: telemetry.treasuryBalanceJod, )); } catch (error) { emit(TreasuryError('تعذر تحميل بيانات الخزينة: $error')); } } } class TreasuryError extends TreasuryState { final String message; const TreasuryError(this.message); }