Files
History_Api/db/query/wiki.sql
AzenKain ac90236022
All checks were successful
Build and Release / release (push) Successful in 1m15s
UPDATE: Project Module
2026-04-25 14:05:15 +07:00

61 lines
1.3 KiB
SQL

-- name: CreateWiki :one
INSERT INTO wikis (
title, content
) VALUES (
$1, $2
)
RETURNING *;
-- name: GetWikiById :one
SELECT *
FROM wikis
WHERE id = $1 AND is_deleted = false;
-- name: UpdateWiki :one
UPDATE wikis
SET
title = COALESCE(sqlc.narg('title'), title),
content = COALESCE(sqlc.narg('content'), content)
WHERE id = sqlc.arg('id') AND is_deleted = false
RETURNING *;
-- name: DeleteWiki :exec
UPDATE wikis
SET
is_deleted = true
WHERE id = $1;
-- name: SearchWikis :many
SELECT w.*
FROM wikis w
WHERE w.is_deleted = false
AND w.title ILIKE '%' || sqlc.arg('title')::text || '%'
AND (
sqlc.narg('entity_id')::uuid IS NULL OR
EXISTS (
SELECT 1
FROM entity_wikis ew
WHERE ew.wiki_id = w.id
AND ew.entity_id = sqlc.narg('entity_id')::uuid
)
)
AND (sqlc.narg('cursor_id')::uuid IS NULL OR w.id < sqlc.narg('cursor_id')::uuid)
ORDER BY w.id DESC
LIMIT sqlc.arg('limit_count');
-- name: BulkDeleteEntityWikisByEntityId :many
DELETE FROM entity_wikis
WHERE entity_id = $1
RETURNING wiki_id;
-- name: CreateEntityWikis :exec
INSERT INTO entity_wikis (
entity_id, wiki_id
)
SELECT $1, unnest(@wiki_ids::uuid[]);
-- name: GetWikisByIDs :many
SELECT * FROM wikis WHERE id = ANY($1::uuid[]) AND is_deleted = false;