From 2c93386cb07920f448c0bcef2ec7e1f446e40832 Mon Sep 17 00:00:00 2001 From: Sam Chau Date: Mon, 3 Nov 2025 03:54:15 +1030 Subject: [PATCH] fix: make quality groups unique and not reusable across profiles --- CHANGELOG.md | 1 + ops/0.schema.sql | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ac5e7c..b2b5850 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,3 +23,4 @@ All schema changes will be documented in this file. ## 3-11-25 - Better profile langauge procesing +- Make quality groups unique and not reusable across profiles diff --git a/ops/0.schema.sql b/ops/0.schema.sql index bcbdaae..14e5853 100644 --- a/ops/0.schema.sql +++ b/ops/0.schema.sql @@ -41,14 +41,6 @@ CREATE TABLE qualities ( updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP ); --- Quality groups combine multiple qualities treated as equivalent -CREATE TABLE quality_groups ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - name VARCHAR(100) UNIQUE NOT NULL, - created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP, - updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP -); - -- Custom formats define patterns and conditions for media matching CREATE TABLE custom_formats ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -75,6 +67,18 @@ CREATE TABLE quality_profiles ( updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP ); +-- Quality groups combine multiple qualities treated as equivalent +-- Each group is specific to a quality profile (profiles do not share groups) +CREATE TABLE quality_groups ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + quality_profile_id INTEGER NOT NULL, + name VARCHAR(100) NOT NULL, + created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP, + UNIQUE(quality_profile_id, name), + FOREIGN KEY (quality_profile_id) REFERENCES quality_profiles(id) ON DELETE CASCADE +); + -- Conditions define the matching logic for custom formats -- Each condition has a type and corresponding data in a type-specific table CREATE TABLE custom_format_conditions (