feat(isac): add gear mod data management

This commit is contained in:
JB
2026-07-25 23:40:55 -04:00
parent f0c14d0c9c
commit c24a959e1d
12 changed files with 456 additions and 5 deletions
+36
View File
@@ -684,6 +684,42 @@ CREATE TABLE IF NOT EXISTS weapon_mod_effect_quality_values (
value REAL NOT NULL,
PRIMARY KEY(effect_id,quality)
);
CREATE TABLE IF NOT EXISTS gear_mods (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
active INTEGER NOT NULL DEFAULT 1 CHECK(active IN (0,1)),
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE UNIQUE INDEX IF NOT EXISTS gear_mods_name_nocase_idx ON gear_mods(name COLLATE NOCASE);
CREATE TABLE IF NOT EXISTS gear_mod_quality_values (
gear_mod_id TEXT NOT NULL REFERENCES gear_mods(id) ON DELETE CASCADE,
quality TEXT NOT NULL CHECK(quality IN ('Standard','Specialized','Superior','High-end')),
primary_level_1_min REAL NOT NULL,
primary_level_1_max REAL NOT NULL,
primary_level_20_min REAL NOT NULL,
primary_level_20_max REAL NOT NULL,
PRIMARY KEY(gear_mod_id,quality),
CHECK(primary_level_1_max>=primary_level_1_min),
CHECK(primary_level_20_max>=primary_level_20_min),
CHECK(primary_level_20_min>=primary_level_1_min),
CHECK(primary_level_20_max>=primary_level_1_max)
);
CREATE TABLE IF NOT EXISTS gear_mod_secondary_options (
gear_mod_id TEXT NOT NULL REFERENCES gear_mods(id) ON DELETE CASCADE,
stat_attribute_id TEXT NOT NULL REFERENCES stat_attributes(id),
PRIMARY KEY(gear_mod_id,stat_attribute_id)
);
CREATE TABLE IF NOT EXISTS gear_mod_secondary_quality_values (
gear_mod_id TEXT NOT NULL,
stat_attribute_id TEXT NOT NULL,
quality TEXT NOT NULL CHECK(quality IN ('Standard','Specialized','Superior','High-end')),
min_value REAL NOT NULL,
max_value REAL NOT NULL,
PRIMARY KEY(gear_mod_id,stat_attribute_id,quality),
FOREIGN KEY(gear_mod_id,stat_attribute_id) REFERENCES gear_mod_secondary_options(gear_mod_id,stat_attribute_id) ON DELETE CASCADE,
CHECK(max_value>=min_value)
);
CREATE TABLE IF NOT EXISTS game_data_icons (
entity_type TEXT NOT NULL CHECK(entity_type IN ('talent', 'brand_set', 'os_protocol', 'skill_chip')),
entity_id TEXT NOT NULL,