1
+ -- ----------------------------------
2
+ -- Emails table
3
+ -- ----------------------------------
4
+ CREATE TABLE IF NOT EXISTS " emails"
5
+ (
6
+ " id" UUID NOT NULL ,
7
+ " email" TEXT COLLATE pg_catalog." default" NOT NULL ,
8
+ " password" TEXT COLLATE pg_catalog." default" NOT NULL ,
9
+ CONSTRAINT " emails_pkey" PRIMARY KEY (" id" ),
10
+ CONSTRAINT " email" UNIQUE (" email" )
11
+ );
12
+ -- ----------------------------------
13
+ -- Wallets table
14
+ -- ----------------------------------
15
+ CREATE TABLE IF NOT EXISTS " wallets"
16
+ (
17
+ " id" UUID NOT NULL ,
18
+ " address" TEXT COLLATE pg_catalog." default" NOT NULL ,
19
+ " ecosystem" TEXT COLLATE pg_catalog." default" NOT NULL ,
20
+ CONSTRAINT " wallets_pkey" PRIMARY KEY (" id" ),
21
+ CONSTRAINT " address" UNIQUE (" address" )
22
+ );
23
+ -- ----------------------------------
24
+ -- Accounts table
25
+ -- ----------------------------------
26
+ CREATE TABLE IF NOT EXISTS " accounts"
27
+ (
28
+ " id" UUID NOT NULL ,
29
+ " email" UUID NULL ,
30
+ " wallet" UUID NULL ,
31
+ CONSTRAINT " accounts_pkey" PRIMARY KEY (" id" ),
32
+ CONSTRAINT " accounts_email_wallet_unique" UNIQUE (" email" , " wallet" )
33
+ INCLUDE(" email" , " wallet" ),
34
+ CONSTRAINT " account_email_fk" FOREIGN KEY (" email" )
35
+ REFERENCES " emails" (" id" ) MATCH SIMPLE
36
+ ON UPDATE CASCADE
37
+ ON DELETE CASCADE ,
38
+ CONSTRAINT " account_wallet_fk" FOREIGN KEY (" wallet" )
39
+ REFERENCES " wallets" (" id" ) MATCH SIMPLE
40
+ ON UPDATE CASCADE
41
+ ON DELETE CASCADE
42
+ );
43
+ -- ----------------------------------
44
+ -- AccountWallets table
45
+ -- ----------------------------------
46
+ CREATE TABLE IF NOT EXISTS " account_wallets"
47
+ (
48
+ " id" UUID NOT NULL ,
49
+ " account" UUID NOT NULL ,
50
+ " wallet" UUID NOT NULL ,
51
+ CONSTRAINT " account_wallets_pkey" PRIMARY KEY (" id" ),
52
+ CONSTRAINT " account_wallets_account_fk" FOREIGN KEY (" account" )
53
+ REFERENCES " accounts" (" id" ) MATCH SIMPLE
54
+ ON UPDATE CASCADE
55
+ ON DELETE CASCADE ,
56
+ CONSTRAINT " account_wallets_wallet_fk" FOREIGN KEY (" wallet" )
57
+ REFERENCES " wallets" (" id" ) MATCH SIMPLE
58
+ ON UPDATE CASCADE
59
+ ON DELETE CASCADE
60
+ );
61
+ -- ----------------------------------
62
+ -- WalletOperationHistories table
63
+ -- ----------------------------------
64
+ CREATE TABLE IF NOT EXISTS " wallet_operation_histories"
65
+ (
66
+ " id" UUID NOT NULL ,
67
+ " account" UUID NOT NULL ,
68
+ " timestamp" TEXT COLLATE pg_catalog." default" NOT NULL ,
69
+ " operation" TEXT COLLATE pg_catalog." default" NOT NULL ,
70
+ " data" TEXT COLLATE pg_catalog." default" NOT NULL ,
71
+ CONSTRAINT " wallet_operation_histories_pkey" PRIMARY KEY (" id" ),
72
+ CONSTRAINT " wallet_operation_histories_account_fk" FOREIGN KEY (" account" )
73
+ REFERENCES " accounts" (" id" ) MATCH SIMPLE
74
+ ON UPDATE CASCADE
75
+ ON DELETE CASCADE
76
+ );
0 commit comments