fee treatment added
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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':
|
||||
|
||||
26
frontend/pshared/lib/data/mapper/payment/fees/treatment.dart
Normal file
26
frontend/pshared/lib/data/mapper/payment/fees/treatment.dart
Normal 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';
|
||||
}
|
||||
}
|
||||
@@ -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),
|
||||
);
|
||||
}
|
||||
|
||||
5
frontend/pshared/lib/models/payment/fees/treatment.dart
Normal file
5
frontend/pshared/lib/models/payment/fees/treatment.dart
Normal file
@@ -0,0 +1,5 @@
|
||||
enum FeeTreatment {
|
||||
addToSource,
|
||||
deductFromDestination,
|
||||
unspecified,
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
import 'package:pshared/models/payment/fees/treatment.dart';
|
||||
import 'package:pshared/models/payment/fx/intent.dart';
|
||||
import 'package:pshared/models/payment/kind.dart';
|
||||
import 'package:pshared/models/payment/customer.dart';
|
||||
@@ -12,6 +13,7 @@ class PaymentIntent {
|
||||
final PaymentMethodData? destination;
|
||||
final Money? amount;
|
||||
final FxIntent? fx;
|
||||
final FeeTreatment feeTreatment;
|
||||
final SettlementMode settlementMode;
|
||||
final String? settlementCurrency;
|
||||
final Map<String, String>? attributes;
|
||||
@@ -27,5 +29,6 @@ class PaymentIntent {
|
||||
this.settlementCurrency,
|
||||
this.attributes,
|
||||
this.customer,
|
||||
required this.feeTreatment,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:pshared/controllers/balance_mask/wallets.dart';
|
||||
import 'package:pshared/models/payment/asset.dart';
|
||||
import 'package:pshared/models/payment/chain_network.dart';
|
||||
import 'package:pshared/models/payment/customer.dart';
|
||||
import 'package:pshared/models/payment/fees/treatment.dart';
|
||||
import 'package:pshared/models/payment/kind.dart';
|
||||
import 'package:pshared/models/payment/methods/card.dart';
|
||||
import 'package:pshared/models/payment/methods/crypto_address.dart';
|
||||
@@ -63,7 +64,8 @@ class QuotationIntentBuilder {
|
||||
)
|
||||
),
|
||||
fx: fxIntent,
|
||||
settlementMode: payment.payerCoversFee ? SettlementMode.fixReceived : SettlementMode.fixSource,
|
||||
feeTreatment: payment.payerCoversFee ? FeeTreatment.addToSource : FeeTreatment.deductFromDestination,
|
||||
settlementMode: SettlementMode.fixSource,
|
||||
settlementCurrency: FxIntentHelper.resolveSettlementCurrency(
|
||||
amount: amount,
|
||||
fx: fxIntent,
|
||||
|
||||
Reference in New Issue
Block a user