common/dal/schema/000010_init.up.sql
2024-04-18 12:16:25 +03:00

79 lines
4.1 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 IF NOT EXISTS tokens (
AccountID VARCHAR(30) PRIMARY KEY, -- связь с users AccountID неявная посредством join
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 IF NOT EXISTS 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 '' -- страна в амо
);
CREATE TABLE IF NOT EXISTS pipelines (
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
AmoID INT NOT NULL , --id воронки в амо
AccountID INT NOT NULL , --id аккаунта в амо связь с таблицей users AmoID неявная посредством join
Name VARCHAR(50) NOT NULL DEFAULT '', --название воронки в амо
IsArchive BOOLEAN, --флаг архивной воронки в амо
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS steps (
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
Name VARCHAR(50) NOT NULL DEFAULT '', --название воронки в амо
Color VARCHAR(50) NOT NULL DEFAULT '', --цвет шага в амо*
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
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 $$;
CREATE TABLE IF NOT EXISTS 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 неявная посредством join
Name VARCHAR(50) NOT NULL DEFAULT '', -- название воронки в амо
Entity EntityType NOT NULL, -- тип сущности в амо, для которой это кастомное поле
Type VARCHAR(50) NOT NULL DEFAULT '', -- тип поля
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS tags (
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
AmoID INT NOT NULL, -- айдишник тега в амо
AccountID INT NOT NULL, -- id аккаунта в амо связь с таблицей users AmoID неявная посредством join
Entity EntityType NOT NULL, -- сущность, к которой принадлежит этот тег
Name VARCHAR(50) NOT NULL DEFAULT '', -- название тега в амо
Color VARCHAR(50) NOT NULL DEFAULT '', -- цвет тега в амо
Deleted BOOLEAN,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE quiz
ADD COLUMN utm jsonb NOT NULL DEFAULT '{}';
ALTER TABLE quiz
ADD COLUMN rules jsonb NOT NULL DEFAULT '{}';