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