Files
be_happy_public/lib/presentation/state/susbcription_details_state.dart
2026-05-29 11:40:55 +03:00

43 lines
1.3 KiB
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 bool isAgreed;
final bool isAlreadyPurchased; // ✅ Куплена ли эта подписка сейчас
final bool isSuccess; // ✅ Сигнал для навигатора назад
DetailsContentState({
required this.subscription,
required this.selectedPeriod,
this.isAgreed = false,
this.isAlreadyPurchased = false,
this.isSuccess = false,
});
DetailsContentState copyWith({
SubscriptionPeriod? selectedPeriod,
bool? isAgreed,
bool? isAlreadyPurchased,
bool? isSuccess,
}) {
return DetailsContentState(
subscription: this.subscription,
selectedPeriod: selectedPeriod ?? this.selectedPeriod,
isAgreed: isAgreed ?? this.isAgreed,
isAlreadyPurchased: isAlreadyPurchased ?? this.isAlreadyPurchased,
isSuccess: isSuccess ?? this.isSuccess,
);
}
}