feat(falukant): implement backfill for falukant visual settings and add SQL scripts for default values
All checks were successful
Deploy to production / deploy (push) Successful in 2m6s
All checks were successful
Deploy to production / deploy (push) Successful in 2m6s
This commit is contained in:
166
backend/sql/add_falukant_visual_settings.sql
Normal file
166
backend/sql/add_falukant_visual_settings.sql
Normal file
@@ -0,0 +1,166 @@
|
||||
-- Falukant-Visual-Settings:
|
||||
-- - neue Settings-Gruppe: type.settings.name = 'falukant'
|
||||
-- - neue Param-Typen: falukantPortraitStyle, falukantFigureMode
|
||||
-- - neue Select-Werte:
|
||||
-- falukantPortraitStyle -> classic, medieval
|
||||
-- falukantFigureMode -> portraits, 3d, both
|
||||
--
|
||||
-- Hinweis:
|
||||
-- Für diese Änderung sind nach heutigem Stand keine ALTER TABLEs nötig.
|
||||
-- Es werden nur fehlende Typ-/Wertetabellen-Einträge angelegt.
|
||||
--
|
||||
-- Absichtlich ohne UPDATEs:
|
||||
-- Auf manchen Servern existieren zusätzliche DB-Trigger/Regeln auf Tabellen,
|
||||
-- die bei UPDATE implizit ein fehlendes `updated_at` erwarten. Darum hier nur
|
||||
-- INSERT ... WHERE NOT EXISTS, damit das Script maximal robust bleibt.
|
||||
|
||||
BEGIN;
|
||||
|
||||
-- Settings-Gruppe anlegen
|
||||
INSERT INTO type.settings (name)
|
||||
SELECT 'falukant'
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM type.settings
|
||||
WHERE name = 'falukant'
|
||||
);
|
||||
|
||||
-- Param-Typ: Portrait-Stil
|
||||
INSERT INTO type.user_param (
|
||||
description,
|
||||
datatype,
|
||||
settings_id,
|
||||
order_id,
|
||||
immutable,
|
||||
min_age,
|
||||
gender,
|
||||
unit
|
||||
)
|
||||
SELECT
|
||||
'falukantPortraitStyle',
|
||||
'singleselect',
|
||||
s.id,
|
||||
920,
|
||||
false,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
FROM type.settings s
|
||||
WHERE s.name = 'falukant'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM type.user_param p
|
||||
WHERE p.description = 'falukantPortraitStyle'
|
||||
);
|
||||
|
||||
-- Param-Typ: Anzeige-Modus
|
||||
INSERT INTO type.user_param (
|
||||
description,
|
||||
datatype,
|
||||
settings_id,
|
||||
order_id,
|
||||
immutable,
|
||||
min_age,
|
||||
gender,
|
||||
unit
|
||||
)
|
||||
SELECT
|
||||
'falukantFigureMode',
|
||||
'singleselect',
|
||||
s.id,
|
||||
921,
|
||||
false,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
FROM type.settings s
|
||||
WHERE s.name = 'falukant'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM type.user_param p
|
||||
WHERE p.description = 'falukantFigureMode'
|
||||
);
|
||||
|
||||
-- Select-Werte: falukantPortraitStyle
|
||||
INSERT INTO type.user_param_value (user_param_type_id, value, order_id)
|
||||
SELECT p.id, 'classic', 1
|
||||
FROM type.user_param p
|
||||
WHERE p.description = 'falukantPortraitStyle'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM type.user_param_value v
|
||||
WHERE v.user_param_type_id = p.id
|
||||
AND v.value = 'classic'
|
||||
);
|
||||
|
||||
INSERT INTO type.user_param_value (user_param_type_id, value, order_id)
|
||||
SELECT p.id, 'medieval', 2
|
||||
FROM type.user_param p
|
||||
WHERE p.description = 'falukantPortraitStyle'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM type.user_param_value v
|
||||
WHERE v.user_param_type_id = p.id
|
||||
AND v.value = 'medieval'
|
||||
);
|
||||
|
||||
-- Select-Werte: falukantFigureMode
|
||||
INSERT INTO type.user_param_value (user_param_type_id, value, order_id)
|
||||
SELECT p.id, 'portraits', 1
|
||||
FROM type.user_param p
|
||||
WHERE p.description = 'falukantFigureMode'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM type.user_param_value v
|
||||
WHERE v.user_param_type_id = p.id
|
||||
AND v.value = 'portraits'
|
||||
);
|
||||
|
||||
INSERT INTO type.user_param_value (user_param_type_id, value, order_id)
|
||||
SELECT p.id, '3d', 2
|
||||
FROM type.user_param p
|
||||
WHERE p.description = 'falukantFigureMode'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM type.user_param_value v
|
||||
WHERE v.user_param_type_id = p.id
|
||||
AND v.value = '3d'
|
||||
);
|
||||
|
||||
INSERT INTO type.user_param_value (user_param_type_id, value, order_id)
|
||||
SELECT p.id, 'both', 3
|
||||
FROM type.user_param p
|
||||
WHERE p.description = 'falukantFigureMode'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM type.user_param_value v
|
||||
WHERE v.user_param_type_id = p.id
|
||||
AND v.value = 'both'
|
||||
);
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- Prüfung 1: Gruppe + Param-Typen
|
||||
SELECT
|
||||
s.name AS settings_group,
|
||||
p.id AS param_type_id,
|
||||
p.description,
|
||||
p.datatype,
|
||||
p.order_id
|
||||
FROM type.user_param p
|
||||
JOIN type.settings s
|
||||
ON s.id = p.settings_id
|
||||
WHERE s.name = 'falukant'
|
||||
ORDER BY p.order_id, p.id;
|
||||
|
||||
-- Prüfung 2: Select-Werte
|
||||
SELECT
|
||||
p.description,
|
||||
v.id AS value_id,
|
||||
v.value,
|
||||
v.order_id
|
||||
FROM type.user_param_value v
|
||||
JOIN type.user_param p
|
||||
ON p.id = v.user_param_type_id
|
||||
WHERE p.description IN ('falukantPortraitStyle', 'falukantFigureMode')
|
||||
ORDER BY p.description, v.order_id, v.id;
|
||||
Reference in New Issue
Block a user