summaryrefslogtreecommitdiff
path: root/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-03-18 17:24:02 -0300
committerTorsten Grote <t@grobox.de>2020-03-18 17:24:02 -0300
commit82b8b57dc16112b859150696199774fcf06655e1 (patch)
treee4bc3e9b799b7b3529821fa29041abe71f85e986 /merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt
parentb24169502d8052c7359632059f147734d8da1dd9 (diff)
downloadtaler-android-82b8b57dc16112b859150696199774fcf06655e1.tar.gz
taler-android-82b8b57dc16112b859150696199774fcf06655e1.tar.bz2
taler-android-82b8b57dc16112b859150696199774fcf06655e1.zip
Factor out code from merchant-terminal into common library
Diffstat (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt')
-rw-r--r--merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt45
1 files changed, 45 insertions, 0 deletions
diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt
index 2050e28..8141f0f 100644
--- a/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt
+++ b/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt
@@ -17,7 +17,13 @@
package net.taler.merchantpos.config
import android.net.Uri
+import com.fasterxml.jackson.annotation.JsonIgnore
import com.fasterxml.jackson.annotation.JsonProperty
+import net.taler.common.Amount
+import net.taler.common.ContractProduct
+import net.taler.common.Product
+import net.taler.common.TalerUtils
+import java.util.*
data class Config(
val configUrl: String,
@@ -45,3 +51,42 @@ data class MerchantConfig(
return uriBuilder.toString()
}
}
+
+data class Category(
+ val id: Int,
+ val name: String,
+ @JsonProperty("name_i18n")
+ val nameI18n: Map<String, String>?
+) {
+ var selected: Boolean = false
+ val localizedName: String get() = TalerUtils.getLocalizedString(nameI18n, name)
+}
+
+data class ConfigProduct(
+ @JsonIgnore
+ val id: String = UUID.randomUUID().toString(),
+ override val productId: String?,
+ override val description: String,
+ override val descriptionI18n: Map<String, String>?,
+ override val price: String,
+ override val location: String?,
+ override val image: String?,
+ val categories: List<Int>,
+ @JsonIgnore
+ val quantity: Int = 0
+) : Product() {
+ val priceAsDouble by lazy { Amount.fromString(price).amount.toDouble() }
+
+ fun toContractProduct() = ContractProduct(
+ productId = productId,
+ description = description,
+ descriptionI18n = descriptionI18n,
+ price = price,
+ location = location,
+ image = image,
+ quantity = quantity
+ )
+
+ override fun equals(other: Any?) = other is ConfigProduct && id == other.id
+ override fun hashCode() = id.hashCode()
+}