fix sql
This commit is contained in:
parent
ae01145ce6
commit
42ba11f5a0
@ -700,30 +700,21 @@ SELECT *, COUNT(*) OVER() as total_count FROM fields WHERE Deleted = false ORDE
|
||||
WITH user_data AS (
|
||||
SELECT AmoID
|
||||
FROM users
|
||||
WHERE AccountID = $1 -- параметр AccountID из токена для получения id аккаунта в амо
|
||||
), updated_tags AS (
|
||||
UPDATE tags
|
||||
SET name = new_tags.name, color = new_tags.color, createdAt = CURRENT_TIMESTAMP
|
||||
FROM (
|
||||
SELECT t.ID, t.Name, t.Color, t.AmoID
|
||||
FROM UNNEST($3::entitytype[], $4::varchar(50)[], $5::varchar(50)[]) AS t(ID INT, Name VARCHAR(50), Color VARCHAR(50), AmoID INT)
|
||||
) AS new_tags
|
||||
JOIN user_data ON tags.AccountID = user_data.AmoID
|
||||
WHERE tags.amoID = $2
|
||||
AND tags.amoID = new_tags.amoID
|
||||
AND tags.accountID = user_data.AmoID -- Используем полученный AmoID из таблицы users
|
||||
AND tags.entity = $3
|
||||
AND tags.deleted = FALSE
|
||||
RETURNING tags.id, tags.amoID
|
||||
), inserted_tags AS (
|
||||
INSERT INTO tags (amoID, accountID, entity, name, color, createdAt)
|
||||
SELECT $2, user_data.AmoID, $3, t.Name, t.Color, CURRENT_TIMESTAMP
|
||||
FROM UNNEST($3::entitytype[], $4::varchar(50)[], $5::varchar(50)[]) AS t(Name VARCHAR(50), Color VARCHAR(50))
|
||||
JOIN user_data ON $1 = user_data.AmoID
|
||||
WHERE (t.Name, t.Color) NOT IN (SELECT name, color FROM updated_tags)
|
||||
RETURNING id, amoID
|
||||
WHERE AccountID = $1
|
||||
)
|
||||
SELECT * FROM updated_tags
|
||||
UNION ALL
|
||||
SELECT * FROM inserted_tags;
|
||||
INSERT INTO tags (amoID, accountID, Entity, name, color, createdAt)
|
||||
SELECT (new_tags->>'Amoid')::INT,
|
||||
user_data.AmoID,
|
||||
CAST(new_tags->>'Entity' AS entitytype),
|
||||
new_tags->>'Name',
|
||||
new_tags->>'Color',
|
||||
CURRENT_TIMESTAMP
|
||||
FROM json_array_elements($2::json[]) AS new_tags
|
||||
JOIN user_data ON true
|
||||
ON CONFLICT (amoID, accountID, entity) DO UPDATE
|
||||
SET name = EXCLUDED.name,
|
||||
color = EXCLUDED.color,
|
||||
createdAt = CURRENT_TIMESTAMP
|
||||
RETURNING *;
|
||||
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
ALTER TABLE pipelines DROP CONSTRAINT IF EXISTS unique_pipeline;
|
||||
ALTER TABLE steps DROP CONSTRAINT IF EXISTS unique_step;
|
||||
ALTER TABLE fields DROP CONSTRAINT IF EXISTS unique_field;
|
||||
ALTER TABLE tags DROP CONSTRAINT IF EXISTS unique_tag;
|
||||
|
||||
ALTER TABLE question
|
||||
DROP COLUMN IF EXISTS utm,
|
||||
DROP COLUMN IF EXISTS rules;
|
||||
|
@ -15,7 +15,7 @@ CREATE TABLE IF NOT EXISTS users (
|
||||
Email VARCHAR(50) NOT NULL DEFAULT '', -- почта в амо
|
||||
Role VARCHAR(50) NOT NULL DEFAULT '', -- роль в амо
|
||||
"Group" JSONB, -- вложенная структура так как в амо группы хранятся массивом структур
|
||||
Deleted BOOLEAN,
|
||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
Subdomain VARCHAR(50) NOT NULL DEFAULT '',
|
||||
AmoUserID INT NOT NULL , -- id пользователя который подключал интеграцию
|
||||
@ -27,8 +27,8 @@ CREATE TABLE IF NOT EXISTS pipelines (
|
||||
AmoID INT NOT NULL , --id воронки в амо
|
||||
AccountID INT NOT NULL , --id аккаунта в амо связь с таблицей users AmoID неявная посредством join
|
||||
Name VARCHAR(50) NOT NULL DEFAULT '', --название воронки в амо
|
||||
IsArchive BOOLEAN, --флаг архивной воронки в амо
|
||||
Deleted BOOLEAN,
|
||||
IsArchive BOOLEAN NOT NULL DEFAULT FALSE, --флаг архивной воронки в амо
|
||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
@ -39,7 +39,7 @@ CREATE TABLE IF NOT EXISTS steps (
|
||||
AccountID INT NOT NULL, --id аккаунта в амо связь с таблицей users AmoID неявная посредством join
|
||||
Name VARCHAR(50) NOT NULL DEFAULT '', --название воронки в амо
|
||||
Color VARCHAR(50) NOT NULL DEFAULT '', --цвет шага в амо*
|
||||
Deleted BOOLEAN,
|
||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
@ -58,7 +58,7 @@ CREATE TABLE IF NOT EXISTS fields (
|
||||
Name VARCHAR(50) NOT NULL DEFAULT '', -- название воронки в амо
|
||||
Entity EntityType NOT NULL, -- тип сущности в амо, для которой это кастомное поле
|
||||
Type VARCHAR(50) NOT NULL DEFAULT '', -- тип поля
|
||||
Deleted BOOLEAN,
|
||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
@ -69,11 +69,16 @@ CREATE TABLE IF NOT EXISTS tags (
|
||||
Entity EntityType NOT NULL, -- сущность, к которой принадлежит этот тег
|
||||
Name VARCHAR(50) NOT NULL DEFAULT '', -- название тега в амо
|
||||
Color VARCHAR(50) NOT NULL DEFAULT '', -- цвет тега в амо
|
||||
Deleted BOOLEAN,
|
||||
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
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 '{}';
|
||||
ADD COLUMN rules jsonb NOT NULL DEFAULT '{}';
|
||||
|
||||
ALTER TABLE pipelines ADD CONSTRAINT unique_pipeline UNIQUE (amoID, accountID);
|
||||
ALTER TABLE steps ADD CONSTRAINT unique_step UNIQUE (amoID, accountID, PipelineID);
|
||||
ALTER TABLE fields ADD CONSTRAINT unique_field UNIQUE (amoID, accountID, entity);
|
||||
ALTER TABLE tags ADD CONSTRAINT unique_tag UNIQUE (amoID, accountID, entity);
|
Loading…
Reference in New Issue
Block a user