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? 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, ); }