WalletNavigation.kt (3592B)
1 /* 2 * This file is part of GNU Taler 3 * (C) 2026 Taler Systems S.A. 4 * 5 * GNU Taler is free software; you can redistribute it and/or modify it under the 6 * terms of the GNU General Public License as published by the Free Software 7 * Foundation; either version 3, or (at your option) any later version. 8 * 9 * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY 10 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 11 * A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License along with 14 * GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> 15 */ 16 17 package net.taler.wallet 18 19 import kotlinx.serialization.Serializable 20 21 @Serializable 22 sealed interface WalletDestination { 23 @Serializable 24 data object Main : WalletDestination 25 26 @Serializable 27 data class HandleUri(val uri: String) : WalletDestination 28 29 @Serializable 30 data class PaytoUri(val uri: String) : WalletDestination 31 32 @Serializable 33 data class PromptWithdraw( 34 val withdrawUri: String? = null, 35 val withdrawExchangeUri: String? = null, 36 val exchangeBaseUrl: String? = null, 37 val amount: String? = null, 38 val editableCurrency: Boolean = true 39 ) : WalletDestination 40 41 @Serializable 42 data object ExchangeList : WalletDestination 43 44 @Serializable 45 data class BankAccounts(val currency: String? = null) : WalletDestination 46 47 @Serializable 48 data class AddBankAccount(val bankAccountId: String? = null) : WalletDestination 49 50 @Serializable 51 data object DiscountList : WalletDestination 52 53 @Serializable 54 data object PassList : WalletDestination 55 56 @Serializable 57 data class DonauStatement(val host: String) : WalletDestination 58 59 @Serializable 60 data class SetDonau(val donauBaseUrl: String? = null) : WalletDestination 61 62 @Serializable 63 data object OutgoingPush : WalletDestination 64 65 @Serializable 66 data object OutgoingPull : WalletDestination 67 68 @Serializable 69 data class Deposit( 70 val amount: String? = null, 71 val receiverName: String? = null, 72 val receiverPostalCode: String? = null, 73 val receiverTown: String? = null, 74 val IBAN: String? = null 75 ) : WalletDestination 76 77 @Serializable 78 data object PromptPullPayment : WalletDestination 79 80 @Serializable 81 data object PromptPushPayment : WalletDestination 82 83 @Serializable 84 data class PromptPayTemplate(val uri: String) : WalletDestination 85 86 @Serializable 87 data class WireTransferDetails( 88 val showQrCodes: Boolean, 89 ) : WalletDestination 90 91 @Serializable 92 data class ReviewExchangeTOS( 93 val exchangeBaseUrl: String, 94 val readOnly: Boolean = false 95 ) : WalletDestination 96 97 @Serializable 98 data object ExchangeShopping : WalletDestination 99 100 @Serializable 101 data object PerformanceStats : WalletDestination 102 103 // Transaction Details 104 @Serializable 105 data object TransactionWithdrawal : WalletDestination 106 @Serializable 107 data object TransactionPayment : WalletDestination 108 @Serializable 109 data object TransactionRefund : WalletDestination 110 @Serializable 111 data object TransactionRefresh : WalletDestination 112 @Serializable 113 data object TransactionDeposit : WalletDestination 114 @Serializable 115 data object TransactionPeer : WalletDestination 116 @Serializable 117 data object TransactionLoss : WalletDestination 118 @Serializable 119 data object TransactionDummy : WalletDestination 120 }