Parse ingredient amounts from V1 response

This commit is contained in:
Kirill Kamakin
2022-12-04 18:47:27 +01:00
parent 8e7ccbeca1
commit a628912557
17 changed files with 472 additions and 31 deletions

View File

@@ -6,7 +6,7 @@ import gq.kirmanak.mealient.database.recipe.RecipeDao
import gq.kirmanak.mealient.database.recipe.entity.*
@Database(
version = 6,
version = 7,
entities = [
RecipeSummaryEntity::class,
RecipeEntity::class,
@@ -19,6 +19,7 @@ import gq.kirmanak.mealient.database.recipe.entity.*
AutoMigration(from = 3, to = 4),
AutoMigration(from = 4, to = 5, spec = AppDb.From4To5Migration::class),
AutoMigration(from = 5, to = 6, spec = AppDb.From5To6Migration::class),
AutoMigration(from = 6, to = 7),
]
)
@TypeConverters(RoomTypeConverters::class)

View File

@@ -8,4 +8,5 @@ import androidx.room.PrimaryKey
data class RecipeEntity(
@PrimaryKey @ColumnInfo(name = "remote_id") val remoteId: String,
@ColumnInfo(name = "recipe_yield") val recipeYield: String,
@ColumnInfo(name = "disable_amounts", defaultValue = "true") val disableAmounts: Boolean,
)

View File

@@ -9,6 +9,9 @@ data class RecipeIngredientEntity(
@PrimaryKey(autoGenerate = true) @ColumnInfo(name = "local_id") val localId: Long = 0,
@ColumnInfo(name = "recipe_id") val recipeId: String,
@ColumnInfo(name = "note") val note: String,
@ColumnInfo(name = "food") val food: String?,
@ColumnInfo(name = "unit") val unit: String?,
@ColumnInfo(name = "quantity") val quantity: Double?,
) {
override fun equals(other: Any?): Boolean {
if (this === other) return true
@@ -18,6 +21,9 @@ data class RecipeIngredientEntity(
if (recipeId != other.recipeId) return false
if (note != other.note) return false
if (food != other.food) return false
if (unit != other.unit) return false
if (quantity != other.quantity) return false
return true
}
@@ -25,6 +31,9 @@ data class RecipeIngredientEntity(
override fun hashCode(): Int {
var result = recipeId.hashCode()
result = 31 * result + note.hashCode()
result = 31 * result + (food?.hashCode() ?: 0)
result = 31 * result + (unit?.hashCode() ?: 0)
result = 31 * result + quantity.hashCode()
return result
}
}