fee treatment added

This commit is contained in:
Stephan D
2026-02-24 16:39:08 +01:00
parent 2fe90347a8
commit 2e08ec9b9b
17 changed files with 162 additions and 30 deletions

View File

@@ -23,6 +23,9 @@ class PaymentIntentDTO {
@JsonKey(name: 'settlement_currency')
final String? settlementCurrency;
@JsonKey(name: "fee_treatment")
final String? feeTreatment;
final Map<String, String>? attributes;
final CustomerDTO? customer;
@@ -36,6 +39,7 @@ class PaymentIntentDTO {
this.settlementCurrency,
this.attributes,
this.customer,
this.feeTreatment,
});
factory PaymentIntentDTO.fromJson(Map<String, dynamic> json) => _$PaymentIntentDTOFromJson(json);

View File

@@ -5,6 +5,7 @@ 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':

View File

@@ -0,0 +1,26 @@
import 'package:pshared/models/payment/fees/treatment.dart';
FeeTreatment feeTreatmentFromValue(String? value) {
switch (value) {
case 'add_to_source':
return FeeTreatment.addToSource;
case 'deduct_from_destination':
return FeeTreatment.deductFromDestination;
case 'unspecified':
return FeeTreatment.unspecified;
default:
throw ArgumentError('Unknown FeeTreatment value: $value');
}
}
String feeTreatmentToValue(FeeTreatment value) {
switch (value) {
case FeeTreatment.addToSource:
return 'add_to_source';
case FeeTreatment.deductFromDestination:
return 'deduct_from_destination';
case FeeTreatment.unspecified:
return 'unspecified';
}
}

View File

@@ -1,4 +1,5 @@
import 'package:pshared/data/dto/payment/intent/payment.dart';
import 'package:pshared/data/mapper/payment/fees/treatment.dart';
import 'package:pshared/data/mapper/payment/payment.dart';
import 'package:pshared/data/mapper/payment/enums.dart';
import 'package:pshared/data/mapper/payment/intent/customer.dart';
@@ -18,6 +19,7 @@ extension PaymentIntentMapper on PaymentIntent {
settlementCurrency: settlementCurrency,
attributes: attributes,
customer: customer?.toDTO(),
feeTreatment: feeTreatmentToValue(feeTreatment),
);
}
@@ -32,5 +34,6 @@ extension PaymentIntentDTOMapper on PaymentIntentDTO {
settlementCurrency: settlementCurrency,
attributes: attributes,
customer: customer?.toDomain(),
feeTreatment: feeTreatmentFromValue(feeTreatment),
);
}