[UPDATE] Products news structure
This commit is contained in:
@@ -0,0 +1,166 @@
|
|||||||
|
package com.ericampire.android.androidstudycase
|
||||||
|
|
||||||
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
/**
|
||||||
|
* - Pending : Commande faite mais en attente de validation
|
||||||
|
* - Cancelled : Order cancelled by the user
|
||||||
|
* - Declined : Order cancelled by the store
|
||||||
|
* - Validated : Order validated by the store
|
||||||
|
* - Delivered : Order delivered
|
||||||
|
* - In Shipping : Order in shipping
|
||||||
|
*/
|
||||||
|
|
||||||
|
data class Order(
|
||||||
|
val uid: String = "",
|
||||||
|
val products: List<ProductCart>,
|
||||||
|
val fees: Double,
|
||||||
|
val refund: Any? = null
|
||||||
|
)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Une copy de [Product] plus quantity et shipping in express or not
|
||||||
|
*/
|
||||||
|
data class ProductCart(
|
||||||
|
val product: Product, // Le product modifier avec un one meta data value
|
||||||
|
val quantity: Long,
|
||||||
|
val expressShipping: Boolean = false,
|
||||||
|
val refund: Any? = null
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
data class ProductTag(
|
||||||
|
val uid: String, // Unique
|
||||||
|
val title: String,
|
||||||
|
val createdAt: Date,
|
||||||
|
val updatedAt: Date,
|
||||||
|
val description: String,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
data class Product(
|
||||||
|
val uid: String = "",
|
||||||
|
val createdAt: Date? = null,
|
||||||
|
val price: Double = 0.0,
|
||||||
|
val name: String = "",
|
||||||
|
|
||||||
|
// A ajouter
|
||||||
|
val tags: List<String>, // list of uid tag
|
||||||
|
val uidStore: String,
|
||||||
|
val uidGroup: String,
|
||||||
|
val shippingDetail: ProductShippingPrice,
|
||||||
|
val metaDatas: List<MetaData> = emptyList(),
|
||||||
|
val productSpecs: Map<String, String> = mapOf(),
|
||||||
|
val productDimension: ProductDimension
|
||||||
|
)
|
||||||
|
|
||||||
|
class ProductShippingPrice(
|
||||||
|
val freeShipping: Boolean = false,
|
||||||
|
val defaultShippingPrice: Double = 0.0,
|
||||||
|
val expressShippingPrice: Double = 0.0,
|
||||||
|
val expressShippingDetail: String = "",
|
||||||
|
)
|
||||||
|
|
||||||
|
data class ProductDimension(
|
||||||
|
val weight: Double = 0.0,
|
||||||
|
val length: Double = 0.0,
|
||||||
|
val width: Double = 0.0,
|
||||||
|
val height: Double = 0.0,
|
||||||
|
val fragileBox: Boolean = false,
|
||||||
|
)
|
||||||
|
|
||||||
|
data class MetaData(
|
||||||
|
val uid: String = "",
|
||||||
|
val name: String = "",
|
||||||
|
val description: String = "",
|
||||||
|
val type: MetaDataValueType = MetaDataValueType.TEXT,
|
||||||
|
val metaDataValues: List<MetaDataValue> = emptyList(),
|
||||||
|
)
|
||||||
|
|
||||||
|
enum class MetaDataValueType {
|
||||||
|
TEXT, COLOR, IMAGE_URL
|
||||||
|
}
|
||||||
|
|
||||||
|
data class MetaDataValue(
|
||||||
|
val uid: String = "",
|
||||||
|
val value: String = "",
|
||||||
|
val extraPrice: Double = 0.0,
|
||||||
|
val available: Boolean = false,
|
||||||
|
)
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
val capacityMetaData = MetaData(
|
||||||
|
uid = "sdfdf",
|
||||||
|
name = "Capacity",
|
||||||
|
description = "The storage of the phone",
|
||||||
|
type = MetaDataValueType.TEXT,
|
||||||
|
metaDataValues = listOf(
|
||||||
|
MetaDataValue(
|
||||||
|
uid = "12142",
|
||||||
|
value = "16GB",
|
||||||
|
extraPrice = 0.0,
|
||||||
|
available = false,
|
||||||
|
),
|
||||||
|
MetaDataValue(
|
||||||
|
uid = "1214sdf2",
|
||||||
|
value = "32GB",
|
||||||
|
extraPrice = 23.5,
|
||||||
|
available = true,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
val colorMetaData = MetaData(
|
||||||
|
uid = "sdfdf",
|
||||||
|
name = "Color",
|
||||||
|
description = "The color of the phone",
|
||||||
|
type = MetaDataValueType.COLOR,
|
||||||
|
metaDataValues = listOf(
|
||||||
|
MetaDataValue(
|
||||||
|
uid = "12142",
|
||||||
|
value = "#FF2335",
|
||||||
|
extraPrice = 0.0,
|
||||||
|
available = false
|
||||||
|
),
|
||||||
|
MetaDataValue(
|
||||||
|
uid = "1214sdf2",
|
||||||
|
value = "#FF2335",
|
||||||
|
extraPrice = 0.0,
|
||||||
|
available = true
|
||||||
|
),
|
||||||
|
MetaDataValue(
|
||||||
|
uid = "1214sdf2",
|
||||||
|
value = "#FF2335",
|
||||||
|
extraPrice = 0.0,
|
||||||
|
available = true
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
val product = Product(
|
||||||
|
uid = "dsfdf",
|
||||||
|
name = "Iphone 13",
|
||||||
|
price = 120.0,
|
||||||
|
productSpecs = mapOf(
|
||||||
|
"Model" to "12K23",
|
||||||
|
"Mark" to "Apple",
|
||||||
|
"Year" to "2021",
|
||||||
|
"Material" to "Plastic",
|
||||||
|
"Recycler" to "Oui"
|
||||||
|
),
|
||||||
|
metaDatas = listOf(capacityMetaData, colorMetaData),
|
||||||
|
productDimension = ProductDimension(
|
||||||
|
height = 12.0,
|
||||||
|
length = 12.9,
|
||||||
|
fragileBox = true,
|
||||||
|
weight = 12.0,
|
||||||
|
width = 12.0
|
||||||
|
),
|
||||||
|
shippingDetail = ProductShippingDetail(
|
||||||
|
freeShipping = false,
|
||||||
|
defaultShippingPrice = 12.0,
|
||||||
|
expressShippingPrice = 10.0,
|
||||||
|
expressShippingDetail = "Ajouter 10$ pour etre livre en 2 jours",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
+9
@@ -16,6 +16,7 @@ import androidx.compose.ui.platform.LocalContext
|
|||||||
import androidx.compose.ui.res.stringArrayResource
|
import androidx.compose.ui.res.stringArrayResource
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
import com.airbnb.mvrx.Fail
|
import com.airbnb.mvrx.Fail
|
||||||
@@ -253,3 +254,11 @@ private fun ExploreContent(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Preview
|
||||||
|
@Composable
|
||||||
|
fun TestPreview() {
|
||||||
|
Column {
|
||||||
|
Text("Hello");Text("Hello");Text("Hello");
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user