lnbits-legend/lnbits/data/schema.sql

48 lines
1.1 KiB
MySQL
Raw Normal View History

CREATE TABLE IF NOT EXISTS accounts (
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)
);
CREATE TABLE IF NOT EXISTS wallets (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
user TEXT NOT NULL,
adminkey TEXT NOT NULL,
inkey TEXT
);
CREATE TABLE IF NOT EXISTS apipayments (
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')),
UNIQUE (wallet, payhash)
);
2019-12-14 00:11:41 -03:00
CREATE VIEW IF NOT EXISTS balances AS
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
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
SELECT wallet, SUM(amount + fee) AS s -- outgoing, sum fees
2019-12-14 00:11:41 -03:00
FROM apipayments
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;