Files

36 lines
1.3 KiB
SQL

-- name: CreateProject :one
INSERT INTO projects (id, slug, name, description, visibility, owner_id)
VALUES ($1, $2, $3, $4, $5, $6)
RETURNING id, slug, name, description, visibility, owner_id, archived_at, created_at, updated_at;
-- name: GetProjectBySlug :one
SELECT id, slug, name, description, visibility, owner_id, archived_at, created_at, updated_at
FROM projects WHERE slug = $1;
-- name: GetProjectByID :one
SELECT id, slug, name, description, visibility, owner_id, archived_at, created_at, updated_at
FROM projects WHERE id = $1;
-- name: ListProjects :many
SELECT id, slug, name, description, visibility, owner_id, archived_at, created_at, updated_at
FROM projects
WHERE (sqlc.arg('include_archived')::bool OR archived_at IS NULL)
ORDER BY created_at DESC;
-- name: UpdateProject :one
UPDATE projects
SET name = $2,
description = $3,
visibility = $4,
updated_at = now()
WHERE id = $1
RETURNING id, slug, name, description, visibility, owner_id, archived_at, created_at, updated_at;
-- name: ArchiveProject :exec
UPDATE projects SET archived_at = now(), updated_at = now()
WHERE id = $1 AND archived_at IS NULL;
-- name: UnarchiveProject :exec
UPDATE projects SET archived_at = NULL, updated_at = now()
WHERE id = $1 AND archived_at IS NOT NULL;