From db8b71418b766258a7a4bda91e496b1b03cb28cd Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 20 Mar 2020 15:43:23 -0300 Subject: Let all apps use the same Amount class The wallet now also uses taler-kotlin-common --- .../src/main/java/net/taler/common/ContractTerms.kt | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'taler-kotlin-common/src/main/java/net/taler/common/ContractTerms.kt') diff --git a/taler-kotlin-common/src/main/java/net/taler/common/ContractTerms.kt b/taler-kotlin-common/src/main/java/net/taler/common/ContractTerms.kt index 1e70b6f..cd417ef 100644 --- a/taler-kotlin-common/src/main/java/net/taler/common/ContractTerms.kt +++ b/taler-kotlin-common/src/main/java/net/taler/common/ContractTerms.kt @@ -18,12 +18,20 @@ package net.taler.common import androidx.annotation.RequiresApi import com.fasterxml.jackson.annotation.JsonIgnore +import com.fasterxml.jackson.annotation.JsonIgnoreProperties import com.fasterxml.jackson.annotation.JsonInclude import com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY import com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL import com.fasterxml.jackson.annotation.JsonProperty import net.taler.common.TalerUtils.getLocalizedString +@JsonIgnoreProperties(ignoreUnknown = true) +data class ContractTerms( + val summary: String, + val products: List, + val amount: Amount +) + @JsonInclude(NON_NULL) abstract class Product { @get:JsonProperty("product_id") @@ -32,7 +40,7 @@ abstract class Product { @get:JsonProperty("description_i18n") abstract val descriptionI18n: Map? - abstract val price: String + abstract val price: Amount @get:JsonProperty("delivery_location") abstract val location: String? @@ -48,11 +56,16 @@ data class ContractProduct( override val productId: String?, override val description: String, override val descriptionI18n: Map?, - override val price: String, + override val price: Amount, override val location: String?, override val image: String?, val quantity: Int -) : Product() +) : Product() { + @get:JsonIgnore + val totalPrice: Amount by lazy { + price * quantity + } +} @JsonInclude(NON_EMPTY) class Timestamp( -- cgit v1.2.3