diff --git a/dal/db_query/queries.sql b/dal/db_query/queries.sql index 9a13e26..cba76ba 100644 --- a/dal/db_query/queries.sql +++ b/dal/db_query/queries.sql @@ -731,48 +731,78 @@ SELECT * FROM usersamo WHERE amoid = $1 AND deleted = false; WITH user_data AS ( SELECT AmoID FROM accountsAmo WHERE accountsAmo.AccountID = $1 AND accountsAmo.Deleted = false ) -SELECT u.*, COUNT(*) OVER() as total_count +SELECT u.* FROM usersAmo u JOIN user_data a ON u.AmoID = a.AmoID WHERE u.Deleted = false ORDER BY u.ID OFFSET ($2 - 1) * $3 LIMIT $3; +-- name: GetUsersCount :one +WITH user_data AS ( + SELECT AmoID FROM accountsAmo WHERE accountsAmo.AccountID = $1 AND accountsAmo.Deleted = false +) +SELECT COUNT(*) FROM usersAmo u JOIN user_data a ON u.AmoID = a.AmoID WHERE u.Deleted = false; + -- name: GetTagsWithPagination :many WITH user_data AS ( SELECT AmoID FROM accountsAmo WHERE accountsAmo.AccountID = $1 AND accountsAmo.Deleted = false ) -SELECT t.*, COUNT(*) OVER() as total_count +SELECT t.* FROM tags t JOIN user_data u ON t.AccountID = u.AmoID WHERE t.Deleted = false ORDER BY t.ID OFFSET ($2 - 1) * $3 LIMIT $3; +-- name: GetTagsCount :one +WITH user_data AS ( + SELECT AmoID FROM accountsAmo WHERE accountsAmo.AccountID = $1 AND accountsAmo.Deleted = false +) +SELECT COUNT(*) FROM tags t JOIN user_data u ON t.AccountID = u.AmoID WHERE t.Deleted = false; + -- name: GetStepsWithPagination :many WITH user_data AS ( SELECT AmoID FROM accountsAmo WHERE accountsAmo.AccountID = $1 AND accountsAmo.Deleted = false ) -SELECT s.*, COUNT(*) OVER() as total_count +SELECT s.* FROM steps s JOIN user_data u ON s.AccountID = u.AmoID -WHERE s.Deleted = false AND PipelineID = $4 +WHERE s.Deleted = false AND s.PipelineID = $4 ORDER BY s.ID OFFSET ($2 - 1) * $3 LIMIT $3; +-- name: GetStepsCount :one +WITH user_data AS ( + SELECT AmoID FROM accountsAmo WHERE accountsAmo.AccountID = $1 AND accountsAmo.Deleted = false +) +SELECT COUNT(*) FROM steps s JOIN user_data u ON s.AccountID = u.AmoID WHERE s.Deleted = false AND s.PipelineID = $4; + -- name: GetPipelinesWithPagination :many WITH user_data AS ( SELECT AmoID FROM accountsAmo WHERE accountsAmo.AccountID = $1 AND accountsAmo.Deleted = false ) -SELECT p.*, COUNT(*) OVER() as total_count +SELECT p.* FROM pipelines p JOIN user_data u ON p.AccountID = u.AmoID WHERE p.Deleted = false ORDER BY p.ID OFFSET ($2 - 1) * $3 LIMIT $3; +-- name: GetPipelinesCount :one +WITH user_data AS ( + SELECT AmoID FROM accountsAmo WHERE accountsAmo.AccountID = $1 AND accountsAmo.Deleted = false +) +SELECT COUNT(*) FROM pipelines p JOIN user_data u ON p.AccountID = u.AmoID WHERE p.Deleted = false; + -- name: GetFieldsWithPagination :many WITH user_data AS ( SELECT AmoID FROM accountsAmo WHERE accountsAmo.AccountID = $1 AND accountsAmo.Deleted = false ) -SELECT f.*, COUNT(*) OVER() as total_count +SELECT f.* FROM fields f JOIN user_data u ON f.AccountID = u.AmoID WHERE f.Deleted = false ORDER BY f.ID OFFSET ($2 - 1) * $3 LIMIT $3; +-- name: GetFieldsCount :one +WITH user_data AS ( + SELECT AmoID FROM accountsAmo WHERE accountsAmo.AccountID = $1 AND accountsAmo.Deleted = false +) +SELECT COUNT(*) FROM fields f JOIN user_data u ON f.AccountID = u.AmoID WHERE f.Deleted = false; + -- name: UpdateTags :exec UPDATE tags AS t SET name = (update_data ->> 'Name')::varchar(512), @@ -1055,10 +1085,10 @@ INSERT INTO amoContact (AccountID, AmoID, Field) VALUES ($1, $2, $3) RETURNING A UPDATE amoContact SET Field = $1,AmoID=$3 WHERE ID = $2; -- name: GetQuestionsAI :many -WITH total_count AS (SELECT COUNT(*) AS count -FROM question WHERE quiz_id = $1 AND (session = $2 OR session = '') AND deleted = FALSE) -SELECT q.*, t.count FROM question q - CROSS JOIN total_count t +SELECT q.id, q.quiz_id, q.title, q.description, q.questiontype, q.required, q.deleted, q.page, q.content, q.version, q.parent_ids, q.created_at, q.updated_at, q.session FROM question q WHERE q.quiz_id = $1 AND (q.session = $2 OR q.session = '') AND q.deleted = FALSE -ORDER BY q.page, q.created_at ASC LIMIT $3 OFFSET $4; +ORDER BY q.page, q.created_at ASC LIMIT $3 OFFSET $4 + +-- name: GetQuestionsAICount :one +SELECT COUNT(*) AS count FROM question WHERE quiz_id = $1 AND (session = $2 OR session = '') AND deleted = FALSE;