common/dal/schema/000010_init.up.sql

76 lines
4.0 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CREATE TABLE users (
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
AccountID VARCHAR(30) NOT NULL , -- id квизе из токена
AmoID INT NOT NULL , -- id в амо
Name VARCHAR(50) NOT NULL DEFAULT '', -- имя в амо
Email VARCHAR(50) NOT NULL DEFAULT '', -- почта в амо
Role VARCHAR(50) NOT NULL DEFAULT '', -- роль в амо
Group JSONB, -- вложенная структура так как в амо группы хранятся массивом структур
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
Subdomain VARCHAR(50) NOT NULL DEFAULT '',
AmoUserID INT NOT NULL , -- id пользователя который подключал интеграцию
Country VARCHAR(50) NOT NULL DEFAULT '', -- страна в амо
FOREIGN KEY (AccountID) REFERENCES tokens (AccountID), -- связь с таблицей tokens
FOREIGN KEY (AmoID) REFERENCES pipelines (AccountID) -- связь с таблицей pipelines
);
CREATE TABLE tokens (
AccountID VARCHAR(30) PRIMARY KEY, -- связь с users AccountID
RefreshToken VARCHAR(512) NOT NULL ,
AccessToken VARCHAR(512) NOT NULL ,
AuthCode VARCHAR(512) NOT NULL , -- код авторизации который получаем при вебхук
Expiration TIMESTAMP NOT NULL, -- время истечения токенов
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE pipelines (
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
AmoID INT NOT NULL , --id воронки в амо
AccountID INT NOT NULL , --id аккаунта в амо связь с таблицей users AmoID
Name VARCHAR(50) NOT NULL DEFAULT '', --название воронки в амо
IsArchive BOOLEAN, --флаг архивной воронки в амо
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (AccountID) REFERENCES users (AmoID) -- связь с таблицей users
);
CREATE TABLE steps (
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
AmoID INT NOT NULL, --id шага воронки в амо
PipelineID INT NOT NULL, --id воронки AmoID pipelines
AccountID INT NOT NULL, --id аккаунта в амо связь с таблицей users AmoID
Name VARCHAR(50) NOT NULL DEFAULT '', --название воронки в амо
Color VARCHAR(50) NOT NULL DEFAULT '', --цвет шага в амо*
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (AccountID) REFERENCES users (AmoID),
FOREIGN KEY (PipelineID) REFERENCES pipelines (ID)
);
CREATE TYPE EntityType AS ENUM ('leads', 'contacts', 'companies', 'customers');
CREATE TABLE fields (
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
AmoID INT NOT NULL, -- айдишник кастомного поля в амо
Code VARCHAR(255) NOT NULL DEFAULT '', -- кодовое слово в амо
AccountID INT NOT NULL, -- id аккаунта в амо связь с таблицей users AmoID
Name VARCHAR(50) NOT NULL DEFAULT '', -- название воронки в амо
Entity EntityType NOT NULL, -- тип сущности в амо, для которой это кастомное поле
Type VARCHAR(50) NOT NULL DEFAULT '', -- тип поля
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (AccountID) REFERENCES users (AmoID)
);
CREATE TABLE tags (
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
AmoID INT NOT NULL, -- айдишник тега в амо
AccountID INT NOT NULL, -- id аккаунта в амо связь с таблицей users AmoID
Entity EntityType NOT NULL, -- сущность, к которой принадлежит этот тег
Name VARCHAR(50) NOT NULL DEFAULT '', -- название тега в амо
Color VARCHAR(50) NOT NULL DEFAULT '', -- цвет тега в амо
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);