1+ CREATE TABLE refresh_tokens
2+ (
3+ id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL ,
4+ token_hash VARCHAR (255 ) NOT NULL ,
5+ user_id BIGINT NOT NULL ,
6+ expires_at TIMESTAMP WITHOUT TIME ZONE NOT NULL ,
7+ created_at TIMESTAMP WITHOUT TIME ZONE NOT NULL ,
8+ CONSTRAINT pk_refresh_tokens PRIMARY KEY (id)
9+ );
10+
11+ CREATE TABLE subscriptions
12+ (
13+ id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL ,
14+ uuid UUID NOT NULL ,
15+ feed_url VARCHAR (255 ) NOT NULL ,
16+ created_at TIMESTAMP WITHOUT TIME ZONE NOT NULL ,
17+ updated_at TIMESTAMP WITHOUT TIME ZONE NOT NULL ,
18+ CONSTRAINT pk_subscriptions PRIMARY KEY (id)
19+ );
20+
21+ CREATE TABLE user_roles
22+ (
23+ user_id BIGINT NOT NULL ,
24+ user_roles VARCHAR (255 )
25+ );
26+
27+ CREATE TABLE user_subscription
28+ (
29+ id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL ,
30+ uuid UUID NOT NULL ,
31+ user_id BIGINT ,
32+ subscription_id BIGINT ,
33+ is_subscribed BOOLEAN DEFAULT TRUE,
34+ created_at TIMESTAMP WITHOUT TIME ZONE NOT NULL ,
35+ updated_at TIMESTAMP WITHOUT TIME ZONE NOT NULL ,
36+ CONSTRAINT pk_user_subscription PRIMARY KEY (id)
37+ );
38+
39+ CREATE TABLE users
40+ (
41+ id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL ,
42+ uuid UUID NOT NULL ,
43+ username VARCHAR (255 ) NOT NULL ,
44+ password VARCHAR (255 ) NOT NULL ,
45+ email VARCHAR (255 ) NOT NULL ,
46+ created_at TIMESTAMP WITHOUT TIME ZONE ,
47+ updated_at TIMESTAMP WITHOUT TIME ZONE ,
48+ CONSTRAINT pk_users PRIMARY KEY (id)
49+ );
50+
51+ ALTER TABLE refresh_tokens
52+ ADD CONSTRAINT uc_refresh_tokens_tokenhash UNIQUE (token_hash);
53+
54+ ALTER TABLE subscriptions
55+ ADD CONSTRAINT uc_subscriptions_uuid UNIQUE (uuid);
56+
57+ ALTER TABLE user_subscription
58+ ADD CONSTRAINT uc_user_subscription_uuid UNIQUE (uuid);
59+
60+ ALTER TABLE users
61+ ADD CONSTRAINT uc_users_email UNIQUE (email);
62+
63+ ALTER TABLE users
64+ ADD CONSTRAINT uc_users_username UNIQUE (username);
65+
66+ ALTER TABLE users
67+ ADD CONSTRAINT uc_users_uuid UNIQUE (uuid);
68+
69+ ALTER TABLE refresh_tokens
70+ ADD CONSTRAINT FK_REFRESH_TOKENS_ON_USER FOREIGN KEY (user_id) REFERENCES users (id);
71+
72+ ALTER TABLE user_subscription
73+ ADD CONSTRAINT FK_USER_SUBSCRIPTION_ON_SUBSCRIPTION FOREIGN KEY (subscription_id) REFERENCES subscriptions (id);
74+
75+ ALTER TABLE user_subscription
76+ ADD CONSTRAINT FK_USER_SUBSCRIPTION_ON_USER FOREIGN KEY (user_id) REFERENCES users (id);
77+
78+ ALTER TABLE user_roles
79+ ADD CONSTRAINT fk_user_roles_on_user_entity FOREIGN KEY (user_id) REFERENCES users (id);
0 commit comments