82 lines
2.3 KiB
Dart
82 lines
2.3 KiB
Dart
enum PaymentOrchestrationState {
|
|
created,
|
|
executing,
|
|
needsAttention,
|
|
settled,
|
|
failed,
|
|
unspecified,
|
|
}
|
|
|
|
PaymentOrchestrationState paymentOrchestrationStateFromValue(String? value) {
|
|
final normalized = _normalizePaymentState(value);
|
|
switch (normalized) {
|
|
case 'CREATED':
|
|
case 'ACCEPTED':
|
|
return PaymentOrchestrationState.created;
|
|
case 'EXECUTING':
|
|
case 'PROCESSING':
|
|
case 'FUNDS_RESERVED':
|
|
case 'SUBMITTED':
|
|
return PaymentOrchestrationState.executing;
|
|
case 'NEEDS_ATTENTION':
|
|
return PaymentOrchestrationState.needsAttention;
|
|
case 'SETTLED':
|
|
case 'SUCCESS':
|
|
return PaymentOrchestrationState.settled;
|
|
case 'FAILED':
|
|
case 'CANCELLED':
|
|
return PaymentOrchestrationState.failed;
|
|
default:
|
|
return PaymentOrchestrationState.unspecified;
|
|
}
|
|
}
|
|
|
|
String paymentOrchestrationStateToValue(PaymentOrchestrationState state) {
|
|
switch (state) {
|
|
case PaymentOrchestrationState.created:
|
|
return 'orchestration_state_created';
|
|
case PaymentOrchestrationState.executing:
|
|
return 'orchestration_state_executing';
|
|
case PaymentOrchestrationState.needsAttention:
|
|
return 'orchestration_state_needs_attention';
|
|
case PaymentOrchestrationState.settled:
|
|
return 'orchestration_state_settled';
|
|
case PaymentOrchestrationState.failed:
|
|
return 'orchestration_state_failed';
|
|
case PaymentOrchestrationState.unspecified:
|
|
return 'orchestration_state_unspecified';
|
|
}
|
|
}
|
|
|
|
extension PaymentOrchestrationStateX on PaymentOrchestrationState {
|
|
bool get isTerminal {
|
|
switch (this) {
|
|
case PaymentOrchestrationState.settled:
|
|
case PaymentOrchestrationState.failed:
|
|
return true;
|
|
case PaymentOrchestrationState.created:
|
|
case PaymentOrchestrationState.executing:
|
|
case PaymentOrchestrationState.needsAttention:
|
|
case PaymentOrchestrationState.unspecified:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
bool get isPending => !isTerminal;
|
|
}
|
|
|
|
String _normalizePaymentState(String? value) {
|
|
final trimmed = (value ?? '').trim().toUpperCase();
|
|
if (trimmed.isEmpty) {
|
|
return '';
|
|
}
|
|
|
|
if (trimmed.startsWith('ORCHESTRATION_STATE_')) {
|
|
return trimmed.substring('ORCHESTRATION_STATE_'.length);
|
|
}
|
|
if (trimmed.startsWith('PAYMENT_STATE_')) {
|
|
return trimmed.substring('PAYMENT_STATE_'.length);
|
|
}
|
|
return trimmed;
|
|
}
|