Зависимости + Черновые сущности

This commit is contained in:
Данила Мочалов 2023-10-25 03:20:42 +04:00
parent 57d4d6b0c8
commit 9408592281
18 changed files with 205 additions and 87 deletions

View File

@ -1,6 +1,8 @@
plugins { plugins {
id 'com.android.application' id 'com.android.application'
id 'org.jetbrains.kotlin.android' id 'org.jetbrains.kotlin.android'
//lab 3
id 'kotlin-kapt'
} }
android { android {
@ -18,6 +20,10 @@ android {
vectorDrawables { vectorDrawables {
useSupportLibrary true useSupportLibrary true
} }
kapt {
arguments {arg("room.schemaLocation", "$projectDir/schemas")}
}
} }
buildTypes { buildTypes {
@ -62,4 +68,9 @@ dependencies {
androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_ui_version" androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_ui_version"
debugImplementation "androidx.compose.ui:ui-tooling:$compose_ui_version" debugImplementation "androidx.compose.ui:ui-tooling:$compose_ui_version"
debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_ui_version" debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_ui_version"
// lab 3
implementation 'androidx.room:room-runtime:2.5.0' // Библиотека "Room"
kapt "androidx.room:room-compiler:2.5.0" // Кодогенератор
implementation 'androidx.room:room-ktx:2.5.0' // Дополнительно для Kotlin Coroutines, Kotlin Flows
} }

View File

@ -0,0 +1,4 @@
package com.example.shawarma.data.dao
interface UserDao {
}

View File

@ -0,0 +1,36 @@
package com.example.shawarma.data.models
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "discount_products")
data class DiscountProductModel(
@PrimaryKey(autoGenerate = true)
val id: Int?,
@ColumnInfo(name = "discount_title")
val title: String,
@ColumnInfo(name = "discount_old_price")
val oldPrice: Int,
@ColumnInfo(name = "discount_new_price")
val newPrice: Int
) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as DiscountProductModel
if (id != other.id) return false
return true
}
override fun hashCode(): Int {
return id ?: -1
}
}
fun getAllDiscountProducts() : List<DiscountProductModel> {
return listOf(
DiscountProductModel(1, "Шаурма", 150, 120),
DiscountProductModel(1, "Шаурма", 150, 120)
)
}

View File

@ -0,0 +1,39 @@
package com.example.shawarma.data.models
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.PrimaryKey
import java.util.Date
@Entity(
tableName = "orders",
foreignKeys = [
ForeignKey(
entity = UserModel::class,
parentColumns = ["id"],
childColumns = ["user_id"],
)
]
)
data class OrderModel(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
val id: Int,
@ColumnInfo(name = "order_status")
val status: String,
@ColumnInfo(name = "user_id", index = true)
val userId: Int?,
@ColumnInfo(name = "date")
val date: Date
)
fun getOrdersByUserId() : List<OrderModel> {
return listOf(
)
}
fun getAllOrders() : List<OrderModel> {
return listOf(
)
}

View File

@ -0,0 +1,16 @@
package com.example.shawarma.data.models
import androidx.room.ColumnInfo
import androidx.room.Entity
@Entity(tableName = "order_product", primaryKeys = ["order_id", "product_id"])
data class OrderProductModel(
@ColumnInfo(name = "order_id", index = true)
var orderId: Int,
@ColumnInfo(name = "product_id", index = true)
var productId: Int,
@ColumnInfo(name = "quantity")
val quantity: Int,
@ColumnInfo(name = "total_price")
val totalPrice: Int
)

View File

@ -0,0 +1,11 @@
package com.example.shawarma.data.models
import androidx.room.Embedded
import androidx.room.Relation
data class OrderProductModelWithProduct(
@Embedded
val orderProductModel: OrderProductModel,
@Relation(entity = ProductModel::class, parentColumn = "product_id", entityColumn = "id")
val productList: List<ProductModel>
)

View File

@ -0,0 +1,11 @@
package com.example.shawarma.data.models
import androidx.room.Embedded
import androidx.room.Relation
data class OrderWithProducts(
@Embedded
val order: OrderModel,
@Relation(entity = OrderProductModel::class, parentColumn = "id", entityColumn = "order_id")
val orderWithProducts: List<OrderProductModelWithProduct>
)

View File

@ -0,0 +1,36 @@
package com.example.shawarma.data.models
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "products")
data class ProductModel(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
val id: Int?,
@ColumnInfo(name = "product_title")
val title: String,
@ColumnInfo(name = "product_price")
val price: Int,
@ColumnInfo(name = "product_old_price")
val oldPrice: Int?,
) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as ProductModel
if (id != other.id) return false
return true
}
override fun hashCode(): Int {
return id ?: -1
}
}
fun getProducts() :List<ProductModel> {
return listOf(
)
}

View File

@ -1,4 +1,4 @@
package com.example.shawarma.models package com.example.shawarma.data.models
enum class OrderStatus { enum class OrderStatus {
Unpaid, Preparing, Prepared, Processed Unpaid, Preparing, Prepared, Processed

View File

@ -0,0 +1,30 @@
package com.example.shawarma.data.models
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "users")
data class UserModel(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
val id: Int?,
@ColumnInfo(name = "user_login")
val login: String,
@ColumnInfo(name = "user_password")
val password: String,
@ColumnInfo(name = "user_role")
val role: String
) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as UserModel
if (id != other.id) return false
return true
}
override fun hashCode(): Int {
return id ?: -1
}
}

