added cart abstraction

This commit is contained in:
Gilbert Kimutai 2019-07-08 19:36:33 +03:00
parent 6591cf8f95
commit 2f885897a0
85 changed files with 135 additions and 1632 deletions

View File

@ -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<LineItem> = ArrayList(),
var shippingLines: List<ShippingLine> = ArrayList(),
var taxLines: List<TaxLine> = ArrayList(),
var feeLines: List<FeeLine> = ArrayList(),
var couponLines: List<Any> = ArrayList()
)

View File

@ -1,5 +0,0 @@
package me.gilo.woodroid.core.cart
class CartFilter(var cart_item_key: String) {
var quantity: Int = 0
}

View File

@ -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<Option>
var qty: Int = 0
}

View File

@ -1,7 +1,7 @@
package me.gilo.woodroid.core.cart
import android.arch.lifecycle.LiveData
import me.gilo.woodroid.models.LineItem
import me.gilo.woodroid.core.cart.lines.LineItem
abstract class CartRepository{

View File

@ -0,0 +1,4 @@
package me.gilo.woodroid.core.cart.lines
class FeeLine

View File

@ -0,0 +1,18 @@
package me.gilo.woodroid.core.cart.lines
class LineItem(
var subtotal: Float = 0f,
var subtotalTax: Float = 0f,
var total: Float = 0f,
var totalTax: Float = 0f,
var price: Float = 0f,
var quantity: Int = 0,
var taxClass: Any,
var name: String = "",
var productId: Int = 0,
var sku: String = "",
var variations: String = "",
var meta: List<Metum> = ArrayList()
)

View File

@ -0,0 +1,8 @@
package me.gilo.woodroid.core.cart.lines
data class Metum (
var key: String = "",
var label: String = "",
var value: String = ""
)

View File

@ -0,0 +1,8 @@
package me.gilo.woodroid.core.cart.lines
class ShippingLine (
var id: String? = null,
var methodTitle: String? = null,
var total: Int = 0
)

View File

@ -1,15 +0,0 @@
package me.gilo.woodroid.models
import android.os.Parcel
import java.io.Serializable
class AttributeTerm : Serializable {
var id: Int = 0
var name: String? = null
var slug: String? = null
lateinit var description: String
var menu_order: Int = 0
var count: Int = 0
}

View File

@ -1,15 +0,0 @@
package me.gilo.woodroid.models
import java.io.Serializable
class Category : Serializable {
var id: Int = 0
var name: String? = null
var slug: String? = null
var parent: Int = 0
lateinit var description: String
lateinit var display: String
lateinit var image: Image
var menu_order: Int = 0
var count: Int = 0
}

View File

@ -1,34 +0,0 @@
package me.gilo.woodroid.models
import java.io.Serializable
class Coupon : Serializable {
var usage_limit: Int = 0
var code: String? = null
var free_shipping: String? = null
var description: String? = null
var minimum_amount: String? = null
var email_restrictions: Array<String>? = null
var exclude_sale_items: String? = null
var excluded_product_ids: Array<String>? = null
var usage_count: String? = null
var individual_use: String? = null
var usage_limit_per_user: Int = 0
var limit_usage_to_x_items: Int = 0
var meta_data: Array<String>? = null
var id: Int = 0
var date_modified_gmt: String? = null
var amount: String? = null
var date_created: String? = null
var date_created_gmt: String? = null
var maximum_amount: String? = null
var discount_type: String? = null
var used_by: Array<String>? = null
var date_modified: String? = null
var product_ids: Array<String>? = null
var product_categories: Array<String>? = null
var date_expires: String? = null
var excluded_product_categories: Array<String>? = null
var date_expires_gmt: String? = null
}

View File

@ -1,12 +0,0 @@
package me.gilo.woodroid.models
import com.google.gson.annotations.SerializedName
import java.io.Serializable
import java.util.ArrayList
class CustomerPost : Serializable {
@SerializedName("data")
lateinit var datas: ArrayList<Data>
}

View File

@ -1,5 +0,0 @@
package me.gilo.woodroid.models
class Data {
lateinit var customer: Customer
}

View File

@ -1,25 +0,0 @@
package me.gilo.woodroid.models
/**
* Created by gilo on 1/19/16.
*/
class Meta {
var thousand_separator: String? = null
var decimal_separator: String? = null
var currency_position: String? = null
var weight_unit: String? = null
var currency: String? = null
var timezone: String? = null
var isGenerate_password: Boolean = false
var price_num_decimals: Int = 0
var isTax_included: Boolean = false
var isSsl_enabled: Boolean = false
var isPermalinks_enabled: Boolean = false
var dimension_unit: String? = null
var currency_format: String? = null
override fun toString(): String {
return "ClassPojo [thousand_separator = $thousand_separator, decimal_separator = $decimal_separator, currency_position = $currency_position, weight_unit = $weight_unit, currency = $currency, timezone = $timezone, generate_password = $isGenerate_password, price_num_decimals = $price_num_decimals, tax_included = $isTax_included, ssl_enabled = $isSsl_enabled, permalinks_enabled = $isPermalinks_enabled, dimension_unit = $dimension_unit, currency_format = $currency_format]"
}
}

View File

@ -1,10 +0,0 @@
package me.gilo.woodroid.models
import java.io.Serializable
class Metadata : Serializable {
var id: Int = 0
lateinit var key: String
}

View File

@ -1,8 +0,0 @@
package me.gilo.woodroid.models
class Metum {
var key: String? = null
var label: String? = null
var value: String? = null
}

View File

@ -1,5 +0,0 @@
package me.gilo.woodroid.models
class OrderData {
lateinit var order: Order
}

View File

@ -1,14 +0,0 @@
package me.gilo.woodroid.models
class PaymentGateway {
lateinit var id: String
lateinit var title: String
lateinit var description: String
var order: Int = 0
var isEnabled: Boolean = false
lateinit var method_title: String
lateinit var method_description: String
lateinit var method_supports: Array<String>
lateinit var settings: Map<String, PaymentGatewaySetting>
}

View File

@ -1,16 +0,0 @@
package me.gilo.woodroid.models
import com.fasterxml.jackson.annotation.JsonProperty
class PaymentGatewaySetting {
lateinit var id: String
lateinit var label: String
lateinit var description: String
lateinit var type: String
lateinit var value: String
@JsonProperty("default")
lateinit var default_value: String
lateinit var tip: String
lateinit var placeholder: String
}

View File

@ -1,14 +0,0 @@
package me.gilo.woodroid.models
import java.io.Serializable
class ProductAttribute : Serializable {
var id: Int = 0
var name: String? = null
var slug: String? = null
var type: String? = null
var position: Int = 0
var isVisible: Boolean = false
var isVariation: Boolean = false
var options: Array<String>? = null
}

View File

@ -1,20 +0,0 @@
package me.gilo.woodroid.models
import java.io.Serializable
import java.util.Date
class ProductReview : Serializable {
var id: Int = 0
var date_created: Date? = null
var date_created_gmt: Date? = null
var product_id: Int = 0
lateinit var reviewer: String
lateinit var reviewer_email: String
lateinit var reviewer_avatar_urls: Map<String, String>
var review: String? = null
var rating: Int = 0
var isVerified: Boolean = false
}

View File

@ -1,17 +0,0 @@
package me.gilo.woodroid.models
class Refund {
var refunded_by: String? = null
var reason: String? = null
var amount: String? = null
var date_created: String? = null
var meta_data: Array<Metadata>? = null
var date_created_gmt: String? = null
var id: String? = null
var line_items: Array<LineItem>? = null
var refunded_payment: String? = null
}

View File

@ -1,11 +0,0 @@
package me.gilo.woodroid.models
class SettingGroup {
internal var id: String? = null
internal var label: String? = null
internal var description: String? = null
internal var parent_id: String? = null
internal var sub_groups: List<String>? = null
}

View File

@ -1,19 +0,0 @@
package me.gilo.woodroid.models
import com.fasterxml.jackson.annotation.JsonProperty
class SettingOption {
lateinit var id: String
lateinit var label: String
lateinit var description: String
lateinit var value: String
@JsonProperty("default")
lateinit var default_value: String
lateinit var tip: String
lateinit var placeholder: String
lateinit var type: String
lateinit var options: Map<String, String>
lateinit var group_id: String
}

View File

@ -1,11 +0,0 @@
package me.gilo.woodroid.models
import com.google.gson.annotations.SerializedName
class ShippingClass {
var id: Int = 0
lateinit var name: String
lateinit var slug: String
lateinit var description: String
var count: Int = 0
}

View File

@ -1,10 +0,0 @@
package me.gilo.woodroid.models
import com.google.gson.annotations.SerializedName
class ShippingMethod {
var id: String? = null
var title: String? = null
var descriptioon: String? = null
}

View File

@ -1,9 +0,0 @@
package me.gilo.woodroid.models
import com.google.gson.annotations.SerializedName
class ShippingZone {
var id: Int = 0
var name: String? = null
var order: Int = 0
}

View File

@ -1,20 +0,0 @@
package me.gilo.woodroid.models
/**
* Created by gilo on 1/19/16.
*/
class Store {
var wc_version: String? = null
var description: String? = null
var name: String? = null
var url: String? = null
var meta: Meta? = null
var version: String? = null
override fun toString(): String {
return "ClassPojo [wc_version = $wc_version, description = $description, name = $name, URL = $url, meta = $meta, version = $version]"
}
}

View File

@ -1,6 +0,0 @@
package me.gilo.woodroid.models
class TaxClass {
lateinit var slug: String
lateinit var name: String
}

View File

@ -1,15 +0,0 @@
package me.gilo.woodroid.models
class TaxRate {
var id: Int = 0
var country: String? = null
var city: String? = null
var postcode: String? = null
var priority: Int = 0
var isCompound: Boolean = false
var isShipping: Boolean = false
var rate: String? = null
var name: String? = null
var state: String? = null
var order: Int = 0
}

View File

@ -1,7 +0,0 @@
package me.gilo.woodroid.models
class TopSellers {
var title: String? = null
var product_id: Int = 0
var quantity: Int = 0
}

View File

@ -1,19 +0,0 @@
package me.gilo.woodroid.models
import java.util.Date
class Webhook {
var id: Int = 0
lateinit var name: String
lateinit var status: String
lateinit var topic: String
lateinit var resource: String
lateinit var event: String
lateinit var hooks: Array<String>
lateinit var delivery_url: String
lateinit var secret: String
lateinit var date_created: Date
lateinit var date_created_gmt: Date
lateinit var date_modified: Date
lateinit var date_modified_gmt: Date
}

View File

@ -1,19 +0,0 @@
package me.gilo.woodroid.models
import java.util.Date
class WebhookDelivery {
var id: Int = 0
lateinit var duration: String
lateinit var summary: String
lateinit var request_url: String
lateinit var request_headers: Map<String, String>
lateinit var request_body: String
lateinit var response_code: String
lateinit var response_message: String
lateinit var response_headers: Map<String, String>
lateinit var response_body: String
lateinit var date_created: Date
lateinit var date_created_gmt: Date
}

View File

@ -1,15 +0,0 @@
package me.gilo.woodroid.models.filters
class CouponFilter : ListFilter() {
internal lateinit var code: String
fun getCode(): String {
return code
}
fun setCode(code: String) {
this.code = code
addFilter("code", code)
}
}

View File

@ -1,32 +0,0 @@
package me.gilo.woodroid.models.filters
class CustomerFilter : ListFilter() {
private lateinit var email: String
private lateinit var role: String
//all, administrator, editor, author, contributor, subscriber, customer and shop_manager
fun getEmail(): String {
return email
}
fun setEmail(email: String) {
this.email = email
addFilter("email", email)
}
fun getRole(): String {
return role
}
fun setRole(role: String) {
this.role = role
addFilter("role", role)
}
fun setRole(role: Role) {
this.role = role.toString()
addFilter("role", role.toString())
}
}

View File

@ -1,28 +0,0 @@
package me.gilo.woodroid.models.filters
import java.util.HashMap
open class Filter {
internal lateinit var context: String
internal var filters: MutableMap<String, String> = HashMap()
fun getContext(): String {
return context
}
fun setContext(context: String) {
this.context = context
addFilter("context", context)
}
fun addFilter(filter: String, value: Any) {
filters[filter] = value.toString()
}
fun getFilters(): Map<String, String> {
return filters
}
}

View File

@ -1,171 +0,0 @@
package me.gilo.woodroid.models.filters
import me.gilo.woodroid.utils.Converter
import java.util.*
open class ListFilter {
internal lateinit var context: String
internal var page: Int = 0
internal var per_page: Int = 0
internal lateinit var search: String
internal lateinit var after: String
internal lateinit var before: String
internal lateinit var exclude: IntArray
internal lateinit var include: IntArray
internal var offset: Int = 0
internal lateinit var order: String
internal lateinit var orderby: String
internal var filters: MutableMap<String, String> = HashMap()
fun getContext(): String {
return context
}
fun setContext(context: String) {
this.context = context
addFilter("context", context)
}
fun getPage(): Int {
return page
}
fun setPage(page: Int) {
this.page = page
addFilter("page", page)
}
fun getPer_page(): Int {
return per_page
}
fun setPer_page(per_page: Int) {
this.per_page = per_page
addFilter("per_page", per_page)
}
fun getSearch(): String {
return search
}
fun setSearch(search: String) {
this.search = search
addFilter("search", search)
}
fun getAfter(): String {
return after
}
fun setAfter(after: String) {
this.after = after
addFilter("after", after)
}
fun getBefore(): String {
return before
}
fun setAfter(date: Date) {
setAfter(Converter.getDateString(date))
}
fun setBefore(date: Date) {
setBefore(Converter.getDateString(date))
}
fun setBefore(before: String) {
this.before = before
addFilter("before", before)
}
fun getExclude(): IntArray {
return exclude
}
fun setExclude(exclude: IntArray) {
this.exclude = exclude
addFilter("exclude", exclude)
}
fun getInclude(): IntArray {
return include
}
fun setInclude(include: IntArray) {
this.include = include
addFilter("include", include)
}
fun getOffset(): Int {
return offset
}
fun setOffset(offset: Int) {
this.offset = offset
addFilter("offset", offset)
}
fun getOrder(): String {
return order
}
fun setOrder(order: String) {
this.order = order
addFilter("order", order)
}
fun setOrder(order: Sort) {
setOrder(order.toString())
}
fun getOrderby(): String {
return orderby
}
fun setOrderby(orderby: String) {
this.orderby = orderby
addFilter("orderby", orderby)
}
fun addFilter(filter: String, value: Any) {
if (value.javaClass.isArray) {
if (value is IntArray) {
var values = ""
for (item in value) {
values += "$item,"
}
filters[filter] = "" + values.substring(0, values.length - 1)
} else {
val list = Arrays.asList(value)
for (item in list) {
filters[filter] = item.toString()
}
}
} else {
filters[filter] = value.toString()
}
}
fun getFilters(): Map<String, String> {
return filters
}
}

View File

@ -1,66 +0,0 @@
package me.gilo.woodroid.models.filters
class OrderFilter : ListFilter() {
var parent: IntArray? = null
set(parent) {
field = parent
if (parent != null) {
addFilter("parent", parent)
}
}
var parent_exclude: IntArray? = null
set(parent_exclude) {
field = parent_exclude
if (parent_exclude != null) {
addFilter("parent_exclude", parent_exclude)
}
}
internal lateinit var status: String
internal var customer: Int = 0
internal var product: Int = 0
internal var dp: Int = 0
fun getStatus(): String {
return status
}
fun setStatus(status: String) {
this.status = status
addFilter("status", status)
}
fun getCustomer(): Int {
return customer
}
fun setCustomer(customer: Int) {
this.customer = customer
addFilter("customer", customer)
}
fun getProduct(): Int {
return product
}
fun setProduct(product: Int) {
this.product = product
addFilter("product", product)
}
fun getDp(): Int {
return dp
}
fun setDp(dp: Int) {
this.dp = dp
addFilter("dp", dp)
}
}

View File

@ -1,18 +0,0 @@
package me.gilo.woodroid.models.filters
import java.util.HashMap
class OrderNoteFilter : Filter() {
internal lateinit var type: String
fun getType(): String {
return type
}
fun setType(type: String) {
this.type = type
addFilter("type", type)
}
}

View File

@ -1,28 +0,0 @@
package me.gilo.woodroid.models.filters
import java.util.HashMap
class ProductAttributeFilter {
internal lateinit var context: String
internal var filters: MutableMap<String, String> = HashMap()
fun getContext(): String {
return context
}
fun setContext(context: String) {
this.context = context
addFilter("context", context)
}
fun addFilter(filter: String, value: Any) {
filters[filter] = value.toString()
}
fun getFilters(): Map<String, String> {
return filters
}
}

View File

@ -1,32 +0,0 @@
package me.gilo.woodroid.models.filters
class ProductAttributeTermFilter : ListFilter() {
internal var product: Int = 0
internal var hide_empty: Boolean = false
internal lateinit var slug: String
var isHide_empty: Boolean
get() = hide_empty
set(hide_empty) {
this.hide_empty = hide_empty
addFilter("hide_empty", hide_empty)
}
fun getProduct(): Int {
return product
}
fun setProduct(product: Int) {
this.product = product
addFilter("product", product)
}
fun getSlug(): String {
return slug
}
fun setSlug(slug: String) {
this.slug = slug
addFilter("slug", slug)
}
}

View File

@ -1,39 +0,0 @@
package me.gilo.woodroid.models.filters
class ProductCategoryFilter : ListFilter() {
var parent: IntArray? = null
set(parent) {
field = parent
if (parent != null) {
addFilter("parent", parent)
}
}
internal var product: Int = 0
internal var hide_empty: Boolean = false
internal lateinit var slug: String
var isHide_empty: Boolean
get() = hide_empty
set(hide_empty) {
this.hide_empty = hide_empty
addFilter("hide_empty", hide_empty)
}
fun getProduct(): Int {
return product
}
fun setProduct(product: Int) {
this.product = product
addFilter("product", product)
}
fun getSlug(): String {
return slug
}
fun setSlug(slug: String) {
this.slug = slug
addFilter("slug", slug)
}
}

View File

@ -1,138 +0,0 @@
package me.gilo.woodroid.models.filters
class ProductFilter : ListFilter() {
var parent: IntArray? = null
set(parent) {
field = parent
if (parent != null) {
addFilter("parent", parent)
}
}
var parent_exclude: IntArray? = null
set(parent_exclude) {
field = parent_exclude
if (parent_exclude != null) {
addFilter("parent_exclude", parent_exclude)
}
}
var slug: String? = null
set(slug) {
field = slug
if (slug != null) {
addFilter("slug", slug)
}
}
var status: String? = null
set(status) {
field = status
if (status != null) {
addFilter("status", status)
}
}
var type: String? = null
set(type) {
field = type
if (type != null) {
addFilter("type", type)
}
}
var sku: String? = null
set(sku) {
field = sku
if (sku != null) {
addFilter("sku", sku)
}
}
var isFeatured: Boolean = false
set(featured) {
field = featured
addFilter("featured", featured)
}
var category: Int = 0
set(category) {
field = category
addFilter("category", category)
}
var tag: String? = null
set(tag) {
field = tag
if (tag != null) {
addFilter("tag", tag)
}
}
var shipping_class: String? = null
set(shipping_class) {
field = shipping_class
if (shipping_class != null) {
addFilter("shipping_class", shipping_class)
}
}
var attribute: String? = null
set(attribute) {
field = attribute
if (attribute != null) {
addFilter("attribute", attribute)
}
}
var attribute_term: String? = null
set(attribute_term) {
field = attribute_term
if (attribute_term != null) {
addFilter("attribute_term", attribute_term)
}
}
var tax_class: String? = null
set(tax_class) {
field = tax_class
if (tax_class != null) {
addFilter("tax_class", tax_class)
}
}
var isOn_sale: Boolean = false
set(on_sale) {
field = on_sale
addFilter("on_sale", on_sale)
}
var min_price: String? = null
set(min_price) {
field = min_price
if (min_price != null) {
addFilter("min_price", min_price)
}
}
var max_price: String? = null
set(max_price) {
field = max_price
if (max_price != null) {
addFilter("max_price", max_price)
}
}
var stock_status: String? = null
set(stock_status) {
field = stock_status
if (stock_status != null) {
addFilter("stock_status", stock_status)
}
}
}

View File

@ -1,61 +0,0 @@
package me.gilo.woodroid.models.filters
class ProductReviewFilter : ListFilter() {
internal lateinit var reviewer: IntArray
internal lateinit var reviewer_exclude: IntArray
internal lateinit var reviewer_email: Array<String>
internal lateinit var product: IntArray
internal lateinit var status: String
fun getReviewer(): IntArray {
return reviewer
}
fun setReviewer(reviewer: IntArray) {
this.reviewer = reviewer
addFilter("reviewer", reviewer)
}
fun getReviewer_exclude(): IntArray {
return reviewer_exclude
}
fun setReviewer_exclude(reviewer_exclude: IntArray) {
this.reviewer_exclude = reviewer_exclude
addFilter("reviewer_exclude", reviewer_exclude)
}
fun getReviewer_email(): Array<String> {
return reviewer_email
}
fun setReviewer_email(reviewer_email: Array<String>) {
this.reviewer_email = reviewer_email
addFilter("reviewer_email", reviewer_email)
}
fun getProduct(): IntArray {
return product
}
fun setProduct(product: IntArray) {
this.product = product
addFilter("product", product)
}
fun getStatus(): String {
return status
}
fun setStatus(status: String) {
this.status = status
addFilter("status", status)
}
}

View File

@ -1,34 +0,0 @@
package me.gilo.woodroid.models.filters
class ProductTagFilter : ListFilter() {
internal var product: Int = 0
internal var hide_empty: Boolean = false
internal lateinit var slug: String
var isHide_empty: Boolean
get() = hide_empty
set(hide_empty) {
this.hide_empty = hide_empty
addFilter("hide_empty", hide_empty)
}
fun getProduct(): Int {
return product
}
fun setProduct(product: Int) {
this.product = product
addFilter("product", product)
}
fun getSlug(): String {
return slug
}
fun setSlug(slug: String) {
this.slug = slug
addFilter("slug", slug)
}
}

View File

@ -1,140 +0,0 @@
package me.gilo.woodroid.models.filters
class ProductVariationFilter : ListFilter() {
var parent: IntArray? = null
set(parent) {
field = parent
if (parent != null) {
addFilter("parent", parent)
}
}
var parent_exclude: IntArray? = null
set(parent_exclude) {
field = parent_exclude
if (parent_exclude != null) {
addFilter("parent_exclude", parent_exclude)
}
}
var slug: String? = null
set(slug) {
field = slug
if (slug != null) {
addFilter("slug", slug)
}
}
var status: String? = null
set(status) {
field = status
if (status != null) {
addFilter("status", status)
}
}
var type: String? = null
set(type) {
field = type
if (type != null) {
addFilter("type", type)
}
}
var sku: String? = null
set(sku) {
field = sku
if (sku != null) {
addFilter("sku", sku)
}
}
var isFeatured: Boolean = false
set(featured) {
field = featured
addFilter("featured", featured)
}
var category: String? = null
set(category) {
field = category
if (category != null) {
addFilter("category", category)
}
}
var tag: String? = null
set(tag) {
field = tag
if (tag != null) {
addFilter("tag", tag)
}
}
var shipping_class: String? = null
set(shipping_class) {
field = shipping_class
if (shipping_class != null) {
addFilter("shipping_class", shipping_class)
}
}
var attribute: String? = null
set(attribute) {
field = attribute
if (attribute != null) {
addFilter("attribute", attribute)
}
}
var attribute_term: String? = null
set(attribute_term) {
field = attribute_term
if (attribute_term != null) {
addFilter("attribute_term", attribute_term)
}
}
var tax_class: String? = null
set(tax_class) {
field = tax_class
if (tax_class != null) {
addFilter("tax_class", tax_class)
}
}
var isOn_sale: Boolean = false
set(on_sale) {
field = on_sale
addFilter("on_sale", on_sale)
}
var min_price: String? = null
set(min_price) {
field = min_price
if (min_price != null) {
addFilter("min_price", min_price)
}
}
var max_price: String? = null
set(max_price) {
field = max_price
if (max_price != null) {
addFilter("max_price", max_price)
}
}
var stock_status: String? = null
set(stock_status) {
field = stock_status
if (stock_status != null) {
addFilter("stock_status", stock_status)
}
}
}

View File

@ -1,32 +0,0 @@
package me.gilo.woodroid.models.filters
class RefundFilter : ListFilter() {
var parent: IntArray? = null
set(parent) {
field = parent
if (parent != null) {
addFilter("parent", parent)
}
}
var parent_exclude: IntArray? = null
set(parent_exclude) {
field = parent_exclude
if (parent_exclude != null) {
addFilter("parent_exclude", parent_exclude)
}
}
internal var dp: Int = 0
fun getDp(): Int {
return dp
}
fun setDp(dp: Int) {
this.dp = dp
addFilter("dp", dp)
}
}

View File

@ -1,38 +0,0 @@
package me.gilo.woodroid.models.filters
class ReportsDateFilter : Filter() {
internal lateinit var period: String
internal lateinit var date_min: String
internal lateinit var date_max: String
fun getPeriod(): String {
return period
}
fun setPeriod(period: String) {
this.period = period
addFilter("period", period)
}
fun getDate_min(): String {
return date_min
}
fun setDate_min(date_min: String) {
this.date_min = date_min
addFilter("date_min", date_min)
}
fun getDate_max(): String {
return date_max
}
fun setDate_max(date_max: String) {
this.date_max = date_max
addFilter("date_max", date_max)
}
}

View File

@ -1,49 +0,0 @@
package me.gilo.woodroid.models.filters
enum class Role {
ALL {
override fun toString(): String {
return "all"
}
},
ADMINISTRATOR {
override fun toString(): String {
return "administrator"
}
},
EDITOR {
override fun toString(): String {
return "editor"
}
},
AUTHOR {
override fun toString(): String {
return "author"
}
},
CONTRIBUTOR {
override fun toString(): String {
return "contributor"
}
},
SUBSCRIBER {
override fun toString(): String {
return "subscriber"
}
},
CUSTOMER {
override fun toString(): String {
return "customer"
}
},
SHOP_MANAGER {
override fun toString(): String {
return "shop_manager"
}
}
}

View File

@ -1,34 +0,0 @@
package me.gilo.woodroid.models.filters
class ShippingClassesFilter : ListFilter() {
internal var product: Int = 0
internal var hide_empty: Boolean = false
internal lateinit var slug: String
var isHide_empty: Boolean
get() = hide_empty
set(hide_empty) {
this.hide_empty = hide_empty
addFilter("hide_empty", hide_empty)
}
fun getProduct(): Int {
return product
}
fun setProduct(product: Int) {
this.product = product
addFilter("product", product)
}
fun getSlug(): String {
return slug
}
fun setSlug(slug: String) {
this.slug = slug
addFilter("slug", slug)
}
}

View File

@ -1,15 +0,0 @@
package me.gilo.woodroid.models.filters
enum class Sort {
ASCENDING {
override fun toString(): String {
return "asc"
}
},
DESCENDING {
override fun toString(): String {
return "desc"
}
}
}

View File

@ -1,15 +0,0 @@
package me.gilo.woodroid.models.filters
class WebhookFilter : ListFilter() {
internal lateinit var status: String
fun getStatus(): String {
return status
}
fun setStatus(status: String) {
this.status = status
addFilter("status", status)
}
}

View File

@ -1,8 +0,0 @@
package me.gilo.woodroid.models.report
class CouponsTotal {
lateinit var slug: String
lateinit var name: String
lateinit var total: String
}

View File

@ -1,8 +0,0 @@
package me.gilo.woodroid.models.report
class CustomersTotal {
lateinit var slug: String
lateinit var name: String
lateinit var total: String
}

View File

@ -1,8 +0,0 @@
package me.gilo.woodroid.models.report
class OrdersTotal {
lateinit var slug: String
lateinit var name: String
lateinit var total: String
}

View File

@ -1,8 +0,0 @@
package me.gilo.woodroid.models.report
class ProductsTotal {
lateinit var slug: String
lateinit var name: String
lateinit var total: String
}

View File

@ -1,8 +0,0 @@
package me.gilo.woodroid.models.report
class ReviewsTotal {
lateinit var slug: String
lateinit var name: String
lateinit var total: String
}

View File

@ -1,13 +0,0 @@
package me.gilo.woodroid.models.report
class SalesPeriodTotal {
private val shipping: String? = null
private val discount: String? = null
private val orders: Int = 0
private val tax: String? = null
private val customers: Int = 0
private val items: Int = 0
private val sales: String? = null
}

View File

@ -1,17 +0,0 @@
package me.gilo.woodroid.models.report
class SalesTotal {
var total_discount: Int = 0
var net_sales: String? = null
var total_customers: String? = null
var totals: Map<String, SalesPeriodTotal>? = null
var total_orders: Int = 0
var total_tax: String? = null
var total_items: Int = 0
var totals_grouped_by: String? = null
var total_shipping: String? = null
var average_sales: String? = null
var total_sales: String? = null
var total_refunds: Int = 0
}

View File

@ -1,8 +0,0 @@
package me.gilo.woodroid.models.report
class TopSellerProducts {
lateinit var title: String
var product_id: Int = 0
var quantity: Int = 0
}

View File

@ -6,10 +6,17 @@ import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.firestore.CollectionReference
import com.google.firebase.firestore.FirebaseFirestore
import me.gilo.woodroid.core.cart.CartRepository
import me.gilo.woodroid.models.LineItem
import me.gilo.woodroid.core.cart.lines.LineItem
open class FirebaseCartRepository(userId : String) : CartRepository() {
private val cart: CollectionReference = FirebaseFirestore.getInstance()
.collection("users")
.document(userId)
.collection("cart")
open class FirebaseCartRepository : CartRepository() {
override fun cart(): LiveData<List<LineItem>> {
TODO("not implemented")
}
@ -39,9 +46,6 @@ open class FirebaseCartRepository : CartRepository() {
}
private val cart: CollectionReference = FirebaseFirestore.getInstance()
.collection("users")
.document(FirebaseAuth.getInstance().currentUser?.uid ?: "0")
.collection("cart")
}

View File

@ -1,25 +0,0 @@
package me.gilo.woodroid.firebasecart.common;
import android.arch.lifecycle.LiveData;
import android.support.annotation.NonNull;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.firestore.DocumentReference;
public final class CompletionDocLiveData extends LiveData<Resource<Boolean>> implements OnCompleteListener<DocumentReference> {
public CompletionDocLiveData() {
setValue(new Resource<>(Status.LOADING));
}
@Override
public final void onComplete(@NonNull Task<DocumentReference> task) {
if (task.isSuccessful()) {
setValue(new Resource<>(true));
} else {
setValue(new Resource<>(task.getException()));
}
}
}

View File

@ -1,21 +0,0 @@
package me.gilo.woodroid.app.common
import android.arch.lifecycle.LiveData
import com.google.android.gms.tasks.OnCompleteListener
import com.google.android.gms.tasks.Task
class CompletionGenericLiveData<T> : LiveData<Resource<T>>(), OnCompleteListener<T> {
init {
value = Resource(Status.LOADING)
}
override fun onComplete(task: Task<T>) {
if (task.isSuccessful) {
setValue(Resource(task.result!!))
} else {
setValue(Resource(task.exception!!))
}
}
}

View File

@ -1,24 +0,0 @@
package me.gilo.woodroid.firebasecart.common;
import android.arch.lifecycle.LiveData;
import android.support.annotation.NonNull;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
public final class CompletionLiveData extends LiveData<Resource<Boolean>> implements OnCompleteListener<Void> {
public CompletionLiveData() {
setValue(new Resource<>(Status.LOADING));
}
@Override
public final void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
setValue(new Resource<>(true));
} else {
setValue(new Resource<>(task.getException()));
}
}
}

