diff --git a/rc_core/src/persist/user/account_json.rs b/rc_core/src/persist/user/account_json.rs index a6ebf9f..bd57217 100644 --- a/rc_core/src/persist/user/account_json.rs +++ b/rc_core/src/persist/user/account_json.rs @@ -1101,7 +1101,6 @@ impl super::User for UserData { to_update.name = oj_rc_database::sea_orm::ActiveValue::Set(new_name); to_update.crf_id = oj_rc_database::sea_orm::ActiveValue::Set(slot_to_copy.crf_id); to_update.movement_categories = oj_rc_database::sea_orm::ActiveValue::Set(slot_to_copy.movement_categories); - to_update.thumbnail_version = oj_rc_database::sea_orm::ActiveValue::Set(slot_to_copy.thumbnail_version); to_update.total_robot_cpu = oj_rc_database::sea_orm::ActiveValue::Set(slot_to_copy.total_robot_cpu); to_update.total_cosmetic_cpu = oj_rc_database::sea_orm::ActiveValue::Set(slot_to_copy.total_cosmetic_cpu); to_update.total_robot_ranking = oj_rc_database::sea_orm::ActiveValue::Set(slot_to_copy.total_robot_ranking); diff --git a/rc_database/src/schema/common_query.rs b/rc_database/src/schema/common_query.rs index 983811a..d318612 100644 --- a/rc_database/src/schema/common_query.rs +++ b/rc_database/src/schema/common_query.rs @@ -5,6 +5,12 @@ pub struct Id { pub id: i32, } +#[derive(FromQueryResult)] +pub struct IdAndThumbnailVersion { + pub id: i32, + pub thumbnail_version: i32, +} + #[derive(FromQueryResult)] pub struct SingleColumn { pub column: T, diff --git a/rc_database/src/wrapper.rs b/rc_database/src/wrapper.rs index eb84534..47b4d7e 100644 --- a/rc_database/src/wrapper.rs +++ b/rc_database/src/wrapper.rs @@ -359,13 +359,17 @@ impl Database { let id_opt = crate::schema::garage::Entity::find() .select_only() .column(crate::schema::garage::Column::Id) + .column(crate::schema::garage::Column::ThumbnailVersion) .filter(crate::schema::garage::Column::UserId.eq(user_id)) .filter(crate::schema::garage::Column::Slot.eq(slot)) - .into_model::() + .into_model::() .one(self.orm.as_ref()) .await?; if let Some(id) = id_opt { entity.id = sea_orm::ActiveValue::Set(id.id); + if entity.robot_data.is_set() || entity.colour_data.is_set() { + entity.thumbnail_version = sea_orm::ActiveValue::Set(id.thumbnail_version.wrapping_add(1)); + } Ok(Some(crate::schema::garage::Entity::update(entity) .exec(self.orm.as_ref()) .await?))