2019-12-13 20:34:19 -03:00
|
|
|
CREATE TABLE IF NOT EXISTS accounts (
|
2020-02-10 13:29:20 +01:00
|
|
|
id TEXT PRIMARY KEY,
|
|
|
|
email TEXT,
|
|
|
|
pass TEXT
|
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS extensions (
|
|
|
|
user TEXT NOT NULL,
|
|
|
|
extension TEXT NOT NULL,
|
|
|
|
active BOOLEAN DEFAULT 0,
|
|
|
|
|
|
|
|
UNIQUE (user, extension)
|
2019-12-13 20:34:19 -03:00
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS wallets (
|
2020-02-10 13:29:20 +01:00
|
|
|
id TEXT PRIMARY KEY,
|
|
|
|
name TEXT NOT NULL,
|
|
|
|
user TEXT NOT NULL,
|
|
|
|
adminkey TEXT NOT NULL,
|
|
|
|
inkey TEXT
|
2019-12-13 20:34:19 -03:00
|
|
|
);
|
|
|
|
|
|
|
|
CREATE TABLE IF NOT EXISTS apipayments (
|
2020-02-10 13:29:20 +01:00
|
|
|
payhash TEXT NOT NULL,
|
|
|
|
amount INTEGER NOT NULL,
|
|
|
|
fee INTEGER NOT NULL DEFAULT 0,
|
|
|
|
wallet TEXT NOT NULL,
|
|
|
|
pending BOOLEAN NOT NULL,
|
|
|
|
memo TEXT,
|
|
|
|
time TIMESTAMP NOT NULL DEFAULT (strftime('%s', 'now')),
|
2019-12-16 16:23:00 +00:00
|
|
|
|
|
|
|
UNIQUE (wallet, payhash)
|
2019-12-13 20:34:19 -03:00
|
|
|
);
|
2019-12-14 00:11:41 -03:00
|
|
|
|
2019-12-14 15:49:32 -03:00
|
|
|
CREATE VIEW IF NOT EXISTS balances AS
|
2020-02-10 13:29:20 +01:00
|
|
|
SELECT wallet, COALESCE(SUM(s), 0) AS balance FROM (
|
|
|
|
SELECT wallet, SUM(amount) AS s -- incoming
|
2019-12-14 00:11:41 -03:00
|
|
|
FROM apipayments
|
2020-02-10 13:29:20 +01:00
|
|
|
WHERE amount > 0 AND pending = 0 -- don't sum pending
|
2019-12-14 09:18:48 -03:00
|
|
|
GROUP BY wallet
|
2019-12-14 00:11:41 -03:00
|
|
|
UNION ALL
|
2020-02-10 13:29:20 +01:00
|
|
|
SELECT wallet, SUM(amount + fee) AS s -- outgoing, sum fees
|
2019-12-14 00:11:41 -03:00
|
|
|
FROM apipayments
|
2020-02-10 13:29:20 +01:00
|
|
|
WHERE amount < 0 -- do sum pending
|
2019-12-14 09:18:48 -03:00
|
|
|
GROUP BY wallet
|
2019-12-14 00:11:41 -03:00
|
|
|
)
|
|
|
|
GROUP BY wallet;
|