88 lines
2.6 KiB
SQL
88 lines
2.6 KiB
SQL
CREATE TABLE IF NOT EXISTS user_info (
|
|
user_id UUID PRIMARY KEY,
|
|
google_id VARCHAR(255) NOT NULL,
|
|
user_name VARCHAR(50) NOT NULL,
|
|
user_surname VARCHAR(50) NOT NULL,
|
|
user_email VARCHAR(100) UNIQUE NOT NULL,
|
|
user_type VARCHAR(20) DEFAULT 'free',
|
|
picture_url VARCHAR(255),
|
|
user_created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS premium_user_info (
|
|
lemon_squeezy_customer_id VARCHAR(255) NOT NULL,
|
|
user_id UUID PRIMARY KEY,
|
|
receipt_url VARCHAR,
|
|
payment_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (user_id) REFERENCES user_info(user_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS user_feedback (
|
|
feedback_id UUID PRIMARY KEY,
|
|
user_id UUID NOT NULL,
|
|
feedback_type VARCHAR(20) NOT NULL,
|
|
description TEXT NOT NULL,
|
|
screenshot TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (user_id) REFERENCES user_info(user_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS domain_info (
|
|
user_id UUID NOT NULL,
|
|
domain_id UUID PRIMARY KEY,
|
|
domain_name VARCHAR(30) NOT NULL,
|
|
domain_type INTEGER,
|
|
FOREIGN KEY (user_id) REFERENCES user_info(user_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS file_info (
|
|
user_id UUID NOT NULL,
|
|
domain_id UUID NOT NULL,
|
|
file_id UUID PRIMARY KEY,
|
|
file_name VARCHAR(255) NOT NULL,
|
|
file_modified_date DATE,
|
|
file_upload_date DATE DEFAULT CURRENT_DATE,
|
|
FOREIGN KEY (user_id) REFERENCES user_info(user_id),
|
|
FOREIGN KEY (domain_id) REFERENCES domain_info(domain_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS file_content (
|
|
content_id SERIAL PRIMARY KEY,
|
|
file_id UUID NOT NULL,
|
|
sentence TEXT NOT NULL,
|
|
is_header BOOLEAN DEFAULT FALSE,
|
|
is_table BOOLEAN DEFAULT FALSE,
|
|
page_number INTEGER,
|
|
embedding BYTEA,
|
|
FOREIGN KEY (file_id) REFERENCES file_info(file_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS session_info (
|
|
id SERIAL PRIMARY KEY,
|
|
user_id UUID NOT NULL,
|
|
session_id UUID NOT NULL,
|
|
question_count INTEGER DEFAULT 0,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
total_enterance INTEGER DEFAULT 0,
|
|
last_enterance TIMESTAMP,
|
|
FOREIGN KEY (user_id) REFERENCES user_info(user_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS default_content (
|
|
content_id SERIAL PRIMARY KEY,
|
|
file_id UUID NOT NULL,
|
|
sentence TEXT NOT NULL,
|
|
is_header BOOLEAN DEFAULT FALSE,
|
|
is_table BOOLEAN DEFAULT FALSE,
|
|
page_number INTEGER,
|
|
embedding BYTEA
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS user_rating (
|
|
rating_id UUID PRIMARY KEY,
|
|
user_id UUID NOT NULL,
|
|
rating INTEGER NOT NULL,
|
|
user_note TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (user_id) REFERENCES user_info(user_id)
|
|
); |