75 lines
2.3 KiB
SQL
75 lines
2.3 KiB
SQL
-- db/init.sql
|
|
-- Создаёт таблицы для хранения пользователей, ключей маркетплейсов, кейсов и файлов
|
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id SERIAL PRIMARY KEY,
|
|
username VARCHAR(50) UNIQUE NOT NULL,
|
|
password_hash TEXT NOT NULL,
|
|
plan VARCHAR(20) DEFAULT 'free',
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS credentials (
|
|
user_id INT REFERENCES users(id) ON DELETE CASCADE,
|
|
platform VARCHAR(50),
|
|
api_key TEXT,
|
|
client_id TEXT,
|
|
client_secret TEXT,
|
|
other_data JSONB,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (user_id, platform)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS cases (
|
|
id SERIAL PRIMARY KEY,
|
|
user_id INT REFERENCES users(id) ON DELETE CASCADE,
|
|
platform VARCHAR(50) NOT NULL DEFAULT 'ozon',
|
|
violator_url TEXT NOT NULL,
|
|
violator_article VARCHAR(50) NOT NULL,
|
|
my_article VARCHAR(50),
|
|
comment TEXT,
|
|
status VARCHAR(20) DEFAULT 'new',
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS files (
|
|
id SERIAL PRIMARY KEY,
|
|
case_id INT REFERENCES cases(id) ON DELETE CASCADE,
|
|
file_path TEXT NOT NULL,
|
|
uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS audit_log (
|
|
id SERIAL PRIMARY KEY,
|
|
user_id INT REFERENCES users(id) ON DELETE CASCADE,
|
|
action VARCHAR(100) NOT NULL,
|
|
details JSONB,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS seo_keywords (
|
|
id SERIAL PRIMARY KEY,
|
|
user_id INT REFERENCES users(id) ON DELETE CASCADE,
|
|
keyword VARCHAR(255) NOT NULL,
|
|
article VARCHAR(100) NOT NULL,
|
|
platform VARCHAR(50) NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS seo_history (
|
|
id SERIAL PRIMARY KEY,
|
|
keyword_id INT REFERENCES seo_keywords(id) ON DELETE CASCADE,
|
|
position INT,
|
|
checked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS reference_images (
|
|
id SERIAL PRIMARY KEY,
|
|
user_id INT REFERENCES users(id) ON DELETE CASCADE,
|
|
file_path TEXT NOT NULL,
|
|
image_hash VARCHAR(64),
|
|
article VARCHAR(100),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|