From feb7a6956810f13fb13e5a4d2fff78268dedb2cd Mon Sep 17 00:00:00 2001 From: Ivan Magda Date: Thu, 9 Nov 2023 11:18:38 +0400 Subject: [PATCH] Add ChallengeTargetType --- .../app/challenges/domain/model/Challenge.kt | 3 +++ .../challenges/domain/model/ChallengeStatus.kt | 2 +- .../domain/model/ChallengeTargetType.kt | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 shared/src/commonMain/kotlin/org/hyperskill/app/challenges/domain/model/ChallengeTargetType.kt diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/challenges/domain/model/Challenge.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/challenges/domain/model/Challenge.kt index a97999f168..7aa4dc3262 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/challenges/domain/model/Challenge.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/challenges/domain/model/Challenge.kt @@ -31,6 +31,9 @@ data class Challenge( @SerialName("current_interval") val currentInterval: Int? ) { + val targetType: ChallengeTargetType? + get() = ChallengeTargetType.getByValue(targetTypeValue) + val status: ChallengeStatus? get() = ChallengeStatus.getByValue(statusValue) } \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/challenges/domain/model/ChallengeStatus.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/challenges/domain/model/ChallengeStatus.kt index eede444a38..6dc0722b04 100644 --- a/shared/src/commonMain/kotlin/org/hyperskill/app/challenges/domain/model/ChallengeStatus.kt +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/challenges/domain/model/ChallengeStatus.kt @@ -13,4 +13,4 @@ enum class ChallengeStatus(val value: String) { fun getByValue(value: String): ChallengeStatus? = VALUES.firstOrNull { it.value == value } } -} +} \ No newline at end of file diff --git a/shared/src/commonMain/kotlin/org/hyperskill/app/challenges/domain/model/ChallengeTargetType.kt b/shared/src/commonMain/kotlin/org/hyperskill/app/challenges/domain/model/ChallengeTargetType.kt new file mode 100644 index 0000000000..e619d3af9a --- /dev/null +++ b/shared/src/commonMain/kotlin/org/hyperskill/app/challenges/domain/model/ChallengeTargetType.kt @@ -0,0 +1,18 @@ +package org.hyperskill.app.challenges.domain.model + +enum class ChallengeTargetType(val value: Int) { + TOPIC(2), + STEP(14), + PROJECT(29), + STAGE_ON_PRODUCTION(70), + STAGE_ON_RELEASE(71); + // Stage has different mapping on production and release + // https://vyahhi.myjetbrains.com/youtrack/issue/ALT-9537/Backend-Customisable-challenges#focus=Comments-74-265582.0-0 + + companion object { + private val VALUES: Array = values() + + fun getByValue(value: Int): ChallengeTargetType? = + VALUES.firstOrNull { it.value == value } + } +} \ No newline at end of file