df/bff/db/query/document.sql

75 lines
1.4 KiB
SQL

-- name: GetDocument :one
SELECT * FROM documents
WHERE "id" = $1 LIMIT 1;
-- name: CreateDocumentUpload :one
INSERT INTO documents (
"person_id",
"name",
"type",
"path",
"url",
"creator",
"changer",
"mail_id"
) VALUES (
$1, $2, $3, $4, $5, $6, $7, NULL
) RETURNING *;
-- name: CreateDocumentMail :one
INSERT INTO documents (
"mail_id",
"name",
"type",
"path",
"url",
"creator",
"changer",
"person_id"
) VALUES (
$1, $2, $3, $4, $5, $6, $7, NULL
) RETURNING *;
-- name: ListDocuments :many
SELECT * FROM documents
ORDER BY "valid", "type", "name"
LIMIT $1
OFFSET $2;
-- name: UpdateDocument :one
UPDATE documents
SET
"name" = COALESCE(sqlc.narg(name), "name"),
"type" = COALESCE(sqlc.narg(type), "type"),
"path" = COALESCE(sqlc.narg(path), "path"),
"url" = COALESCE(sqlc.narg(url), "url"),
changer = $2,
changed = now()
WHERE "id" = $1
RETURNING *;
-- name: ValidateDocument :one
UPDATE documents
SET
"valid" = true,
"valid_date" = now(),
"validated_by" = $2,
"changer" = $2,
"changed" = now()
WHERE "id" = $1
RETURNING *;
-- name: InvalidateDocument :one
UPDATE documents
SET
"valid" = false,
"valid_date" = NULL,
"validated_by" = NULL,
"changer" = $2,
"changed" = now()
WHERE "id" = $1
RETURNING *;
-- name: DeleteDocument :exec
DELETE FROM documents
WHERE "id" = $1;