178 lines
3.7 KiB
SQL
178 lines
3.7 KiB
SQL
|
|
CREATE TABLE company (
|
|
id INTEGER NOT NULL,
|
|
name VARCHAR NOT NULL,
|
|
commission FLOAT NOT NULL,
|
|
agent_commission FLOAT NOT NULL,
|
|
"key" VARCHAR NOT NULL,
|
|
create_dttm DATETIME NOT NULL,
|
|
update_dttm DATETIME NOT NULL,
|
|
auto_approve_transactions BOOLEAN NOT NULL,
|
|
PRIMARY KEY (id)
|
|
)
|
|
|
|
;
|
|
|
|
|
|
CREATE TABLE account (
|
|
id INTEGER NOT NULL,
|
|
login VARCHAR NOT NULL,
|
|
password_hash VARCHAR NOT NULL,
|
|
"firstName" VARCHAR,
|
|
surname VARCHAR,
|
|
phone VARCHAR,
|
|
email VARCHAR,
|
|
company_id INTEGER NOT NULL,
|
|
create_dttm DATETIME NOT NULL,
|
|
update_dttm DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
FOREIGN KEY(company_id) REFERENCES company (id)
|
|
)
|
|
|
|
;
|
|
|
|
|
|
CREATE TABLE company_balances (
|
|
id INTEGER NOT NULL,
|
|
company_id INTEGER NOT NULL,
|
|
available_balance FLOAT NOT NULL,
|
|
pending_balance FLOAT NOT NULL,
|
|
updated_dttm DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE (company_id),
|
|
FOREIGN KEY(company_id) REFERENCES company (id)
|
|
)
|
|
|
|
;
|
|
|
|
|
|
CREATE TABLE integrationtoken (
|
|
id INTEGER NOT NULL,
|
|
description VARCHAR NOT NULL,
|
|
token_hash VARCHAR,
|
|
masked_token VARCHAR,
|
|
company_id INTEGER NOT NULL,
|
|
create_dttm DATETIME NOT NULL,
|
|
update_dttm DATETIME NOT NULL,
|
|
use_dttm DATETIME,
|
|
PRIMARY KEY (id),
|
|
FOREIGN KEY(company_id) REFERENCES company (id)
|
|
)
|
|
|
|
;
|
|
|
|
|
|
CREATE TABLE salecategory (
|
|
id INTEGER NOT NULL,
|
|
category VARCHAR NOT NULL,
|
|
description VARCHAR,
|
|
perc FLOAT NOT NULL,
|
|
company_id INTEGER NOT NULL,
|
|
create_dttm DATETIME NOT NULL,
|
|
update_dttm DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
FOREIGN KEY(company_id) REFERENCES company (id)
|
|
)
|
|
|
|
;
|
|
|
|
|
|
CREATE TABLE tgagent (
|
|
id INTEGER NOT NULL,
|
|
tg_id INTEGER NOT NULL,
|
|
chat_id INTEGER,
|
|
phone VARCHAR,
|
|
name VARCHAR,
|
|
login VARCHAR,
|
|
hash VARCHAR,
|
|
company_id INTEGER NOT NULL,
|
|
create_dttm DATETIME NOT NULL,
|
|
update_dttm DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
FOREIGN KEY(company_id) REFERENCES company (id)
|
|
)
|
|
|
|
;
|
|
|
|
|
|
CREATE TABLE agent_balances (
|
|
id INTEGER NOT NULL,
|
|
tg_agent_id INTEGER NOT NULL,
|
|
available_balance FLOAT NOT NULL,
|
|
frozen_balance FLOAT NOT NULL,
|
|
updated_dttm DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE (tg_agent_id),
|
|
FOREIGN KEY(tg_agent_id) REFERENCES tgagent (id)
|
|
)
|
|
|
|
;
|
|
|
|
|
|
CREATE TABLE agent_transactions (
|
|
id INTEGER NOT NULL,
|
|
tg_agent_id INTEGER NOT NULL,
|
|
amount FLOAT NOT NULL,
|
|
status VARCHAR NOT NULL,
|
|
transaction_group CHAR(32) NOT NULL,
|
|
create_dttm DATETIME NOT NULL,
|
|
update_dttm DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
FOREIGN KEY(tg_agent_id) REFERENCES tgagent (id),
|
|
UNIQUE (transaction_group)
|
|
)
|
|
|
|
;
|
|
|
|
|
|
CREATE TABLE ref (
|
|
id INTEGER NOT NULL,
|
|
tg_agent_id INTEGER NOT NULL,
|
|
ref VARCHAR NOT NULL,
|
|
description VARCHAR,
|
|
promocode VARCHAR(8) NOT NULL,
|
|
create_dttm DATETIME NOT NULL,
|
|
update_dttm DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
FOREIGN KEY(tg_agent_id) REFERENCES tgagent (id)
|
|
)
|
|
|
|
;
|
|
|
|
|
|
CREATE TABLE partner_transactions (
|
|
id INTEGER NOT NULL,
|
|
company_id INTEGER NOT NULL,
|
|
type VARCHAR NOT NULL,
|
|
amount FLOAT NOT NULL,
|
|
status VARCHAR NOT NULL,
|
|
transaction_group CHAR(32) NOT NULL,
|
|
agent_transaction_id INTEGER,
|
|
create_dttm DATETIME NOT NULL,
|
|
update_dttm DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
FOREIGN KEY(company_id) REFERENCES company (id),
|
|
FOREIGN KEY(agent_transaction_id) REFERENCES agent_transactions (id)
|
|
)
|
|
|
|
;
|
|
|
|
|
|
CREATE TABLE sale (
|
|
id INTEGER NOT NULL,
|
|
cost FLOAT NOT NULL,
|
|
crediting FLOAT NOT NULL,
|
|
ref INTEGER NOT NULL,
|
|
sale_id VARCHAR NOT NULL,
|
|
company_id INTEGER NOT NULL,
|
|
category INTEGER NOT NULL,
|
|
sale_dttm DATETIME NOT NULL,
|
|
create_dttm DATETIME NOT NULL,
|
|
update_dttm DATETIME NOT NULL,
|
|
PRIMARY KEY (id),
|
|
FOREIGN KEY(ref) REFERENCES ref (id),
|
|
FOREIGN KEY(company_id) REFERENCES company (id),
|
|
FOREIGN KEY(category) REFERENCES salecategory (id)
|
|
)
|
|
|
|
; |