View File

@ -1,15 +0,0 @@
package com.example.shawarma.models
data class DiscountProductModel(
val id: Int,
val title: String,
val oldPrice: Int,
val newPrice: Int
)
fun getAllDiscountProducts() : List<DiscountProductModel> {
return listOf(
DiscountProductModel(1, "Шаурма", 150, 120),
DiscountProductModel(1, "Шаурма", 150, 120)
)
}

View File

@ -1,34 +0,0 @@
package com.example.shawarma.models
import java.util.Date
data class OrderModel(
val id: Int,
val status: OrderStatus,
val productsId: HashMap<Int, Int>,
val userId: Int,
val date: Date
)
fun getOrdersByUserId() : List<OrderModel> {
val map1 = HashMap<Int, Int>()
map1[1] = 2
val map2 = HashMap<Int, Int>()
map2[1] = 2
return listOf(
OrderModel(1, OrderStatus.Unpaid, map1, 1, Date()),
OrderModel(2, OrderStatus.Preparing, map2 , 1, Date())
)
}
fun getAllOrders() : List<OrderModel> {
val map1 = HashMap<Int, Int>()
map1[1] = 2
return listOf(
OrderModel(1, OrderStatus.Prepared, map1, 1, Date()),
OrderModel(2, OrderStatus.Preparing, map1 , 1, Date()),
OrderModel(3, OrderStatus.Processed, map1 , 1, Date())
)
}

View File

@ -1,19 +0,0 @@
package com.example.shawarma.models
data class ProductModel(
val id: Int,
val title: String,
val price: Int
)
fun getProducts() :List<ProductModel> {
return listOf(
ProductModel(1, "Классика", 150),
ProductModel(1, "Классика", 150),
ProductModel(1, "Классика", 150),
ProductModel(1, "Классика", 150),
ProductModel(1, "Классика", 150),
ProductModel(1, "Классика", 150),
)
}

View File

@ -1,8 +0,0 @@
package com.example.shawarma.models
data class UserModel(
val id: Int,
val login: String,
val password: String,
val role: String
)

View File

@ -38,9 +38,9 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.ui.zIndex import androidx.compose.ui.zIndex
import com.example.shawarma.R import com.example.shawarma.R
import com.example.shawarma.models.OrderModel import com.example.shawarma.data.models.OrderModel
import com.example.shawarma.models.OrderStatus import com.example.shawarma.data.models.OrderStatus
import com.example.shawarma.models.getOrdersByUserId import com.example.shawarma.data.models.getOrdersByUserId
import com.example.shawarma.ui.theme.MarckFamily import com.example.shawarma.ui.theme.MarckFamily
import com.example.shawarma.ui.theme.MyLightRed import com.example.shawarma.ui.theme.MyLightRed
import com.example.shawarma.ui.theme.MyMainBackground import com.example.shawarma.ui.theme.MyMainBackground

View File

@ -31,8 +31,8 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.ui.zIndex import androidx.compose.ui.zIndex
import com.example.shawarma.R import com.example.shawarma.R
import com.example.shawarma.models.DiscountProductModel import com.example.shawarma.data.models.DiscountProductModel
import com.example.shawarma.models.getAllDiscountProducts import com.example.shawarma.data.models.getAllDiscountProducts
import com.example.shawarma.screens.home.HomeList import com.example.shawarma.screens.home.HomeList
import com.example.shawarma.ui.theme.MarckFamily import com.example.shawarma.ui.theme.MarckFamily
import com.example.shawarma.ui.theme.MyLightYellow import com.example.shawarma.ui.theme.MyLightYellow

View File

@ -31,8 +31,8 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.ui.zIndex import androidx.compose.ui.zIndex
import com.example.shawarma.R import com.example.shawarma.R
import com.example.shawarma.models.ProductModel import com.example.shawarma.data.models.ProductModel
import com.example.shawarma.models.getProducts import com.example.shawarma.data.models.getProducts
import com.example.shawarma.ui.theme.MarckFamily import com.example.shawarma.ui.theme.MarckFamily
import com.example.shawarma.ui.theme.MyLightYellow import com.example.shawarma.ui.theme.MyLightYellow
import com.example.shawarma.ui.theme.MyMainBackground import com.example.shawarma.ui.theme.MyMainBackground

View File

@ -30,9 +30,9 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.ui.zIndex import androidx.compose.ui.zIndex
import com.example.shawarma.models.OrderModel import com.example.shawarma.data.models.OrderModel
import com.example.shawarma.models.OrderStatus import com.example.shawarma.data.models.OrderStatus
import com.example.shawarma.models.getAllOrders import com.example.shawarma.data.models.getAllOrders
import com.example.shawarma.ui.theme.MarckFamily import com.example.shawarma.ui.theme.MarckFamily
import com.example.shawarma.ui.theme.MyLightYellow import com.example.shawarma.ui.theme.MyLightYellow
import com.example.shawarma.ui.theme.MyMainBackground import com.example.shawarma.ui.theme.MyMainBackground