76 lines
4.0 KiB
MySQL
76 lines
4.0 KiB
MySQL
|
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
|
|||
|
);
|