From b01f08ba2fd51938b4ce7d81a6b97ec8bbc5fa28 Mon Sep 17 00:00:00 2001 From: traxys Date: Sun, 25 Jun 2023 21:10:44 +0200 Subject: [PATCH] server: Switch to steps a single blob of text --- migration/src/m20230618_163416_recipe.rs | 63 +++++------------------- src/entity/mod.rs | 1 - src/entity/prelude.rs | 1 - src/entity/recipe.rs | 10 +--- 4 files changed, 14 insertions(+), 61 deletions(-) diff --git a/migration/src/m20230618_163416_recipe.rs b/migration/src/m20230618_163416_recipe.rs index 6948e84..7a3dac9 100644 --- a/migration/src/m20230618_163416_recipe.rs +++ b/migration/src/m20230618_163416_recipe.rs @@ -12,24 +12,17 @@ enum Recipe { Household, Name, Ranking, + Steps, } #[derive(Iden)] -enum RecipeIngerdients { +enum RecipeIngredients { Table, RecipeId, IngredientId, Amount, } -#[derive(Iden)] -enum RecipeSteps { - Table, - RecipeId, - Num, - Text, -} - #[async_trait::async_trait] impl MigrationTrait for Migration { async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { @@ -48,6 +41,7 @@ impl MigrationTrait for Migration { .col(ColumnDef::new(Recipe::Name).text().not_null()) .col(ColumnDef::new(Recipe::Ranking).integer().not_null()) .col(ColumnDef::new(Recipe::Household).uuid().not_null()) + .col(ColumnDef::new(Recipe::Steps).text().not_null()) .foreign_key( ForeignKey::create() .name("FK_recipe_household") @@ -63,61 +57,32 @@ impl MigrationTrait for Migration { manager .create_table( Table::create() - .table(RecipeSteps::Table) + .table(RecipeIngredients::Table) .if_not_exists() .col( - ColumnDef::new(RecipeSteps::RecipeId) - .big_integer() - .not_null(), - ) - .col(ColumnDef::new(RecipeSteps::Num).integer().not_null()) - .col(ColumnDef::new(RecipeSteps::Text).text().not_null()) - .primary_key( - Index::create() - .col(RecipeSteps::Num) - .col(RecipeSteps::RecipeId), - ) - .foreign_key( - ForeignKey::create() - .name("FK_recipe_steps") - .from(RecipeSteps::Table, RecipeSteps::RecipeId) - .to(Recipe::Table, Recipe::Id) - .on_delete(ForeignKeyAction::Restrict) - .on_update(ForeignKeyAction::Restrict), - ) - .to_owned(), - ) - .await?; - - manager - .create_table( - Table::create() - .table(RecipeIngerdients::Table) - .if_not_exists() - .col( - ColumnDef::new(RecipeIngerdients::RecipeId) + ColumnDef::new(RecipeIngredients::RecipeId) .big_integer() .not_null(), ) .col( - ColumnDef::new(RecipeIngerdients::IngredientId) + ColumnDef::new(RecipeIngredients::IngredientId) .big_integer() .not_null(), ) .col( - ColumnDef::new(RecipeIngerdients::Amount) + ColumnDef::new(RecipeIngredients::Amount) .double() .not_null(), ) .primary_key( Index::create() - .col(RecipeIngerdients::IngredientId) - .col(RecipeIngerdients::RecipeId), + .col(RecipeIngredients::IngredientId) + .col(RecipeIngredients::RecipeId), ) .foreign_key( ForeignKey::create() .name("FK_recipe_ingredients_recipe") - .from(RecipeIngerdients::Table, RecipeIngerdients::RecipeId) + .from(RecipeIngredients::Table, RecipeIngredients::RecipeId) .to(Recipe::Table, Recipe::Id) .on_delete(ForeignKeyAction::Restrict) .on_update(ForeignKeyAction::Restrict), @@ -125,7 +90,7 @@ impl MigrationTrait for Migration { .foreign_key( ForeignKey::create() .name("FK_recipe_ingredients_ingredient") - .from(RecipeIngerdients::Table, RecipeIngerdients::IngredientId) + .from(RecipeIngredients::Table, RecipeIngredients::IngredientId) .to(Ingredient::Table, Ingredient::Id) .on_delete(ForeignKeyAction::Restrict) .on_update(ForeignKeyAction::Restrict), @@ -139,11 +104,7 @@ impl MigrationTrait for Migration { async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { manager - .drop_table(Table::drop().table(RecipeIngerdients::Table).to_owned()) - .await?; - - manager - .drop_table(Table::drop().table(RecipeSteps::Table).to_owned()) + .drop_table(Table::drop().table(RecipeIngredients::Table).to_owned()) .await?; manager diff --git a/src/entity/mod.rs b/src/entity/mod.rs index 950eb7e..66fc4c0 100644 --- a/src/entity/mod.rs +++ b/src/entity/mod.rs @@ -7,5 +7,4 @@ pub mod household_members; pub mod ingredient; pub mod recipe; pub mod recipe_ingerdients; -pub mod recipe_steps; pub mod user; diff --git a/src/entity/prelude.rs b/src/entity/prelude.rs index f516608..78fe7a4 100644 --- a/src/entity/prelude.rs +++ b/src/entity/prelude.rs @@ -5,5 +5,4 @@ pub use super::household_members::Entity as HouseholdMembers; pub use super::ingredient::Entity as Ingredient; pub use super::recipe::Entity as Recipe; pub use super::recipe_ingerdients::Entity as RecipeIngerdients; -pub use super::recipe_steps::Entity as RecipeSteps; pub use super::user::Entity as User; diff --git a/src/entity/recipe.rs b/src/entity/recipe.rs index ba0b77e..0853c50 100644 --- a/src/entity/recipe.rs +++ b/src/entity/recipe.rs @@ -11,6 +11,8 @@ pub struct Model { pub name: String, pub ranking: i32, pub household: Uuid, + #[sea_orm(column_type = "Text")] + pub steps: String, } #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] @@ -23,8 +25,6 @@ pub enum Relation { on_delete = "Restrict" )] Household, - #[sea_orm(has_many = "super::recipe_steps::Entity")] - RecipeSteps, } impl Related for Entity { @@ -33,12 +33,6 @@ impl Related for Entity { } } -impl Related for Entity { - fn to() -> RelationDef { - Relation::RecipeSteps.def() - } -} - impl Related for Entity { fn to() -> RelationDef { super::recipe_ingerdients::Relation::Ingredient.def()