From 1fbafc25dfaf7ed6e5c798b7d2032885b5ddd443 Mon Sep 17 00:00:00 2001 From: Connor Johnstone Date: Wed, 18 Mar 2026 11:41:48 -0400 Subject: [PATCH] Added proper "owned"status move --- src/queries/wanted.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/queries/wanted.rs b/src/queries/wanted.rs index f6f1440..6a895e3 100644 --- a/src/queries/wanted.rs +++ b/src/queries/wanted.rs @@ -1,5 +1,6 @@ use chrono::Utc; use sea_orm::*; +use sea_orm::sea_query::Expr; use crate::entities::wanted_item::{ self, ActiveModel, Entity as WantedItems, ItemType, Model as WantedItem, WantedStatus, @@ -65,3 +66,15 @@ pub async fn remove(db: &DatabaseConnection, id: i32) -> DbResult<()> { WantedItems::delete_by_id(id).exec(db).await?; Ok(()) } + +/// Promote all Downloaded items to Owned status. Returns the count updated. +pub async fn promote_downloaded_to_owned(db: &DatabaseConnection) -> DbResult { + let now = Utc::now().naive_utc(); + let result = WantedItems::update_many() + .col_expr(wanted_item::Column::Status, Expr::value("owned")) + .col_expr(wanted_item::Column::UpdatedAt, Expr::value(now)) + .filter(wanted_item::Column::Status.eq(WantedStatus::Downloaded)) + .exec(db) + .await?; + Ok(result.rows_affected) +}