feat: replace book instance status with available boolean

This commit is contained in:
Ninjdai 2025-08-05 14:15:17 +02:00
parent 7c7bda5f94
commit 528f40c58a
2 changed files with 4 additions and 20 deletions

View file

@ -9,7 +9,7 @@ pub struct Model {
pub id: u32, pub id: u32,
pub price: f32, pub price: f32,
pub sold_price: Option<f32>, pub sold_price: Option<f32>,
pub status: BookStatus, pub available: bool,
pub book_id: u32, pub book_id: u32,
pub owner_id: u32, pub owner_id: u32,
pub bal_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)] #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation { pub enum Relation {
#[sea_orm( #[sea_orm(

View file

@ -80,7 +80,7 @@ pub async fn create_book_instance(
owner_id: Set(instance_payload.owner_id), owner_id: Set(instance_payload.owner_id),
bal_id: Set(instance_payload.bal_id), bal_id: Set(instance_payload.bal_id),
price: Set(instance_payload.price), price: Set(instance_payload.price),
status: Set(book_instance::BookStatus::Available), available: Set(true),
id: NotSet, id: NotSet,
sold_price: NotSet, sold_price: NotSet,
}; };
@ -97,7 +97,6 @@ pub async fn create_book_instance(
#[derive(Deserialize, Serialize, utoipa::ToSchema)] #[derive(Deserialize, Serialize, utoipa::ToSchema)]
pub struct BookInstanceUpdateParams { pub struct BookInstanceUpdateParams {
status: Option<book_instance::BookStatus>,
owner_id: Option<u32>, owner_id: Option<u32>,
price: Option<f32>, price: Option<f32>,
} }
@ -138,10 +137,6 @@ pub async fn update_book_instance(
None => book_instance.owner_id, None => book_instance.owner_id,
Some(v) => Set(v) 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 { match book_instance.update(state.db_conn.as_ref()).await {
Err(e) => { 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 { 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(); let mut book_instance: book_instance::ActiveModel = book_instance.into();
book_instance.sold_price = Set(Some(instance_payload.price)); 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 { match book_instance.update(state.db_conn.as_ref()).await {
Err(e) => { Err(e) => {
@ -242,7 +237,7 @@ pub async fn bulk_create_book_instance(
owner_id: Set(p.owner_id), owner_id: Set(p.owner_id),
bal_id: Set(p.bal_id), bal_id: Set(p.bal_id),
price: Set(p.price), price: Set(p.price),
status: Set(book_instance::BookStatus::Available), available: Set(true),
id: NotSet, id: NotSet,
sold_price: NotSet sold_price: NotSet
} }