From 2f885897a031c020468277e5020710378a5dc053 Mon Sep 17 00:00:00 2001 From: Gilbert Kimutai Date: Mon, 8 Jul 2019 19:36:33 +0300 Subject: [PATCH] added cart abstraction --- .../java/me/gilo/woodroid/core/cart/Cart.kt | 37 ++++ .../me/gilo/woodroid/core/cart/CartFilter.kt | 5 - .../me/gilo/woodroid/core/cart/CartItem.kt | 13 -- .../gilo/woodroid/core/cart/CartRepository.kt | 2 +- .../gilo/woodroid/core/cart/lines/FeeLine.kt | 4 + .../gilo/woodroid/core/cart/lines/LineItem.kt | 18 ++ .../me/gilo/woodroid/core/cart/lines/Metum.kt | 8 + .../woodroid/core/cart/lines/ShippingLine.kt | 8 + .../core/{models => cart/lines}/TaxLine.kt | 0 .../woodroid/core/models/AttributeTerm.kt | 15 -- .../me/gilo/woodroid/core/models/Category.kt | 15 -- .../me/gilo/woodroid/core/models/Coupon.kt | 34 ---- .../gilo/woodroid/core/models/CustomerPost.kt | 12 -- .../java/me/gilo/woodroid/core/models/Data.kt | 5 - .../java/me/gilo/woodroid/core/models/Meta.kt | 25 --- .../me/gilo/woodroid/core/models/Metadata.kt | 10 - .../me/gilo/woodroid/core/models/Metum.kt | 8 - .../me/gilo/woodroid/core/models/OrderData.kt | 5 - .../woodroid/core/models/PaymentGateway.kt | 14 -- .../core/models/PaymentGatewaySetting.kt | 16 -- .../woodroid/core/models/ProductAttribute.kt | 14 -- .../woodroid/core/models/ProductReview.kt | 20 -- .../me/gilo/woodroid/core/models/Refund.kt | 17 -- .../gilo/woodroid/core/models/SettingGroup.kt | 11 -- .../woodroid/core/models/SettingOption.kt | 19 -- .../woodroid/core/models/ShippingClass.kt | 11 -- .../woodroid/core/models/ShippingMethod.kt | 10 - .../gilo/woodroid/core/models/ShippingZone.kt | 9 - .../me/gilo/woodroid/core/models/Store.kt | 20 -- .../me/gilo/woodroid/core/models/TaxClass.kt | 6 - .../me/gilo/woodroid/core/models/TaxRate.kt | 15 -- .../gilo/woodroid/core/models/TopSellers.kt | 7 - .../me/gilo/woodroid/core/models/Webhook.kt | 19 -- .../woodroid/core/models/WebhookDelivery.kt | 19 -- .../core/models/filters/CouponFilter.kt | 15 -- .../core/models/filters/CustomerFilter.kt | 32 ---- .../woodroid/core/models/filters/Filter.kt | 28 --- .../core/models/filters/ListFilter.kt | 171 ------------------ .../core/models/filters/OrderFilter.kt | 66 ------- .../core/models/filters/OrderNoteFilter.kt | 18 -- .../models/filters/ProductAttributeFilter.kt | 28 --- .../filters/ProductAttributeTermFilter.kt | 32 ---- .../models/filters/ProductCategoryFilter.kt | 39 ---- .../core/models/filters/ProductFilter.kt | 138 -------------- .../models/filters/ProductReviewFilter.kt | 61 ------- .../core/models/filters/ProductTagFilter.kt | 34 ---- .../models/filters/ProductVariationFilter.kt | 140 -------------- .../core/models/filters/RefundFilter.kt | 32 ---- .../core/models/filters/ReportsDateFilter.kt | 38 ---- .../gilo/woodroid/core/models/filters/Role.kt | 49 ----- .../models/filters/ShippingClassesFilter.kt | 34 ---- .../gilo/woodroid/core/models/filters/Sort.kt | 15 -- .../core/models/filters/WebhookFilter.kt | 15 -- .../core/models/report/CouponsTotal.kt | 8 - .../core/models/report/CustomersTotal.kt | 8 - .../core/models/report/OrdersTotal.kt | 8 - .../core/models/report/ProductsTotal.kt | 8 - .../core/models/report/ReviewsTotal.kt | 8 - .../core/models/report/SalesPeriodTotal.kt | 13 -- .../woodroid/core/models/report/SalesTotal.kt | 17 -- .../core/models/report/TopSellerProducts.kt | 8 - .../firebasecart/FirebaseCartRepository.kt | 16 +- .../common/CompletionDocLiveData.java | 25 --- .../common/CompletionGenericLiveData.kt | 21 --- .../common/CompletionLiveData.java | 24 --- .../firebasecart/common/DocumentLiveData.java | 41 ----- .../firebasecart}/models/BillingAddress.kt | 0 .../gilo/woodroid/firebasecart/models/Cart.kt | 36 +++- .../firebasecart/models/CartLineItem.java | 73 -------- .../woodroid/firebasecart}/models/Customer.kt | 4 +- .../firebasecart}/models/DefaultAttribute.kt | 0 .../firebasecart}/models/Dimension.kt | 0 .../woodroid/firebasecart}/models/Download.kt | 0 .../woodroid/firebasecart}/models/FeeLine.kt | 0 .../woodroid/firebasecart}/models/Image.kt | 0 .../woodroid/firebasecart}/models/LineItem.kt | 0 .../woodroid/firebasecart/models}/Option.kt | 2 +- .../firebasecart}/models/OrderNote.kt | 0 .../firebasecart}/models/PaymentDetails.kt | 0 .../woodroid/firebasecart}/models/Product.kt | 0 .../firebasecart}/models/ShippingAddress.kt | 0 .../firebasecart}/models/ShippingLine.kt | 0 .../gilo/woodroid/firebasecart}/models/Tag.kt | 0 .../woodroid/firebasecart/models/TaxLine.kt | 11 ++ .../firebasecart}/models/Variation.kt | 0 85 files changed, 135 insertions(+), 1632 deletions(-) create mode 100644 core/src/main/java/me/gilo/woodroid/core/cart/Cart.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/cart/CartFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/cart/CartItem.kt create mode 100644 core/src/main/java/me/gilo/woodroid/core/cart/lines/FeeLine.kt create mode 100644 core/src/main/java/me/gilo/woodroid/core/cart/lines/LineItem.kt create mode 100644 core/src/main/java/me/gilo/woodroid/core/cart/lines/Metum.kt create mode 100644 core/src/main/java/me/gilo/woodroid/core/cart/lines/ShippingLine.kt rename core/src/main/java/me/gilo/woodroid/core/{models => cart/lines}/TaxLine.kt (100%) delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/AttributeTerm.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/Category.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/Coupon.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/CustomerPost.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/Data.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/Meta.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/Metadata.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/Metum.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/OrderData.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/PaymentGateway.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/PaymentGatewaySetting.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/ProductAttribute.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/ProductReview.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/Refund.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/SettingGroup.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/SettingOption.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/ShippingClass.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/ShippingMethod.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/ShippingZone.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/Store.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/TaxClass.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/TaxRate.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/TopSellers.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/Webhook.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/WebhookDelivery.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/CouponFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/CustomerFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/Filter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/ListFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/OrderFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/OrderNoteFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/ProductAttributeFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/ProductAttributeTermFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/ProductCategoryFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/ProductFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/ProductReviewFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/ProductTagFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/ProductVariationFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/RefundFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/ReportsDateFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/Role.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/ShippingClassesFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/Sort.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/filters/WebhookFilter.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/report/CouponsTotal.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/report/CustomersTotal.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/report/OrdersTotal.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/report/ProductsTotal.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/report/ReviewsTotal.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/report/SalesPeriodTotal.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/report/SalesTotal.kt delete mode 100644 core/src/main/java/me/gilo/woodroid/core/models/report/TopSellerProducts.kt delete mode 100644 firebasecart/src/main/java/me/gilo/woodroid/firebasecart/common/CompletionDocLiveData.java delete mode 100644 firebasecart/src/main/java/me/gilo/woodroid/firebasecart/common/CompletionGenericLiveData.kt delete mode 100644 firebasecart/src/main/java/me/gilo/woodroid/firebasecart/common/CompletionLiveData.java delete mode 100644 firebasecart/src/main/java/me/gilo/woodroid/firebasecart/common/DocumentLiveData.java rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/BillingAddress.kt (100%) rename core/src/main/java/me/gilo/woodroid/core/models/Order.kt => firebasecart/src/main/java/me/gilo/woodroid/firebasecart/models/Cart.kt (89%) delete mode 100644 firebasecart/src/main/java/me/gilo/woodroid/firebasecart/models/CartLineItem.java rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/Customer.kt (87%) rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/DefaultAttribute.kt (100%) rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/Dimension.kt (100%) rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/Download.kt (100%) rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/FeeLine.kt (100%) rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/Image.kt (100%) rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/LineItem.kt (100%) rename {core/src/main/java/me/gilo/woodroid/core/cart => firebasecart/src/main/java/me/gilo/woodroid/firebasecart/models}/Option.kt (60%) rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/OrderNote.kt (100%) rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/PaymentDetails.kt (100%) rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/Product.kt (100%) rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/ShippingAddress.kt (100%) rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/ShippingLine.kt (100%) rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/Tag.kt (100%) create mode 100644 firebasecart/src/main/java/me/gilo/woodroid/firebasecart/models/TaxLine.kt rename {core/src/main/java/me/gilo/woodroid/core => firebasecart/src/main/java/me/gilo/woodroid/firebasecart}/models/Variation.kt (100%) diff --git a/core/src/main/java/me/gilo/woodroid/core/cart/Cart.kt b/core/src/main/java/me/gilo/woodroid/core/cart/Cart.kt new file mode 100644 index 0000000..5e0cfda --- /dev/null +++ b/core/src/main/java/me/gilo/woodroid/core/cart/Cart.kt @@ -0,0 +1,37 @@ +package me.gilo.woodroid.core.cart + + +import me.gilo.woodroid.core.cart.lines.FeeLine +import me.gilo.woodroid.core.cart.lines.LineItem +import me.gilo.woodroid.core.cart.lines.ShippingLine +import me.gilo.woodroid.models.TaxLine +import java.util.ArrayList +import java.util.Date + + +data class Cart( + var id: Int = 0, + var dateCreated: Date = Date(), + var dateUpdate: Date = Date(), + var completedAt: Date = Date(), + + var currency: String = "USD", + + var total: Float = 0f, + var subtotal: Float = 0f, + var totalLineItemsQuantity: Float = 0f, + var totalTax: Float = 0f, + var totalShipping: Float = 0f, + var cartTax: Float = 0f, + var shippingTax: Float = 0f, + var totalDiscount: Float = 0f, + var lineItems: MutableList = ArrayList(), + var shippingLines: List = ArrayList(), + + var taxLines: List = ArrayList(), + + var feeLines: List = ArrayList(), + + var couponLines: List = ArrayList() + +) diff --git a/core/src/main/java/me/gilo/woodroid/core/cart/CartFilter.kt b/core/src/main/java/me/gilo/woodroid/core/cart/CartFilter.kt deleted file mode 100644 index 5c14d44..0000000 --- a/core/src/main/java/me/gilo/woodroid/core/cart/CartFilter.kt +++ /dev/null @@ -1,5 +0,0 @@ -package me.gilo.woodroid.core.cart - -class CartFilter(var cart_item_key: String) { - var quantity: Int = 0 -} diff --git a/core/src/main/java/me/gilo/woodroid/core/cart/CartItem.kt b/core/src/main/java/me/gilo/woodroid/core/cart/CartItem.kt deleted file mode 100644 index 14fa297..0000000 --- a/core/src/main/java/me/gilo/woodroid/core/cart/CartItem.kt +++ /dev/null @@ -1,13 +0,0 @@ -package me.gilo.woodroid.core.cart - -import me.gilo.woodroid.models.Product -import java.util.ArrayList - -/** - * Created by gilo on 2/18/16. - */ -class CartItem { - lateinit var product: Product - lateinit var options: ArrayList