100 lines
2.9 KiB
SQL
100 lines
2.9 KiB
SQL
PRAGMA foreign_keys = ON;
|
|
|
|
CREATE TABLE users (
|
|
id integer primary key autoincrement,
|
|
name varchar(32) not null
|
|
);
|
|
|
|
CREATE TABLE resource(
|
|
id integer primary key autoincrement,
|
|
name varchar(32) not null unique
|
|
);
|
|
|
|
CREATE TABLE staking_source(
|
|
id integer primary key autoincrement,
|
|
user_id int not null,
|
|
address varchar(128) not null,
|
|
created_at timestamp DEFAULT (current_timestamp),
|
|
CONSTRAINT fk_user FOREIGN KEY(user_id)
|
|
REFERENCES users(id)
|
|
);
|
|
|
|
CREATE TABLE resource_well(
|
|
id integer primary key autoincrement,
|
|
source_id int not null,
|
|
resource_id int not null,
|
|
supply int not null,
|
|
CONSTRAINT fk_rid FOREIGN KEY(resource_id)
|
|
REFERENCES resource(id),
|
|
CONSTRAINT fk_sid FOREIGN KEY(source_id)
|
|
REFERENCES staking_source(id)
|
|
ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE TABLE staking_event(
|
|
id integer primary key autoincrement,
|
|
well_id int not null,
|
|
source_id int not null,
|
|
inventory_item_id int not null,
|
|
duration_in_mins int not null,
|
|
created_at timestamp DEFAULT (current_timestamp),
|
|
CONSTRAINT fk_sid FOREIGN KEY(source_id)
|
|
REFERENCES staking_source(id)
|
|
CONSTRAINT fk_wid FOREIGN KEY(well_id)
|
|
REFERENCES resource_well(id)
|
|
CONSTRAINT fk_iiid FOREIGN KEY(inventory_item_id)
|
|
REFERENCES inventory_item(id)
|
|
);
|
|
|
|
CREATE TABLE claim_event(
|
|
id integer primary key autoincrement,
|
|
claim_amount int not null,
|
|
staking_event_id int not null,
|
|
created_at timestamp DEFAULT (current_timestamp),
|
|
CONSTRAINT fk_se_id FOREIGN KEY(staking_event_id)
|
|
REFERENCES staking_event(id)
|
|
);
|
|
|
|
CREATE TABLE upgrade_event(
|
|
id integer primary key autoincrement,
|
|
inventory_item_id int not null,
|
|
created_at timestamp DEFAULT (current_timestamp),
|
|
CONSTRAINT fk_iid FOREIGN KEY(inventory_item_id)
|
|
REFERENCES inventory_item(id)
|
|
);
|
|
|
|
CREATE TABLE store_item(
|
|
id integer primary key autoincrement,
|
|
name varchar(128) not null,
|
|
currency int not null,
|
|
price int not null,
|
|
target_resource int not null,
|
|
claim_amount int not null,
|
|
CONSTRAINT fk_rid FOREIGN KEY(currency)
|
|
REFERENCES resource(id)
|
|
CONSTRAINT fk_targetid FOREIGN KEY(target_resource)
|
|
REFERENCES resource(id)
|
|
);
|
|
|
|
CREATE TABLE inventory_item(
|
|
id integer primary key autoincrement,
|
|
user_id int not null,
|
|
store_item_id int not null,
|
|
created_at timestamp DEFAULT (current_timestamp),
|
|
CONSTRAINT fk_user FOREIGN KEY(user_id)
|
|
REFERENCES users(id)
|
|
CONSTRAINT fk_sitemid FOREIGN KEY(store_item_id)
|
|
REFERENCES store_item(id)
|
|
);
|
|
|
|
CREATE TABLE bank_account(
|
|
id integer primary key autoincrement,
|
|
user_id int not null,
|
|
resource_id int not null,
|
|
balance int not null default 0 CHECK (balance >= 0),
|
|
CONSTRAINT fk_user FOREIGN KEY(user_id)
|
|
REFERENCES users(id),
|
|
CONSTRAINT fk_resource FOREIGN KEY(resource_id)
|
|
REFERENCES resource(id)
|
|
);
|