darkwatch/server/migrations/002_spells.sql

41 lines
1.5 KiB
SQL

CREATE TABLE IF NOT EXISTS spells (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
class ENUM('wizard', 'priest', 'both') NOT NULL,
tier TINYINT NOT NULL,
casting_stat ENUM('INT', 'WIS') NOT NULL,
duration VARCHAR(100) NOT NULL DEFAULT 'Instant',
`range` VARCHAR(100) NOT NULL DEFAULT 'Near',
is_focus TINYINT NOT NULL DEFAULT 0,
description TEXT NOT NULL DEFAULT '',
UNIQUE KEY uq_spells_name_class (name, class)
);
CREATE TABLE IF NOT EXISTS character_spells (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
character_id INT UNSIGNED NOT NULL,
spell_id INT UNSIGNED NOT NULL,
exhausted TINYINT NOT NULL DEFAULT 0,
locked_until DATETIME DEFAULT NULL,
focus_active TINYINT NOT NULL DEFAULT 0,
focus_started_at DATETIME DEFAULT NULL,
UNIQUE KEY uq_char_spell (character_id, spell_id),
FOREIGN KEY (character_id) REFERENCES characters(id) ON DELETE CASCADE,
FOREIGN KEY (spell_id) REFERENCES spells(id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS character_conditions (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
character_id INT UNSIGNED NOT NULL,
name VARCHAR(255) NOT NULL,
description TEXT DEFAULT '',
rounds_remaining INT DEFAULT NULL,
expires_at DATETIME DEFAULT NULL,
created_at DATETIME DEFAULT NOW(),
FOREIGN KEY (character_id) REFERENCES characters(id) ON DELETE CASCADE
);
ALTER TABLE roll_log
ADD COLUMN IF NOT EXISTS subtype VARCHAR(50) DEFAULT NULL,
ADD COLUMN IF NOT EXISTS metadata TEXT DEFAULT NULL,
ADD COLUMN IF NOT EXISTS undone TINYINT NOT NULL DEFAULT 0