53 lines
1.2 KiB
Dart
53 lines
1.2 KiB
Dart
import 'package:equatable/equatable.dart';
|
|
|
|
abstract class MembershipState extends Equatable {
|
|
const MembershipState();
|
|
|
|
@override
|
|
List<Object?> get props => [];
|
|
}
|
|
|
|
class MembershipInitial extends MembershipState {}
|
|
|
|
class MembershipLoading extends MembershipState {}
|
|
|
|
class MembershipLoaded extends MembershipState {
|
|
final Map<String, dynamic> cardData;
|
|
final String? dynamicQrToken;
|
|
final int? qrValidUntil;
|
|
|
|
const MembershipLoaded({
|
|
required this.cardData,
|
|
this.dynamicQrToken,
|
|
this.qrValidUntil,
|
|
});
|
|
|
|
bool get isActive => cardData['status'] == 'ACTIVE';
|
|
|
|
MembershipLoaded copyWith({
|
|
Map<String, dynamic>? cardData,
|
|
String? dynamicQrToken,
|
|
int? qrValidUntil,
|
|
}) {
|
|
return MembershipLoaded(
|
|
cardData: cardData ?? this.cardData,
|
|
dynamicQrToken: dynamicQrToken ?? this.dynamicQrToken,
|
|
qrValidUntil: qrValidUntil ?? this.qrValidUntil,
|
|
);
|
|
}
|
|
|
|
@override
|
|
List<Object?> get props => [cardData, dynamicQrToken, qrValidUntil];
|
|
}
|
|
|
|
class MembershipNotSubscribed extends MembershipState {}
|
|
|
|
class MembershipFailure extends MembershipState {
|
|
final String message;
|
|
|
|
const MembershipFailure(this.message);
|
|
|
|
@override
|
|
List<Object?> get props => [message];
|
|
}
|