Quotation

This commit is contained in:
Arseni
2026-01-21 21:52:36 +03:00
parent 1e5ff51e07
commit 6284625977
40 changed files with 1085 additions and 346 deletions

View File

@@ -1,4 +1,4 @@
import 'package:pshared/models/payment/quote.dart';
import 'package:pshared/models/payment/quote/quote.dart';
class Payment {

View File

@@ -1,52 +0,0 @@
import 'package:pshared/api/responses/payment/quotation.dart';
import 'package:pshared/models/payment/fees/line.dart';
import 'package:pshared/models/payment/fx/quote.dart';
import 'package:pshared/models/payment/money.dart';
import 'package:pshared/models/payment/fees/network.dart';
class PaymentQuote {
final String? quoteRef;
final Money? debitAmount;
final Money? expectedSettlementAmount;
final Money? expectedFeeTotal;
final List<FeeLine>? feeLines;
final NetworkFee? networkFee;
final FxQuote? fxQuote;
const PaymentQuote({
required this.quoteRef,
required this.debitAmount,
required this.expectedSettlementAmount,
required this.expectedFeeTotal,
required this.feeLines,
required this.networkFee,
required this.fxQuote,
});
}
class PaymentQuoteX extends PaymentQuote {
final String idempotencyKey;
const PaymentQuoteX({
required super.quoteRef,
required super.debitAmount,
required super.expectedSettlementAmount,
required super.expectedFeeTotal,
required super.feeLines,
required super.networkFee,
required super.fxQuote,
required this.idempotencyKey,
});
factory PaymentQuoteX.build({required PaymentQuote quote, required String idempotencyKey}) => PaymentQuoteX(
quoteRef: quote.quoteRef,
debitAmount: quote.debitAmount,
expectedSettlementAmount: quote.expectedSettlementAmount,
expectedFeeTotal: quote.expectedFeeTotal,
feeLines: quote.feeLines,
networkFee: quote.networkFee,
fxQuote: quote.fxQuote,
idempotencyKey: idempotencyKey,
);
}

View File

@@ -0,0 +1,27 @@
import 'package:pshared/models/payment/fees/line.dart';
import 'package:pshared/models/payment/fx/quote.dart';
import 'package:pshared/models/payment/money.dart';
import 'package:pshared/models/payment/fees/network.dart';
class PaymentQuote {
final String? quoteRef;
final String? idempotencyKey;
final Money? debitAmount;
final Money? expectedSettlementAmount;
final Money? expectedFeeTotal;
final List<FeeLine>? feeLines;
final NetworkFee? networkFee;
final FxQuote? fxQuote;
const PaymentQuote({
required this.quoteRef,
required this.idempotencyKey,
required this.debitAmount,
required this.expectedSettlementAmount,
required this.expectedFeeTotal,
required this.feeLines,
required this.networkFee,
required this.fxQuote,
});
}

View File

@@ -1,10 +1,9 @@
import 'package:pshared/models/payment/quote.dart';
import 'package:pshared/models/payment/quote_aggregate.dart';
import 'package:pshared/models/payment/quote/quote.dart';
import 'package:pshared/models/payment/quote/aggregate.dart';
class PaymentQuotes {
final String quoteRef;
final String idempotencyKey;
final PaymentQuoteAggregate? aggregate;
final List<PaymentQuote>? quotes;
@@ -12,6 +11,5 @@ class PaymentQuotes {
required this.quoteRef,
required this.aggregate,
required this.quotes,
required this.idempotencyKey,
});
}

View File

@@ -0,0 +1 @@
enum QuoteStatusType { loading, error, missing, expired, active }