diff --git a/ops/93.chore-bump-pcd-schema-to-1-1-0-add-quality-group-positions-t.sql b/ops/93.chore-bump-pcd-schema-to-1-1-0-add-quality-group-positions-t.sql new file mode 100644 index 00000000..9a915c4c --- /dev/null +++ b/ops/93.chore-bump-pcd-schema-to-1-1-0-add-quality-group-positions-t.sql @@ -0,0 +1,106 @@ +-- @operation: export +-- @entity: batch +-- @name: chore: bump pcd schema to 1.1.0, add quality group positions to 1080p Balanced +-- @exportedAt: 2026-03-14T16:36:50.820Z +-- @opIds: 1910 + +-- --- BEGIN op 1910 ( update quality_profile "1080p Balanced" ) +DELETE FROM quality_group_members +WHERE quality_profile_name = '1080p Balanced' + AND quality_group_name = '1080p Balanced' + AND (SELECT COUNT(*) +FROM quality_group_members +WHERE quality_profile_name = '1080p Balanced' + AND quality_group_name = '1080p Balanced') = 12 + AND NOT EXISTS ( + SELECT 1 + FROM quality_group_members + WHERE quality_profile_name = '1080p Balanced' + AND quality_group_name = '1080p Balanced' + AND quality_name NOT IN ('Bluray-1080p', 'Bluray-480p', 'Bluray-576p', 'Bluray-720p', 'DVD', 'HDTV-1080p', 'HDTV-720p', 'SDTV', 'WEBDL-1080p', 'WEBDL-480p', 'WEBDL-720p', 'WEBRip-720p') + ) + AND ( + NOT EXISTS ( + SELECT 1 + FROM quality_group_members + WHERE quality_profile_name = '1080p Balanced' + AND quality_group_name = '1080p Balanced' + AND NOT ( + (quality_name = 'Bluray-1080p' + AND position = 0) + OR (quality_name = 'Bluray-480p' + AND position = 1) + OR (quality_name = 'Bluray-576p' + AND position = 2) + OR (quality_name = 'Bluray-720p' + AND position = 3) + OR (quality_name = 'DVD' + AND position = 4) + OR (quality_name = 'HDTV-1080p' + AND position = 5) + OR (quality_name = 'HDTV-720p' + AND position = 6) + OR (quality_name = 'SDTV' + AND position = 7) + OR (quality_name = 'WEBDL-1080p' + AND position = 8) + OR (quality_name = 'WEBDL-480p' + AND position = 9) + OR (quality_name = 'WEBDL-720p' + AND position = 10) + OR (quality_name = 'WEBRip-720p' + AND position = 11) + ) + ) + OR NOT EXISTS ( + SELECT 1 + FROM quality_group_members + WHERE quality_profile_name = '1080p Balanced' + AND quality_group_name = '1080p Balanced' + AND position != 0 + ) + ); + +INSERT INTO quality_group_members (quality_profile_name, quality_group_name, quality_name, position) +WITH can_insert AS ( + SELECT ( + SELECT COUNT(*) + FROM quality_group_members + WHERE quality_profile_name = '1080p Balanced' + AND quality_group_name = '1080p Balanced' + ) = 0 AS ok +), +new_rows AS ( +SELECT '1080p Balanced' AS quality_profile_name, '1080p Balanced' AS quality_group_name, 'Bluray-1080p' AS quality_name, 0 AS position +UNION ALL +SELECT '1080p Balanced' AS quality_profile_name, '1080p Balanced' AS quality_group_name, 'WEBDL-1080p' AS quality_name, 1 AS position +UNION ALL +SELECT '1080p Balanced' AS quality_profile_name, '1080p Balanced' AS quality_group_name, 'HDTV-1080p' AS quality_name, 2 AS position +UNION ALL +SELECT '1080p Balanced' AS quality_profile_name, '1080p Balanced' AS quality_group_name, 'Bluray-720p' AS quality_name, 3 AS position +UNION ALL +SELECT '1080p Balanced' AS quality_profile_name, '1080p Balanced' AS quality_group_name, 'WEBDL-720p' AS quality_name, 4 AS position +UNION ALL +SELECT '1080p Balanced' AS quality_profile_name, '1080p Balanced' AS quality_group_name, 'WEBRip-720p' AS quality_name, 5 AS position +UNION ALL +SELECT '1080p Balanced' AS quality_profile_name, '1080p Balanced' AS quality_group_name, 'HDTV-720p' AS quality_name, 6 AS position +UNION ALL +SELECT '1080p Balanced' AS quality_profile_name, '1080p Balanced' AS quality_group_name, 'Bluray-576p' AS quality_name, 7 AS position +UNION ALL +SELECT '1080p Balanced' AS quality_profile_name, '1080p Balanced' AS quality_group_name, 'Bluray-480p' AS quality_name, 8 AS position +UNION ALL +SELECT '1080p Balanced' AS quality_profile_name, '1080p Balanced' AS quality_group_name, 'WEBDL-480p' AS quality_name, 9 AS position +UNION ALL +SELECT '1080p Balanced' AS quality_profile_name, '1080p Balanced' AS quality_group_name, 'DVD' AS quality_name, 10 AS position +UNION ALL +SELECT '1080p Balanced' AS quality_profile_name, '1080p Balanced' AS quality_group_name, 'SDTV' AS quality_name, 11 AS position +) +SELECT + new_rows.quality_profile_name, + new_rows.quality_group_name, + new_rows.quality_name, + new_rows.position +FROM new_rows +CROSS JOIN can_insert +WHERE ok; +-- --- END op 1910 diff --git a/pcd.json b/pcd.json index c9422ed1..11f9c765 100644 --- a/pcd.json +++ b/pcd.json @@ -1,29 +1,26 @@ { - "name": "Dictionarry Database", - "version": "2.0.0", - "description": "Official Dictionarry Database", - "arr_types": ["radarr", "sonarr"], - - "dependencies": { - "https://github.com/Dictionarry-Hub/schema": "1.0.0" - }, - - "authors": [ - { - "name": "Dictionarry Team" - } - ], - - "license": "MIT", - "repository": "https://github.com/dictionarry-hub/db", - - - "links": { - "homepage": "https://dictionarry.dev", - "issues": "https://github.com/dictionarry-hub/db/issues" - }, - - "profilarr": { - "minimum_version": "2.0.0" + "name": "Dictionarry Database", + "version": "2.0.0", + "description": "Official Dictionarry Database", + "arr_types": [ + "radarr", + "sonarr" + ], + "dependencies": { + "https://github.com/Dictionarry-Hub/schema": "1.1.0" + }, + "authors": [ + { + "name": "Dictionarry Team" } -} \ No newline at end of file + ], + "license": "MIT", + "repository": "https://github.com/dictionarry-hub/db", + "links": { + "homepage": "https://dictionarry.dev", + "issues": "https://github.com/dictionarry-hub/db/issues" + }, + "profilarr": { + "minimum_version": "2.0.0" + } +}