What a mess
This commit is contained in:
18
migrations/add_status_effects_table.sql
Normal file
18
migrations/add_status_effects_table.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
-- Add persistent status effects table
|
||||
CREATE TABLE IF NOT EXISTS player_status_effects (
|
||||
id SERIAL PRIMARY KEY,
|
||||
player_id INTEGER NOT NULL REFERENCES players(telegram_id) ON DELETE CASCADE,
|
||||
effect_name VARCHAR(50) NOT NULL,
|
||||
effect_icon VARCHAR(10) NOT NULL,
|
||||
damage_per_tick INTEGER NOT NULL DEFAULT 0,
|
||||
ticks_remaining INTEGER NOT NULL,
|
||||
applied_at FLOAT NOT NULL,
|
||||
CONSTRAINT valid_ticks CHECK (ticks_remaining >= 0),
|
||||
CONSTRAINT valid_damage CHECK (damage_per_tick >= 0)
|
||||
);
|
||||
|
||||
-- Create index for efficient querying by player
|
||||
CREATE INDEX IF NOT EXISTS idx_status_effects_player ON player_status_effects(player_id);
|
||||
|
||||
-- Create index for background processor to find active effects
|
||||
CREATE INDEX IF NOT EXISTS idx_status_effects_active ON player_status_effects(player_id, ticks_remaining) WHERE ticks_remaining > 0;
|
||||
Reference in New Issue
Block a user