import 'package:be_happy/domain/entities/payment_card.dart'; import 'package:be_happy/domain/entities/subscription.dart'; import '../../domain/entities/subscription_period.dart'; abstract class SubscriptionDetailsState {} class DetailsLoading extends SubscriptionDetailsState {} class DetailsError extends SubscriptionDetailsState { final String message; DetailsError(this.message); } class DetailsContentState extends SubscriptionDetailsState { final Subscription subscription; final SubscriptionPeriod selectedPeriod; final List cards; final PaymentCard selectedCard; final bool isAgreed; final bool isAlreadyPurchased; final bool isSuccess; DetailsContentState({ required this.subscription, required this.selectedPeriod, required this.selectedCard, this.cards = const [], this.isAgreed = false, this.isAlreadyPurchased = false, this.isSuccess = false, }); DetailsContentState copyWith({ SubscriptionPeriod? selectedPeriod, PaymentCard? selectedCard, bool? isAgreed, bool? isAlreadyPurchased, bool? isSuccess, }) { return DetailsContentState( subscription: this.subscription, selectedPeriod: selectedPeriod ?? this.selectedPeriod, selectedCard: selectedCard ?? this.selectedCard, isAgreed: isAgreed ?? this.isAgreed, isAlreadyPurchased: isAlreadyPurchased ?? this.isAlreadyPurchased, isSuccess: isSuccess ?? this.isSuccess, ); } }