migrate del table utms, and column utms from rules and commented all queries with utms

This commit is contained in:
Pavel 2024-05-17 21:43:21 +03:00
parent d9be9bbf00
commit 9f317e2fa6
3 changed files with 65 additions and 49 deletions

@ -915,72 +915,72 @@ WHERE NOT EXISTS (
SELECT * FROM tokens WHERE accountID = $1;
-- name: DeletingUTM :exec
UPDATE utms SET Deleted = true WHERE ID = ANY($1::int[]);
-- UPDATE utms SET Deleted = true WHERE ID = ANY($1::int[]);
-- name: GetUTMsWithPagination :many
SELECT ut.*, COUNT(*) OVER() as total_count
FROM utms ut JOIN (SELECT AmoID FROM users WHERE users.AccountID = $1) u ON ut.AccountID = u.AmoID
WHERE ut.Deleted = false and ut.QuizID = $4
ORDER BY ut.ID OFFSET ($2 - 1) * $3 LIMIT $3;
-- SELECT ut.*, COUNT(*) OVER() as total_count
-- FROM utms ut JOIN (SELECT AmoID FROM users WHERE users.AccountID = $1) u ON ut.AccountID = u.AmoID
-- WHERE ut.Deleted = false and ut.QuizID = $4
-- ORDER BY ut.ID OFFSET ($2 - 1) * $3 LIMIT $3;
-- name: SaveUTMs :many
WITH user_data AS (
SELECT AmoID
FROM users
WHERE users.AccountID = $1
), new_UTMs AS (
SELECT (utm->>'AmoFieldID')::INT AS amoFieldID,
COALESCE(utm->>'QuizID', '')::INT AS quizID,
COALESCE(utm->>'Name', '')::varchar(512) AS name,
CURRENT_TIMESTAMP AS createdAt
FROM json_array_elements($2::json) AS utm
), inserted_utms AS(
INSERT INTO utms (AmoFieldID, QuizID, AccountID, Name, createdAt)
SELECT nu.amoFieldID,
nu.quizID,
ud.AmoID,
nu.name,
nu.createdAt
FROM new_UTMs nu
JOIN user_data ud ON true
RETURNING *
)
SELECT * from inserted_utms;
-- WITH user_data AS (
-- SELECT AmoID
-- FROM users
-- WHERE users.AccountID = $1
-- ), new_UTMs AS (
-- SELECT (utm->>'AmoFieldID')::INT AS amoFieldID,
-- COALESCE(utm->>'QuizID', '')::INT AS quizID,
-- COALESCE(utm->>'Name', '')::varchar(512) AS name,
-- CURRENT_TIMESTAMP AS createdAt
-- FROM json_array_elements($2::json) AS utm
-- ), inserted_utms AS(
-- INSERT INTO utms (AmoFieldID, QuizID, AccountID, Name, createdAt)
-- SELECT nu.amoFieldID,
-- nu.quizID,
-- ud.AmoID,
-- nu.name,
-- nu.createdAt
-- FROM new_UTMs nu
-- JOIN user_data ud ON true
-- RETURNING *
-- )
-- SELECT * from inserted_utms;
-- name: GetQuizRule :one
SELECT * FROM rules WHERE QuizID = $1 AND Deleted = false;
-- name: SetQuizSettings :exec
INSERT INTO rules (AccountID, QuizID, PerformerID, PipelineID, StepID, UTMS, FieldsRule)
INSERT INTO rules (AccountID, QuizID, PerformerID, PipelineID, StepID, FieldsRule)
SELECT u.AmoID AS AccountID,$1 AS QuizID,$2 AS PerformerID,$3 AS PipelineID,
$4 AS StepID,$5 AS UTMS,$6 AS FieldsRule FROM users u WHERE u.AccountID = $7;
$4 AS StepID,$5 AS FieldsRule FROM users u WHERE u.AccountID = $6;
-- name: ChangeQuizSettings :exec
UPDATE rules
SET PerformerID = $1,PipelineID = $2,StepID = $3,UTMS = $4,FieldsRule = $5
SET PerformerID = $1,PipelineID = $2,StepID = $3,FieldsRule = $4
WHERE AccountID = (SELECT AmoID FROM users WHERE users.AccountID = $6) AND QuizID = $7 AND Deleted = false;
-- name: GetUtmsByID :many
SELECT ID,AmoFieldID,QuizID,AccountID,Name
FROM utms
WHERE
ID = ANY($1::int[]) AND Deleted = FALSE;
-- name: GetUserFieldsByID :many
SELECT ID,AmoID,Code,AccountID,Name,Entity,Type
FROM fields
WHERE AccountID = $1 AND Deleted = false;
-- SELECT ID,AmoFieldID,QuizID,AccountID,Name
-- FROM utms
-- WHERE
-- ID = ANY($1::int[]) AND Deleted = FALSE;
--
-- -- name: GetUserFieldsByID :many
-- SELECT ID,AmoID,Code,AccountID,Name,Entity,Type
-- FROM fields
-- WHERE AccountID = $1 AND Deleted = false;
-- name: UpdateUtms :exec
UPDATE utms AS u
SET name = (update_data ->> 'Name')::varchar(512),
AmoFieldID = (update_data ->> 'AmoFieldID')::INT
FROM json_array_elements($1::json) AS update_data
WHERE u.ID = (update_data ->> 'ID')::INT;
-- UPDATE utms AS u
-- SET name = (update_data ->> 'Name')::varchar(512),
-- AmoFieldID = (update_data ->> 'AmoFieldID')::INT
-- FROM json_array_elements($1::json) AS update_data
-- WHERE u.ID = (update_data ->> 'ID')::INT;
-- name: UpdateUtmsFields :exec
UPDATE utms AS u SET AmoFieldID = f.AmoID FROM fields AS f
WHERE u.Name = f.Name AND u.ID = ANY($1::int[]) AND u.Deleted = FALSE;
-- UPDATE utms AS u SET AmoFieldID = f.AmoID FROM fields AS f
-- WHERE u.Name = f.Name AND u.ID = ANY($1::int[]) AND u.Deleted = FALSE;
-- name: GetQuestionListByIDs :many
SELECT * FROM question WHERE id = ANY($1::int[]) AND deleted = FALSE;
@ -1031,7 +1031,7 @@ WHERE NOT EXISTS (
);
-- name: GettingAmoUsersTrueResults :many
SELECT a.quiz_id,a.id,a.result,a.question_id,a.content,a.session,t.accesstoken,r.accountid,r.utms,r.fieldsrule,r.performerid,r.stepid,r.pipelineid,(SELECT u.name FROM users u WHERE u.amoid = r.performerid) AS performer_name
SELECT a.quiz_id,a.id,a.result,a.question_id,a.content,a.session,t.accesstoken,r.accountid,a.utm,r.fieldsrule,r.performerid,r.stepid,r.pipelineid,(SELECT u.name FROM users u WHERE u.amoid = r.performerid) AS performer_name
FROM answer a
INNER JOIN quiz q ON a.quiz_id = q.id
LEFT JOIN amoCRMStatuses s ON a.id = s.AnswerID

@ -1,2 +1,15 @@
ALTER TABLE answer
DROP COLUMN utm;
DROP COLUMN utm;
CREATE TABLE IF NOT EXISTS utms (
ID BIGSERIAL UNIQUE NOT NULL PRIMARY KEY,
AmoFieldID INT NOT NULL DEFAULT 0, -- id field в амо
QuizID INT NOT NULL, -- id опроса
AccountID INT NOT NULL, -- id аккаунта в амо AMOID
Name VARCHAR(512) NOT NULL DEFAULT '', -- название utm
Deleted BOOLEAN NOT NULL DEFAULT FALSE,
CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE rules
ADD COLUMN UTMS INTEGER[];

@ -1,2 +1,5 @@
ALTER TABLE answer
ADD COLUMN utm jsonb NOT NULL DEFAULT '{}';
ADD COLUMN utm jsonb NOT NULL DEFAULT '{}';
DROP TABLE IF EXISTS utms;
ALTER TABLE rules
DROP COLUMN IF EXISTS UTMS;