From 0343783a5783adfc02f91e3d7679f2ec2bc9c4c1 Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Sat, 22 Aug 2026 23:23:56 +0100 Subject: [PATCH] fix(daemon): use canonical movie states in import PRs #82 and #85 were each green pre-merge; #85 renamed movie states (grabbed->downloading, imported->available) and #82's import path still wrote the old names, so main failed the movies CHECK constraint. Co-Authored-By: Claude Fable 5 --- ...b486f5ca68123fb59610ba8ab8e8f6c1a1189610e377.json | 12 ------------ ...326f0939eacba63e1e3e7f3bb39e38beee5a170c6984.json | 12 ++++++++++++ crates/arr-daemon/src/import.rs | 8 ++++---- 3 files changed, 16 insertions(+), 16 deletions(-) delete mode 100644 .sqlx/query-93d05b3370c722a59239b486f5ca68123fb59610ba8ab8e8f6c1a1189610e377.json create mode 100644 .sqlx/query-c17e4da86245ae665fc2326f0939eacba63e1e3e7f3bb39e38beee5a170c6984.json diff --git a/.sqlx/query-93d05b3370c722a59239b486f5ca68123fb59610ba8ab8e8f6c1a1189610e377.json b/.sqlx/query-93d05b3370c722a59239b486f5ca68123fb59610ba8ab8e8f6c1a1189610e377.json deleted file mode 100644 index b7443d2..0000000 --- a/.sqlx/query-93d05b3370c722a59239b486f5ca68123fb59610ba8ab8e8f6c1a1189610e377.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "UPDATE movies\n SET state = 'imported',\n updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')\n WHERE id = ?", - "describe": { - "columns": [], - "parameters": { - "Right": 1 - }, - "nullable": [] - }, - "hash": "93d05b3370c722a59239b486f5ca68123fb59610ba8ab8e8f6c1a1189610e377" -} diff --git a/.sqlx/query-c17e4da86245ae665fc2326f0939eacba63e1e3e7f3bb39e38beee5a170c6984.json b/.sqlx/query-c17e4da86245ae665fc2326f0939eacba63e1e3e7f3bb39e38beee5a170c6984.json new file mode 100644 index 0000000..3b3e239 --- /dev/null +++ b/.sqlx/query-c17e4da86245ae665fc2326f0939eacba63e1e3e7f3bb39e38beee5a170c6984.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "UPDATE movies\n SET state = 'available',\n updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')\n WHERE id = ?", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "c17e4da86245ae665fc2326f0939eacba63e1e3e7f3bb39e38beee5a170c6984" +} diff --git a/crates/arr-daemon/src/import.rs b/crates/arr-daemon/src/import.rs index bd716ac..283621f 100644 --- a/crates/arr-daemon/src/import.rs +++ b/crates/arr-daemon/src/import.rs @@ -405,7 +405,7 @@ async fn record_import( .await?; sqlx::query!( "UPDATE movies - SET state = 'imported', + SET state = 'available', updated_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE id = ?", pending.movie_id @@ -633,7 +633,7 @@ mod tests { .unwrap(); sqlx::query( "INSERT INTO movies (tmdb_id, title, year, original_language, root_id, state) - SELECT 693134, 'Dune: Part Two', 2024, 'en', id, 'grabbed' + SELECT 693134, 'Dune: Part Two', 2024, 'en', id, 'downloading' FROM roots WHERE kind = 'movie' AND audience = 'main'", ) .execute(database.pool()) @@ -728,7 +728,7 @@ mod tests { .fetch_one(h.database.pool()) .await .unwrap(); - assert_eq!(movie_state, "imported"); + assert_eq!(movie_state, "available"); } /// §5.3 through §5.7: Profile 5 is a hard fail — blacklisted, grab @@ -786,7 +786,7 @@ mod tests { .execute(h.database.pool()) .await .unwrap(); - sqlx::query("UPDATE movies SET state = 'grabbed'") + sqlx::query("UPDATE movies SET state = 'downloading'") .execute(h.database.pool()) .await .unwrap();