From 528f40c58a25a62879a3b7f377883cb536ed5ffd Mon Sep 17 00:00:00 2001 From: Ninjdai Date: Tue, 5 Aug 2025 14:15:17 +0200 Subject: [PATCH] feat: replace book instance status with available boolean --- src/entities/book_instance.rs | 13 +------------ src/routes/book_instance.rs | 11 +++-------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/src/entities/book_instance.rs b/src/entities/book_instance.rs index fa01818..64f7a78 100644 --- a/src/entities/book_instance.rs +++ b/src/entities/book_instance.rs @@ -9,7 +9,7 @@ pub struct Model { pub id: u32, pub price: f32, pub sold_price: Option, - pub status: BookStatus, + pub available: bool, pub book_id: u32, pub owner_id: u32, pub bal_id: u32 @@ -26,17 +26,6 @@ impl Entity { } } -#[derive(EnumIter, DeriveActiveEnum, PartialEq, Eq ,Deserialize, Serialize, Clone, Copy, Debug, utoipa::ToSchema)] -#[sea_orm(rs_type = "String", db_type = "String(StringLen::N(1))")] -pub enum BookStatus { - #[sea_orm(string_value = "A")] - Available, - #[sea_orm(string_value = "S")] - Sold, - #[sea_orm(string_value = "D")] - Damaged -} - #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] pub enum Relation { #[sea_orm( diff --git a/src/routes/book_instance.rs b/src/routes/book_instance.rs index c87b759..6d1aa46 100644 --- a/src/routes/book_instance.rs +++ b/src/routes/book_instance.rs @@ -80,7 +80,7 @@ pub async fn create_book_instance( owner_id: Set(instance_payload.owner_id), bal_id: Set(instance_payload.bal_id), price: Set(instance_payload.price), - status: Set(book_instance::BookStatus::Available), + available: Set(true), id: NotSet, sold_price: NotSet, }; @@ -97,7 +97,6 @@ pub async fn create_book_instance( #[derive(Deserialize, Serialize, utoipa::ToSchema)] pub struct BookInstanceUpdateParams { - status: Option, owner_id: Option, price: Option, } @@ -138,10 +137,6 @@ pub async fn update_book_instance( None => book_instance.owner_id, Some(v) => Set(v) }; - book_instance.status = match instance_payload.status { - None => book_instance.status, - Some(v) => Set(v) - }; match book_instance.update(state.db_conn.as_ref()).await { Err(e) => { @@ -192,7 +187,7 @@ pub async fn sell_book_instance( if let Ok(Some(book_instance)) = BookInstance::find_by_id(id).one(state.db_conn.as_ref()).await { let mut book_instance: book_instance::ActiveModel = book_instance.into(); book_instance.sold_price = Set(Some(instance_payload.price)); - book_instance.status = Set(book_instance::BookStatus::Sold); + book_instance.available = Set(false); match book_instance.update(state.db_conn.as_ref()).await { Err(e) => { @@ -242,7 +237,7 @@ pub async fn bulk_create_book_instance( owner_id: Set(p.owner_id), bal_id: Set(p.bal_id), price: Set(p.price), - status: Set(book_instance::BookStatus::Available), + available: Set(true), id: NotSet, sold_price: NotSet }