View File

@ -1,41 +0,0 @@
package me.gilo.woodroid.firebasecart.common;
import android.arch.lifecycle.LiveData;
import com.google.firebase.firestore.*;
public class DocumentLiveData<T> extends LiveData<Resource<T>>
implements EventListener<DocumentSnapshot> {
private final Class<T> type;
private ListenerRegistration registration;
private final DocumentReference ref;
public DocumentLiveData(DocumentReference ref, Class<T> type) {
this.ref = ref;
this.type = type;
}
@Override
public void onEvent(DocumentSnapshot snapshot, FirebaseFirestoreException e) {
if (e != null) {
setValue(new Resource<>(e));
return;
}
setValue(new Resource<>(snapshot.toObject(type)));
}
@Override
protected void onActive() {
super.onActive();
registration = ref.addSnapshotListener(this);
}
@Override
protected void onInactive() {
super.onInactive();
if (registration != null) {
registration.remove();
registration = null;
}
}
}

View File

@ -1,15 +1,21 @@
package me.gilo.woodroid.models
package me.gilo.woodroid.firebasecart.models
import com.google.gson.annotations.SerializedName
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.*
import java.util.ArrayList
import java.util.Date
class Order {
class Cart {
var id: Int = 0
@SerializedName("number")
lateinit var orderNumber: String
@SerializedName("created_at")
lateinit var createdAt: String
@ -18,51 +24,77 @@ class Order {
@SerializedName("updated_at")
lateinit var updatedAt: String
@SerializedName("completed_at")
lateinit var completedAt: String
lateinit var status: String
lateinit var currency: String
lateinit var total: String
lateinit var subtotal: String
@SerializedName("total_line_items_quantity")
var totalLineItemsQuantity: Int = 0
@SerializedName("total_tax")
lateinit var totalTax: String
@SerializedName("total_shipping")
lateinit var totalShipping: String
@SerializedName("cart_tax")
lateinit var cartTax: String
@SerializedName("shipping_tax")
lateinit var shippingTax: String
@SerializedName("total_discount")
lateinit var totalDiscount: String
@SerializedName("shipping_methods")
lateinit var shippingMethods: String
@SerializedName("payment_details")
lateinit var paymentDetails: PaymentDetails
@SerializedName("billing")
lateinit var billingAddress: BillingAddress
@SerializedName("shipping")
lateinit var shippingAddress: ShippingAddress
lateinit var note: String
@SerializedName("customer_ip")
lateinit var customerIp: String
@SerializedName("customer_user_agent")
lateinit var customerUserAgent: String
@SerializedName("customer_id")
var customerId: Int? = null
@SerializedName("view_order_url")
lateinit var viewOrderUrl: String
@SerializedName("line_items")
var lineItems: MutableList<LineItem> = ArrayList()
@SerializedName("shipping_lines")
var shippingLines: List<ShippingLine> = ArrayList()
@SerializedName("tax_lines")
var taxLines: List<TaxLine> = ArrayList()
@SerializedName("fee_lines")
var feeLines: List<FeeLine> = ArrayList()
@SerializedName("coupon_lines")
var couponLines: List<Any> = ArrayList()
lateinit var customer: Customer

View File

@ -1,73 +0,0 @@
package me.gilo.woodroid.firebasecart.models;
import me.gilo.woodroid.models.Product;
public class CartLineItem extends Model{
public float price;
public int quantity;
public int productId;
Product product;
String name;
String imageUrl;
String priceString;
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public int getProductId() {
return productId;
}
public void setProductId(int productId) {
this.productId = productId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public String getPriceString() {
return priceString;
}
public void setPriceString(String priceString) {
this.priceString = priceString;
}
public void setProduct(Product product) {
this.product = product;
}
public Product getProduct() {
return product;
}
}

View File

@ -1,6 +1,8 @@
package me.gilo.woodroid.models
package me.gilo.woodroid.firebasecart.models
import com.google.gson.annotations.SerializedName
import me.gilo.woodroid.models.BillingAddress
import me.gilo.woodroid.models.ShippingAddress
import java.io.Serializable

View File

@ -1,4 +1,4 @@
package me.gilo.woodroid.core.cart
package me.gilo.woodroid.models
class Option {
var size: Array<String>? = null

View File

@ -0,0 +1,11 @@
package me.gilo.woodroid.models
class TaxLine {
var id: Int = 0
var rate_id: Int = 0
var code: String? = null
var title: String? = null
var total: Double = 0.toDouble()
var isCompound: Boolean = false
}