import 'package:equatable/equatable.dart'; import '../../domain/entities/fine.dart'; import '../../domain/entities/payment_card.dart'; enum FinePaymentStatus { initial, loading, success, failure } class FinePaymentState extends Equatable { final FinePaymentStatus status; final Fine? fine; final PaymentCard? selectedCard; final bool useBalance; final double userBalance; final String? errorMessage; final bool paymentCompleted; const FinePaymentState({ this.status = FinePaymentStatus.initial, this.fine, this.selectedCard, this.useBalance = false, this.userBalance = 0.0, this.errorMessage, this.paymentCompleted = false, }); FinePaymentState copyWith({ FinePaymentStatus? status, Fine? fine, PaymentCard? selectedCard, bool? useBalance, double? userBalance, String? errorMessage, bool? paymentCompleted, }) { return FinePaymentState( status: status ?? this.status, fine: fine ?? this.fine, selectedCard: selectedCard ?? this.selectedCard, useBalance: useBalance ?? this.useBalance, userBalance: userBalance ?? this.userBalance, errorMessage: errorMessage, paymentCompleted: paymentCompleted ?? this.paymentCompleted, ); } @override List get props => [ status, fine, selectedCard, useBalance, userBalance, errorMessage, paymentCompleted, ]; }