Files
be_happy_public/lib/presentation/state/susbcription_details_state.dart
2026-07-08 13:09:20 +03:00

52 lines
1.4 KiB
Dart

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<PaymentCard> 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,
);
}
}