payment quotation v2 + payment orchestration v2 draft

This commit is contained in:
Stephan D
2026-02-24 13:01:35 +01:00
parent 0646f55189
commit 6444813f38
289 changed files with 17005 additions and 16065 deletions

View File

@@ -5,7 +5,6 @@ import 'package:pshared/models/payment/kind.dart';
import 'package:pshared/models/payment/type.dart';
import 'package:pshared/models/payment/settlement_mode.dart';
PaymentKind paymentKindFromValue(String? value) {
switch (value) {
case 'payout':
@@ -166,6 +165,7 @@ PaymentType endpointTypeFromValue(String? value) {
case 'managedWallet':
case 'managed_wallet':
return PaymentType.managedWallet;
case 'cryptoAddress':
case 'externalChain':
case 'external_chain':
return PaymentType.externalChain;
@@ -193,15 +193,15 @@ String endpointTypeToValue(PaymentType type) {
case PaymentType.ledger:
return 'ledger';
case PaymentType.managedWallet:
return 'managed_wallet';
return 'managedWallet';
case PaymentType.externalChain:
return 'external_chain';
return 'cryptoAddress';
case PaymentType.card:
return 'card';
case PaymentType.cardToken:
return 'card';
return 'cardToken';
case PaymentType.bankAccount:
return 'bank_account';
return 'bankAccount';
case PaymentType.iban:
return 'iban';
case PaymentType.wallet:

View File

@@ -1,30 +1,31 @@
import 'package:pshared/data/dto/payment/payment.dart';
import 'package:pshared/data/mapper/payment/payment_quote.dart';
import 'package:pshared/models/payment/payment.dart';
import 'package:pshared/models/payment/state.dart';
extension PaymentDTOMapper on PaymentDTO {
Payment toDomain() => Payment(
paymentRef: paymentRef,
idempotencyKey: idempotencyKey,
state: state,
failureCode: failureCode,
failureReason: failureReason,
lastQuote: lastQuote?.toDomain(),
metadata: metadata,
createdAt: createdAt == null ? null : DateTime.tryParse(createdAt!),
);
paymentRef: paymentRef,
idempotencyKey: idempotencyKey,
state: state,
orchestrationState: paymentOrchestrationStateFromValue(state),
failureCode: failureCode,
failureReason: failureReason,
lastQuote: lastQuote?.toDomain(),
metadata: metadata,
createdAt: createdAt == null ? null : DateTime.tryParse(createdAt!),
);
}
extension PaymentMapper on Payment {
PaymentDTO toDTO() => PaymentDTO(
paymentRef: paymentRef,
idempotencyKey: idempotencyKey,
state: state,
failureCode: failureCode,
failureReason: failureReason,
lastQuote: lastQuote?.toDTO(),
metadata: metadata,
createdAt: createdAt?.toUtc().toIso8601String(),
);
paymentRef: paymentRef,
idempotencyKey: idempotencyKey,
state: state ?? paymentOrchestrationStateToValue(orchestrationState),
failureCode: failureCode,
failureReason: failureReason,
lastQuote: lastQuote?.toDTO(),
metadata: metadata,
createdAt: createdAt?.toUtc().toIso8601String(),
);
}