Files
be_happy_public/lib/presentation/state/add_card_state.dart
2026-05-12 12:02:40 +03:00

45 lines
1.1 KiB
Dart

enum AddCardStatus { initial, loading, success, failure }
class AddCardState {
final AddCardStatus status;
final String cardNumber;
final String expiryDate;
final String cvv;
final String cardHolder;
final String errorMessage;
const AddCardState({
this.status = AddCardStatus.initial,
this.cardNumber = '',
this.expiryDate = '',
this.cvv = '',
this.cardHolder = '',
this.errorMessage = '',
});
AddCardState copyWith({
AddCardStatus? status,
String? cardNumber,
String? expiryDate,
String? cvv,
String? cardHolder,
String? errorMessage,
}) {
return AddCardState(
status: status ?? this.status,
cardNumber: cardNumber ?? this.cardNumber,
expiryDate: expiryDate ?? this.expiryDate,
cvv: cvv ?? this.cvv,
cardHolder: cardHolder ?? this.cardHolder,
errorMessage: errorMessage ?? this.errorMessage,
);
}
bool get isFormValid {
final cleanCardNumber = cardNumber.replaceAll(' ', '');
return cleanCardNumber.length == 16 &&
expiryDate.length == 5 &&
cvv.length == 3 &&
cardHolder.trim().isNotEmpty;
}
}