feat: replace book instance status with available boolean
This commit is contained in:
parent
7c7bda5f94
commit
528f40c58a
2 changed files with 4 additions and 20 deletions
|
|
@ -9,7 +9,7 @@ pub struct Model {
|
|||
pub id: u32,
|
||||
pub price: f32,
|
||||
pub sold_price: Option<f32>,
|
||||
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(
|
||||
|
|
|
|||
|
|
@ -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<book_instance::BookStatus>,
|
||||
owner_id: Option<u32>,
|
||||
price: Option<f32>,
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue