Add ISAC Skill Chips data module
This commit is contained in:
+53
-2
@@ -202,7 +202,7 @@ INSERT OR IGNORE INTO role_permissions(role_id,permission_id) VALUES('role-moder
|
||||
CREATE TABLE IF NOT EXISTS oauth_states (state_hash TEXT PRIMARY KEY, provider TEXT NOT NULL, mode TEXT NOT NULL, user_id TEXT REFERENCES users(id) ON DELETE CASCADE, expires_at TEXT NOT NULL, created_at TEXT NOT NULL);
|
||||
CREATE TABLE IF NOT EXISTS data_change_proposals (
|
||||
id TEXT PRIMARY KEY,
|
||||
module TEXT NOT NULL CHECK(module IN ('stats','talents','brands','gear','weapons','protocols')),
|
||||
module TEXT NOT NULL CHECK(module IN ('attributes','talents','brands','gear','weapons','protocols','skillchips')),
|
||||
action TEXT NOT NULL,
|
||||
entity_id TEXT,
|
||||
draft_entity_id TEXT,
|
||||
@@ -498,8 +498,59 @@ CREATE TABLE IF NOT EXISTS os_protocol_talent_effects (
|
||||
UNIQUE(talent_id, stat_attribute_id),
|
||||
UNIQUE(talent_id, sort_order)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS skill_chip_sets (
|
||||
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 skill_chip_sets_name_nocase_idx ON skill_chip_sets(name COLLATE NOCASE);
|
||||
CREATE TABLE IF NOT EXISTS skill_chip_two_piece_bonuses (
|
||||
id TEXT PRIMARY KEY,
|
||||
skill_chip_set_id TEXT NOT NULL UNIQUE REFERENCES skill_chip_sets(id) ON DELETE CASCADE,
|
||||
stat_attribute_id TEXT NOT NULL REFERENCES stat_attributes(id),
|
||||
min_value REAL NOT NULL,
|
||||
max_value REAL NOT NULL,
|
||||
CHECK(max_value >= min_value)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS skill_chip_primary_options (
|
||||
skill_chip_set_id TEXT NOT NULL REFERENCES skill_chip_sets(id) ON DELETE CASCADE,
|
||||
stat_attribute_id TEXT NOT NULL REFERENCES stat_attributes(id),
|
||||
PRIMARY KEY(skill_chip_set_id, stat_attribute_id)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS skill_chip_secondary_options (
|
||||
skill_chip_set_id TEXT NOT NULL REFERENCES skill_chip_sets(id) ON DELETE CASCADE,
|
||||
stat_attribute_id TEXT NOT NULL REFERENCES stat_attributes(id),
|
||||
PRIMARY KEY(skill_chip_set_id, stat_attribute_id)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS skill_chip_talents (
|
||||
id TEXT PRIMARY KEY,
|
||||
skill_chip_set_id TEXT NOT NULL UNIQUE REFERENCES skill_chip_sets(id) ON DELETE CASCADE,
|
||||
name TEXT NOT NULL,
|
||||
description_template TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS skill_chip_talents_name_nocase_idx ON skill_chip_talents(name COLLATE NOCASE);
|
||||
CREATE TABLE IF NOT EXISTS skill_chip_talent_triggers (
|
||||
talent_id TEXT NOT NULL REFERENCES skill_chip_talents(id) ON DELETE CASCADE,
|
||||
trigger_id TEXT NOT NULL REFERENCES talent_triggers(id),
|
||||
PRIMARY KEY(talent_id, trigger_id)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS skill_chip_talent_effects (
|
||||
id TEXT PRIMARY KEY,
|
||||
talent_id TEXT NOT NULL REFERENCES skill_chip_talents(id) ON DELETE CASCADE,
|
||||
stat_attribute_id TEXT NOT NULL REFERENCES stat_attributes(id),
|
||||
min_value REAL NOT NULL,
|
||||
max_value REAL NOT NULL,
|
||||
sort_order INTEGER NOT NULL CHECK(sort_order BETWEEN 1 AND 12),
|
||||
CHECK(max_value >= min_value),
|
||||
UNIQUE(talent_id, stat_attribute_id),
|
||||
UNIQUE(talent_id, sort_order)
|
||||
);
|
||||
CREATE TABLE IF NOT EXISTS game_data_icons (
|
||||
entity_type TEXT NOT NULL CHECK(entity_type IN ('talent', 'brand_set', 'os_protocol')),
|
||||
entity_type TEXT NOT NULL CHECK(entity_type IN ('talent', 'brand_set', 'os_protocol', 'skill_chip')),
|
||||
entity_id TEXT NOT NULL,
|
||||
storage_key TEXT NOT NULL UNIQUE,
|
||||
byte_size INTEGER NOT NULL CHECK(byte_size > 0),
|
||||
|
||||
Reference in New Issue
Block a user