DarkflameServer/migrations/dlu/0_initial.sql
2024-11-15 01:05:05 -08:00

153 lines
4.8 KiB
SQL

CREATE TABLE IF NOT EXISTS accounts (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
name TEXT NOT NULL UNIQUE,
password TEXT NOT NULL,
gm_level BIGINT NOT NULL DEFAULT 0,
locked INTEGER NOT NULL DEFAULT FALSE,
banned INTEGER NOT NULL DEFAULT FALSE,
play_key_id INTEGER NOT NULL DEFAULT 0,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP(),
mute_expire BIGINT NOT NULL DEFAULT 0
);
CREATE TABLE IF NOT EXISTS charinfo (
id BIGINT NOT NULL PRIMARY KEY,
account_id INTEGER NOT NULL REFERENCES accounts(id),
name TEXT NOT NULL,
pending_name TEXT NOT NULL,
needs_rename INTEGER NOT NULL DEFAULT FALSE,
prop_clone_id BIGINT AUTO_INCREMENT UNIQUE,
last_login BIGINT NOT NULL DEFAULT 0,
permission_map BIGINT NOT NULL DEFAULT 0
);
CREATE TABLE IF NOT EXISTS charxml (
id BIGINT NOT NULL PRIMARY KEY REFERENCES charinfo(id),
xml_data TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS command_log (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
character_id BIGINT NOT NULL REFERENCES charinfo(id),
command TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS friends (
player_id BIGINT NOT NULL REFERENCES charinfo(id),
friend_id BIGINT NOT NULL REFERENCES charinfo(id),
best_friend INTEGER NOT NULL DEFAULT FALSE,
PRIMARY KEY (player_id, friend_id)
);
CREATE TABLE IF NOT EXISTS leaderboard (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
game_id INTEGER NOT NULL DEFAULT 0,
last_played DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP(),
character_id BIGINT NOT NULL REFERENCES charinfo(id),
time BIGINT NOT NULL,
score BIGINT NOT NULL DEFAULT 0
);
CREATE TABLE IF NOT EXISTS mail (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
sender_id INTEGER NOT NULL DEFAULT 0,
sender_name TEXT NOT NULL DEFAULT '',
receiver_id BIGINT NOT NULL REFERENCES charinfo(id),
receiver_name TEXT NOT NULL,
time_sent BIGINT NOT NULL,
subject TEXT NOT NULL,
body TEXT NOT NULL,
attachment_id BIGINT NOT NULL DEFAULT 0,
attachment_lot INTEGER NOT NULL DEFAULT 0,
attachment_subkey BIGINT NOT NULL DEFAULT 0,
attachment_count INTEGER NOT NULL DEFAULT 0,
was_read INTEGER NOT NULL DEFAULT FALSE
);
CREATE TABLE IF NOT EXISTS object_id_tracker (
last_object_id BIGINT NOT NULL DEFAULT 0 PRIMARY KEY
);
CREATE TABLE IF NOT EXISTS pet_names (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
pet_name TEXT NOT NULL,
approved INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS play_keys (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
key_string TEXT NOT NULL UNIQUE,
key_uses INTEGER NOT NULL DEFAULT 1,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP(),
active INTEGER NOT NULL DEFAULT TRUE
);
CREATE TABLE IF NOT EXISTS properties (
id BIGINT NOT NULL PRIMARY KEY,
owner_id BIGINT NOT NULL REFERENCES charinfo(id),
template_id INTEGER NOT NULL,
clone_id BIGINT REFERENCES charinfo(prop_clone_id),
name TEXT NOT NULL,
description TEXT NOT NULL,
rent_amount INTEGER NOT NULL,
rent_due BIGINT NOT NULL,
privacy_option INTEGER NOT NULL,
mod_approved INTEGER NOT NULL DEFAULT FALSE,
last_updated BIGINT NOT NULL,
time_claimed BIGINT NOT NULL,
rejection_reason TEXT NOT NULL,
reputation BIGINT NOT NULL,
zone_id INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS ugc (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
account_id INTEGER NOT NULL REFERENCES accounts(id),
character_id BIGINT NOT NULL REFERENCES charinfo(id),
is_optimized INTEGER NOT NULL DEFAULT FALSE,
lxfml BLOB NOT NULL,
bake_ao INTEGER NOT NULL DEFAULT FALSE,
filename TEXT NOT NULL DEFAULT ('')
);
CREATE TABLE IF NOT EXISTS properties_contents (
id BIGINT NOT NULL PRIMARY KEY,
property_id BIGINT NOT NULL REFERENCES properties(id),
ugc_id INTEGER NULL REFERENCES ugc(id),
lot INTEGER NOT NULL,
x DOUBLE NOT NULL,
y DOUBLE NOT NULL,
z DOUBLE NOT NULL,
rx DOUBLE NOT NULL,
ry DOUBLE NOT NULL,
rz DOUBLE NOT NULL,
rw DOUBLE NOT NULL
);
CREATE TABLE IF NOT EXISTS activity_log (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
character_id BIGINT NOT NULL REFERENCES charinfo(id),
activity INTEGER NOT NULL,
time BIGINT NOT NULL,
map_id INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS bug_reports (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
body TEXT NOT NULL,
client_version TEXT NOT NULL,
other_player_id TEXT NOT NULL,
selection TEXT NOT NULL,
submitted DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP()
);
CREATE TABLE IF NOT EXISTS servers (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
name TEXT NOT NULL,
ip TEXT NOT NULL,
port INTEGER NOT NULL,
state INTEGER NOT NULL,
version INTEGER NOT NULL DEFAULT 0
);