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; 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, ); final amount = balance.available?.amount; return amount == null ? 0 : double.tryParse(amount) ?? 0; } @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, ); }