31 lines
841 B
SQL
31 lines
841 B
SQL
-- Characters are now the primary login entity.
|
|
-- Each character has its own username + password hash.
|
|
|
|
CREATE TABLE IF NOT EXISTS characters (
|
|
id SERIAL PRIMARY KEY,
|
|
username TEXT UNIQUE NOT NULL,
|
|
passhash TEXT NOT NULL,
|
|
x INTEGER NOT NULL DEFAULT 100,
|
|
y INTEGER NOT NULL DEFAULT 100,
|
|
level INTEGER NOT NULL DEFAULT 1,
|
|
xp BIGINT NOT NULL DEFAULT 0,
|
|
last_login TIMESTAMPTZ
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS items (
|
|
id SERIAL PRIMARY KEY,
|
|
key TEXT UNIQUE NOT NULL,
|
|
name TEXT NOT NULL,
|
|
stack_max INTEGER NOT NULL DEFAULT 999
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS inventory (
|
|
id SERIAL PRIMARY KEY,
|
|
character_id INTEGER REFERENCES characters(id) ON DELETE CASCADE,
|
|
item_key TEXT NOT NULL,
|
|
qty INTEGER NOT NULL DEFAULT 0
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS inventory_unique_item
|
|
ON inventory (character_id, item_key);
|