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

79 lines
4.1 KiB
MySQL
Raw Normal View History

2024-04-17 15:37:04 +00:00
CREATE TABLE IF NOT EXISTS tokens (
AccountID VARCHAR(30) PRIMARY KEY, -- связь с users AccountID неявная посредством join
2024-04-17 15:37:04 +00:00
RefreshToken VARCHAR(512) NOT NULL ,
AccessToken VARCHAR(512) NOT NULL ,
AuthCode VARCHAR(512) NOT NULL , -- код авторизации который получаем при вебхук
Expiration TIMESTAMP NOT NULL, -- время истечения токенов
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
2024-04-17 15:17:07 +00:00
CREATE TABLE IF NOT EXISTS users (
2024-04-17 14:48:38 +00:00
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 '', -- роль в амо
2024-04-17 15:37:04 +00:00
"Group" JSONB, -- вложенная структура так как в амо группы хранятся массивом структур
2024-04-17 14:48:38 +00:00
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
Subdomain VARCHAR(50) NOT NULL DEFAULT '',
AmoUserID INT NOT NULL , -- id пользователя который подключал интеграцию
Country VARCHAR(50) NOT NULL DEFAULT '' -- страна в амо
2024-04-17 14:48:38 +00:00
);
2024-04-17 15:17:07 +00:00
CREATE TABLE IF NOT EXISTS pipelines (
2024-04-17 14:48:38 +00:00
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
AmoID INT NOT NULL , --id воронки в амо
AccountID INT NOT NULL , --id аккаунта в амо связь с таблицей users AmoID неявная посредством join
2024-04-17 14:48:38 +00:00
Name VARCHAR(50) NOT NULL DEFAULT '', --название воронки в амо
IsArchive BOOLEAN, --флаг архивной воронки в амо
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
2024-04-17 14:48:38 +00:00
);
2024-04-17 15:17:07 +00:00
CREATE TABLE IF NOT EXISTS steps (
2024-04-17 14:48:38 +00:00
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
AmoID INT NOT NULL, --id шага воронки в амо
PipelineID INT NOT NULL, --id воронки AmoID pipelines неявная посредством join
AccountID INT NOT NULL, --id аккаунта в амо связь с таблицей users AmoID неявная посредством join
2024-04-17 14:48:38 +00:00
Name VARCHAR(50) NOT NULL DEFAULT '', --название воронки в амо
Color VARCHAR(50) NOT NULL DEFAULT '', --цвет шага в амо*
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
2024-04-17 14:48:38 +00:00
);
2024-04-17 15:17:07 +00:00
DO $$
BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'entitytype') THEN
CREATE TYPE EntityType AS ENUM ('leads', 'contacts', 'companies', 'customers');
END IF;
END $$;
2024-04-17 14:48:38 +00:00
2024-04-17 15:17:07 +00:00
CREATE TABLE IF NOT EXISTS fields (
2024-04-17 14:48:38 +00:00
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
AmoID INT NOT NULL, -- айдишник кастомного поля в амо
Code VARCHAR(255) NOT NULL DEFAULT '', -- кодовое слово в амо
AccountID INT NOT NULL, -- id аккаунта в амо связь с таблицей users AmoID неявная посредством join
2024-04-17 14:48:38 +00:00
Name VARCHAR(50) NOT NULL DEFAULT '', -- название воронки в амо
Entity EntityType NOT NULL, -- тип сущности в амо, для которой это кастомное поле
Type VARCHAR(50) NOT NULL DEFAULT '', -- тип поля
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
2024-04-17 14:48:38 +00:00
);
2024-04-17 15:17:07 +00:00
CREATE TABLE IF NOT EXISTS tags (
2024-04-17 14:48:38 +00:00
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
AmoID INT NOT NULL, -- айдишник тега в амо
AccountID INT NOT NULL, -- id аккаунта в амо связь с таблицей users AmoID неявная посредством join
2024-04-17 14:48:38 +00:00
Entity EntityType NOT NULL, -- сущность, к которой принадлежит этот тег
Name VARCHAR(50) NOT NULL DEFAULT '', -- название тега в амо
Color VARCHAR(50) NOT NULL DEFAULT '', -- цвет тега в амо
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
2024-04-17 14:48:38 +00:00
);
2024-04-17 15:17:07 +00:00
2024-04-18 09:16:25 +00:00
ALTER TABLE quiz
2024-04-17 15:17:07 +00:00
ADD COLUMN utm jsonb NOT NULL DEFAULT '{}';
2024-04-18 09:16:25 +00:00
ALTER TABLE quiz
2024-04-17 15:17:07 +00:00
ADD COLUMN rules jsonb NOT NULL DEFAULT '{}';