mirror of
https://github.com/therootcompany/golib.git
synced 2026-11-04 06:55:00 +00:00
34 lines
922 B
SQL
34 lines
922 B
SQL
-- name: FolderCreate :one
|
|
INSERT INTO folders (id, name)
|
|
VALUES (sqlc.arg('id'), sqlc.arg('name'))
|
|
RETURNING id, name, created_at;
|
|
|
|
-- name: FolderList :many
|
|
SELECT id, name, created_at
|
|
FROM folders
|
|
ORDER BY name ASC;
|
|
|
|
-- name: FolderDelete :exec
|
|
DELETE FROM folders WHERE id = sqlc.arg('id');
|
|
|
|
-- name: FolderAddTodo :exec
|
|
INSERT INTO folders_todos (folder_id, todo_id)
|
|
VALUES (sqlc.arg('folder_id'), sqlc.arg('todo_id'));
|
|
|
|
-- name: FolderRemoveTodo :exec
|
|
DELETE FROM folders_todos
|
|
WHERE folder_id = sqlc.arg('folder_id')
|
|
AND todo_id = sqlc.arg('todo_id');
|
|
|
|
-- name: FolderGetByName :one
|
|
SELECT id, name, created_at
|
|
FROM folders
|
|
WHERE name = sqlc.arg('name');
|
|
|
|
-- name: FolderTodos :many
|
|
SELECT t.id, t.title, t.status, t.completed_at, t.priority, t.created_at, t.updated_at
|
|
FROM todos t
|
|
JOIN folders_todos ft ON ft.todo_id = t.id
|
|
WHERE ft.folder_id = sqlc.arg('folder_id')
|
|
ORDER BY t.priority DESC, t.created_at ASC;
|