import 'package:be_happy/domain/entities/certificate.dart'; import 'package:be_happy/domain/entities/payment_card.dart'; sealed class TopUpState { const TopUpState(); } class TopUpLoading extends TopUpState { const TopUpLoading(); } class TopUpLoaded extends TopUpState { final List certificates; final List cards; final Certificate? selectedTariff; final PaymentCard? selectedCard; final bool isAgreed; final bool isProcessingPayment; const TopUpLoaded({ this.certificates = const [], this.cards = const [], this.selectedTariff, this.selectedCard, this.isAgreed = false, this.isProcessingPayment = false, }); TopUpLoaded copyWith({ List? certificates, List? cards, Certificate? selectedTariff, PaymentCard? selectedCard, bool? isAgreed, bool? isProcessingPayment, }) { return TopUpLoaded( certificates: certificates ?? this.certificates, cards: cards ?? this.cards, selectedTariff: selectedTariff ?? this.selectedTariff, selectedCard: selectedCard ?? this.selectedCard, isAgreed: isAgreed ?? this.isAgreed, isProcessingPayment: isProcessingPayment ?? this.isProcessingPayment, ); } } class TopUpPaymentSuccess extends TopUpState { const TopUpPaymentSuccess(); } class TopUpPaymentFailure extends TopUpState { final String errorMessage; const TopUpPaymentFailure(this.errorMessage); }