-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmigrations.py
More file actions
70 lines (66 loc) · 2.11 KB
/
migrations.py
File metadata and controls
70 lines (66 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
empty_dict: dict[str, str] = {}
async def m001_initial(db):
await db.execute(
f"""
CREATE TABLE IF NOT EXISTS tabs.tabs (
id TEXT PRIMARY KEY,
wallet TEXT NOT NULL,
name TEXT NOT NULL,
customer_name TEXT,
reference TEXT,
currency TEXT NOT NULL DEFAULT 'sats',
status TEXT NOT NULL,
limit_type TEXT NOT NULL DEFAULT 'none',
limit_amount REAL,
balance REAL NOT NULL DEFAULT 0,
is_archived BOOLEAN NOT NULL DEFAULT false,
created_at TIMESTAMP NOT NULL DEFAULT {db.timestamp_now},
updated_at TIMESTAMP NOT NULL DEFAULT {db.timestamp_now},
closed_at TIMESTAMP,
archived_at TIMESTAMP
);
"""
)
await db.execute(
f"""
CREATE TABLE IF NOT EXISTS tabs.tab_entries (
id TEXT PRIMARY KEY,
tab_id TEXT NOT NULL,
entry_type TEXT NOT NULL,
amount REAL NOT NULL DEFAULT 0,
description TEXT,
unit_label TEXT,
quantity REAL,
metadata TEXT,
source TEXT,
source_id TEXT,
source_action TEXT,
operator_user_id TEXT,
idempotency_key TEXT,
created_at TIMESTAMP NOT NULL DEFAULT {db.timestamp_now}
);
"""
)
await db.execute(
f"""
CREATE TABLE IF NOT EXISTS tabs.tab_settlements (
id TEXT PRIMARY KEY,
tab_id TEXT NOT NULL,
amount REAL NOT NULL,
method TEXT NOT NULL,
status TEXT NOT NULL,
payment_hash TEXT,
checking_id TEXT,
payment_request TEXT,
reference TEXT,
description TEXT,
metadata TEXT,
operator_user_id TEXT,
idempotency_key TEXT,
created_at TIMESTAMP NOT NULL DEFAULT {db.timestamp_now},
updated_at TIMESTAMP NOT NULL DEFAULT {db.timestamp_now},
completed_at TIMESTAMP,
cancelled_at TIMESTAMP
);
"""
)