41 lines
1.5 KiB
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
|