Updated on 2026-08-14
This commit is contained in:
parent
db08399066
commit
ae809ece30
28 changed files with 939 additions and 10 deletions
|
|
@ -0,0 +1,9 @@
|
|||
package com.tangem.domain.wallets
|
||||
|
||||
enum class PromoCodeActivationResult {
|
||||
Failed,
|
||||
InvalidPromoCode,
|
||||
NoBitcoinAddress,
|
||||
PromoCodeAlreadyUsed,
|
||||
Activated,
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package com.tangem.domain.wallets.models.errors
|
||||
|
||||
sealed class ActivatePromoCodeError {
|
||||
|
||||
data object InvalidPromoCode : ActivatePromoCodeError()
|
||||
|
||||
data object ActivationFailed : ActivatePromoCodeError()
|
||||
|
||||
data object PromocodeAlreadyUsed : ActivatePromoCodeError()
|
||||
|
||||
data object NoBitcoinAddress : ActivatePromoCodeError()
|
||||
}
|
||||
|
|
@ -1,9 +1,11 @@
|
|||
package com.tangem.domain.wallets.repository
|
||||
|
||||
import arrow.core.Either
|
||||
import com.tangem.domain.wallets.models.SeedPhraseNotificationsStatus
|
||||
import com.tangem.domain.models.wallet.UserWallet
|
||||
import com.tangem.domain.models.wallet.UserWalletId
|
||||
import com.tangem.domain.wallets.models.UserWalletRemoteInfo
|
||||
import com.tangem.domain.wallets.models.errors.ActivatePromoCodeError
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@Suppress("TooManyFunctions")
|
||||
|
|
@ -58,4 +60,6 @@ interface WalletsRepository {
|
|||
|
||||
@Throws
|
||||
suspend fun associateWallets(applicationId: String, wallets: List<UserWallet>)
|
||||
|
||||
suspend fun activatePromoCode(promoCode: String, bitcoinAddress: String): Either<ActivatePromoCodeError, String>
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package com.tangem.domain.wallets.usecase
|
||||
|
||||
import arrow.core.Either
|
||||
import com.tangem.domain.wallets.models.errors.ActivatePromoCodeError
|
||||
import com.tangem.domain.wallets.repository.WalletsRepository
|
||||
import javax.inject.Inject
|
||||
|
||||
class ActivateBitcoinPromocodeUseCase @Inject constructor(
|
||||
private val walletsRepository: WalletsRepository,
|
||||
) {
|
||||
|
||||
suspend operator fun invoke(address: String, promoCode: String): Either<ActivatePromoCodeError, String> =
|
||||
walletsRepository.activatePromoCode(promoCode = promoCode, bitcoinAddress = address)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue