@@ -2,53 +2,65 @@ CREATE TABLE users (
22 user_id VARCHAR (255 ) PRIMARY KEY ,
33 balance FLOAT NOT NULL DEFAULT 0 .0 ,
44 wallet_address VARCHAR (255 ) NOT NULL ,
5+ access_token VARCHAR (255 ),
6+ refresh_token VARCHAR (255 ),
57 api_key VARCHAR (255 ),
68 api_secret VARCHAR (255 ),
7- reputation INTEGER NOT NULL DEFAULT 0 ,
8- access_token VARCHAR (255 )
9- );
10-
11- CREATE TABLE vials (
12- vial_id VARCHAR (255 ) NOT NULL ,
13- user_id VARCHAR (255 ) NOT NULL ,
14- code TEXT NOT NULL ,
15- wallet_address VARCHAR (255 ) NOT NULL ,
16- webxos_hash VARCHAR (255 ) NOT NULL ,
17- PRIMARY KEY (vial_id, user_id),
18- FOREIGN KEY (user_id) REFERENCES users(user_id)
19- );
20-
21- CREATE TABLE quantum_links (
22- link_id VARCHAR (255 ) PRIMARY KEY ,
23- user_id VARCHAR (255 ) NOT NULL ,
24- quantum_state JSONB NOT NULL ,
25- FOREIGN KEY (user_id) REFERENCES users(user_id)
26- );
27-
28- CREATE TABLE transactions (
29- transaction_id VARCHAR (255 ) PRIMARY KEY ,
30- user_id VARCHAR (255 ) NOT NULL ,
31- amount FLOAT NOT NULL ,
32- destination_address VARCHAR (255 ) NOT NULL ,
33- timestamp TIMESTAMP NOT NULL ,
34- FOREIGN KEY (user_id) REFERENCES users(user_id)
9+ totp_secret VARCHAR (32 )
3510);
3611
3712CREATE TABLE sessions (
38- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
39- session_key VARCHAR (255 ) UNIQUE NOT NULL ,
13+ session_key VARCHAR (255 ) PRIMARY KEY ,
4014 user_id VARCHAR (255 ) REFERENCES users(user_id),
41- expires_at TIMESTAMP NOT NULL ,
42- created_at TIMESTAMP DEFAULT NOW()
15+ expires_at TIMESTAMP NOT NULL
4316);
4417
4518CREATE TABLE security_events (
4619 id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
4720 event_type VARCHAR (100 ) NOT NULL ,
4821 user_id VARCHAR (255 ),
4922 client_id VARCHAR (255 ),
50- ip_address INET ,
23+ ip_address VARCHAR ( 45 ) ,
5124 user_agent TEXT ,
5225 details JSONB,
53- created_at TIMESTAMP DEFAULT NOW()
26+ created_at TIMESTAMP NOT NULL DEFAULT NOW()
27+ );
28+
29+ CREATE TABLE audit_logs (
30+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
31+ user_id VARCHAR (255 ),
32+ action VARCHAR (100 ) NOT NULL ,
33+ details JSONB,
34+ ip_address VARCHAR (45 ),
35+ created_at TIMESTAMP NOT NULL DEFAULT NOW(),
36+ notified BOOLEAN DEFAULT FALSE
37+ );
38+
39+ CREATE TABLE notifications (
40+ id SERIAL PRIMARY KEY ,
41+ user_id VARCHAR (255 ) NOT NULL ,
42+ notification_type VARCHAR (100 ) NOT NULL ,
43+ details JSONB,
44+ created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
5445);
46+
47+ CREATE TABLE blocks (
48+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
49+ hash VARCHAR (64 ) NOT NULL ,
50+ previous_hash VARCHAR (64 ),
51+ data JSONB,
52+ created_at TIMESTAMP NOT NULL DEFAULT NOW()
53+ );
54+
55+ CREATE TABLE vials (
56+ vial_id VARCHAR (255 ) PRIMARY KEY ,
57+ user_id VARCHAR (255 ) REFERENCES users(user_id),
58+ balance FLOAT NOT NULL DEFAULT 0 .0 ,
59+ status VARCHAR (50 ) NOT NULL DEFAULT ' stopped'
60+ );
61+
62+ CREATE INDEX idx_sessions_user_id ON sessions(user_id);
63+ CREATE INDEX idx_security_events_user_id ON security_events(user_id);
64+ CREATE INDEX idx_audit_logs_user_id ON audit_logs(user_id);
65+ CREATE INDEX idx_notifications_user_id ON notifications(user_id);
66+ CREATE INDEX idx_vials_user_id ON vials(user_id);
0 commit comments