+ quotation provider

This commit is contained in:
Stephan D
2025-12-11 01:13:13 +01:00
parent bdf766075e
commit a4481fb63d
102 changed files with 2242 additions and 246 deletions

View File

@@ -2,17 +2,25 @@ import 'package:pshared/models/payment/methods/data.dart';
import 'package:pshared/models/payment/type.dart';
class CardPaymentMethod extends PaymentMethodData {
class CardPaymentMethod implements PaymentMethodData {
@override
final PaymentType type = PaymentType.card;
final String pan;
final String firstName;
final String lastName;
final int? expMonth;
final int? expYear;
final String? country;
@override
final Map<String, String>? metadata;
CardPaymentMethod({
const CardPaymentMethod({
required this.pan,
this.expMonth,
this.expYear,
required this.firstName,
required this.lastName,
this.country,
this.metadata,
});
}
}

View File

@@ -0,0 +1,18 @@
import 'package:pshared/models/payment/methods/data.dart';
import 'package:pshared/models/payment/type.dart';
class CardTokenPaymentMethod implements PaymentMethodData {
@override
final PaymentType type = PaymentType.cardToken;
final String token;
final String maskedPan;
@override
final Map<String, String>? metadata;
const CardTokenPaymentMethod({
required this.token,
required this.maskedPan,
this.metadata,
});
}

View File

@@ -1,18 +1,21 @@
import 'package:pshared/models/payment/methods/data.dart';
import 'package:pshared/models/payment/asset.dart';
import 'package:pshared/models/payment/type.dart';
class CryptoAddressPaymentMethod extends PaymentMethodData {
class CryptoAddressPaymentMethod implements PaymentMethodData {
@override
final PaymentType type = PaymentType.cryptoAddress;
final PaymentType type = PaymentType.externalChain;
final PaymentAsset? asset;
final String address;
final String network;
final String? destinationTag;
final String? memo;
@override
final Map<String, String>? metadata;
CryptoAddressPaymentMethod({
const CryptoAddressPaymentMethod({
this.asset,
required this.address,
required this.network,
this.destinationTag,
this.memo,
this.metadata,
});
}

View File

@@ -3,6 +3,7 @@ import 'package:pshared/models/payment/type.dart';
abstract class PaymentMethodData {
PaymentType get type;
Map<String, String>? get metadata;
}
typedef MethodMap = Map<PaymentType, PaymentMethodData?>;

View File

@@ -2,7 +2,7 @@ import 'package:pshared/models/payment/methods/data.dart';
import 'package:pshared/models/payment/type.dart';
class IbanPaymentMethod extends PaymentMethodData {
class IbanPaymentMethod implements PaymentMethodData {
@override
final PaymentType type = PaymentType.iban;
@@ -10,11 +10,14 @@ class IbanPaymentMethod extends PaymentMethodData {
final String accountHolder; // Full name of the recipient
final String? bic; // Optional: for cross-border transfers
final String? bankName; // Optional: for UI clarity
@override
final Map<String, String>? metadata;
IbanPaymentMethod({
const IbanPaymentMethod({
required this.iban,
required this.accountHolder,
this.bic,
this.bankName,
this.metadata,
});
}

View File

@@ -0,0 +1,18 @@
import 'package:pshared/models/payment/methods/data.dart';
import 'package:pshared/models/payment/type.dart';
class LedgerPaymentMethod implements PaymentMethodData {
@override
final PaymentType type = PaymentType.ledger;
final String ledgerAccountRef;
final String? contraLedgerAccountRef;
@override
final Map<String, String>? metadata;
const LedgerPaymentMethod({
required this.ledgerAccountRef,
this.contraLedgerAccountRef,
this.metadata,
});
}

View File

@@ -0,0 +1,19 @@
import 'package:pshared/models/payment/methods/data.dart';
import 'package:pshared/models/payment/asset.dart';
import 'package:pshared/models/payment/type.dart';
class ManagedWalletPaymentMethod implements PaymentMethodData {
@override
final PaymentType type = PaymentType.managedWallet;
final String managedWalletRef;
final PaymentAsset? asset;
@override
final Map<String, String>? metadata;
const ManagedWalletPaymentMethod({
required this.managedWalletRef,
this.asset,
this.metadata,
});
}

View File

@@ -2,7 +2,7 @@ import 'package:pshared/models/payment/methods/data.dart';
import 'package:pshared/models/payment/type.dart';
class RussianBankAccountPaymentMethod extends PaymentMethodData {
class RussianBankAccountPaymentMethod implements PaymentMethodData {
@override
final PaymentType type = PaymentType.bankAccount;
@@ -13,8 +13,10 @@ class RussianBankAccountPaymentMethod extends PaymentMethodData {
final String bik;
final String accountNumber;
final String correspondentAccount;
@override
final Map<String, String>? metadata;
RussianBankAccountPaymentMethod({
const RussianBankAccountPaymentMethod({
required this.recipientName,
required this.inn,
required this.kpp,
@@ -22,5 +24,6 @@ class RussianBankAccountPaymentMethod extends PaymentMethodData {
required this.bik,
required this.accountNumber,
required this.correspondentAccount,
this.metadata,
});
}

View File

@@ -2,11 +2,14 @@ import 'package:pshared/models/payment/methods/data.dart';
import 'package:pshared/models/payment/type.dart';
class WalletPaymentMethod extends PaymentMethodData {
class WalletPaymentMethod implements PaymentMethodData {
@override
final PaymentType type = PaymentType.wallet;
final String walletId;
WalletPaymentMethod({required this.walletId});
@override
final Map<String, String>? metadata;
WalletPaymentMethod({required this.walletId, this.metadata});
}