41 lines
1.6 KiB
SQL
41 lines
1.6 KiB
SQL
-- Таблица идентификаторов пользователей
|
||
CREATE TABLE IF NOT EXISTS user_identities (
|
||
id SERIAL PRIMARY KEY,
|
||
user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
|
||
identity_type VARCHAR(20) NOT NULL, -- 'wallet', 'telegram', 'email'
|
||
identity_value VARCHAR(255) NOT NULL,
|
||
verified BOOLEAN DEFAULT FALSE,
|
||
verification_token VARCHAR(100),
|
||
verification_expires TIMESTAMP,
|
||
last_used TIMESTAMP,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
UNIQUE(identity_type, identity_value)
|
||
);
|
||
|
||
-- Таблица диалогов
|
||
CREATE TABLE IF NOT EXISTS conversations (
|
||
id SERIAL PRIMARY KEY,
|
||
user_id INTEGER REFERENCES users(id),
|
||
title VARCHAR(255),
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||
);
|
||
|
||
-- Таблица сообщений
|
||
CREATE TABLE IF NOT EXISTS messages (
|
||
id SERIAL PRIMARY KEY,
|
||
conversation_id INTEGER REFERENCES conversations(id),
|
||
sender_type VARCHAR(20) NOT NULL, -- 'user', 'ai', 'admin'
|
||
sender_id INTEGER, -- ID пользователя или администратора
|
||
content TEXT,
|
||
channel VARCHAR(20) NOT NULL, -- 'web', 'telegram', 'email'
|
||
metadata JSONB, -- Дополнительная информация о сообщении
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||
);
|
||
|
||
-- Добавление языковых настроек в таблицу пользователей
|
||
ALTER TABLE users
|
||
ADD COLUMN IF NOT EXISTS language VARCHAR(10) DEFAULT 'en',
|
||
ADD COLUMN IF NOT EXISTS last_token_check TIMESTAMP;
|
||
|