import 'package:pshared/data/mapper/wallet/ui.dart'; import 'package:pshared/models/describable.dart'; import 'package:pshared/models/payment/wallet.dart'; import 'package:pshared/models/wallet/chain_asset.dart'; import 'package:pshared/service/wallet.dart' as shared_wallet_service; import 'package:pshared/utils/money.dart'; abstract class WalletsService { Future> getWallets(String organizationRef); Future getBalance(String organizationRef, String walletRef); Future create({ required String organizationRef, required Describable describable, required ChainAsset asset, required String? ownerRef, }); } class ApiWalletsService implements WalletsService { @override Future> getWallets(String organizationRef) async { final models = await shared_wallet_service.WalletService.list(organizationRef); return models.map((m) => m.toUi()).toList(); } @override Future getBalance(String organizationRef, String walletRef) async { final balance = await shared_wallet_service.WalletService.getBalance( organizationRef: organizationRef, walletRef: walletRef, ); return parseMoneyAmount(balance.available?.amount); } @override Future create({ required String organizationRef, required Describable describable, required ChainAsset asset, required String? ownerRef, }) => shared_wallet_service.WalletService.create( organizationRef: organizationRef, describable: describable, asset: asset, ownerRef: ownerRef, ); }