house/backend/query.sql
2025-06-14 23:47:44 -04:00

117 lines
2.3 KiB
SQL

-- name: GetUser :one
SELECT id, username FROM users WHERE id = ? LIMIT 1;
-- name: GetUsers :many
SELECT * FROM users ORDER BY name;
-- name: GetUserPassword :one
SELECT id, password FROM users WHERE username = ? LIMIT 1;
-- name: CreateUser :one
INSERT INTO users (
id,
username
) VALUES (
?, ?
) RETURNING id, username;
-- name: UpdateUser :one
UPDATE users
set username = ?
WHERE id = ?
RETURNING id, username;
-- name: UpdateUserPassword :one
UPDATE users
set password = ?
WHERE id = ?
RETURNING id, username;
-- name: GetSession :one
SELECT * FROM sessions WHERE key = ? LIMIT 1;
-- name: CreateSession :one
INSERT INTO sessions (
key,
user_id,
created_at
) VALUES (?, ?, ?)
RETURNING *;
-- name: DeleteSession :exec
DELETE FROM sessions WHERE key = ? LIMIT 1 RETURNING *;
-- name: TaskByID :one
SELECT * FROM tasks WHERE id = ? LIMIT 1;
-- name: AllTasks :many
SELECT * FROM tasks;
-- name: TasksForUser :many
SELECT * FROM tasks WHERE assigned_to = ?;
-- name: UserTasks :many
SELECT * FROM tasks WHERE created_by = ?;
-- name: CategoriesOf :many
SELECT c.* FROM categories c
JOIN task_categories tc ON tc.category_id = c.id
WHERE tc.task_id IN (sqlc.slice('ids'));
-- name: TaskCategoriesOf :many
SELECT tc.* FROM task_categories tc
JOIN tasks t ON tc.task_id = t.id
WHERE tc.task_id IN (sqlc.slice('ids'));
-- name: AddTaskCategory :one
INSERT INTO task_categories (task_id, category_id)
VALUES (?, ?)
RETURNING *;
-- name: CreateTask :one
INSERT INTO tasks (
name,
description,
created_by,
assigned_to,
created_at,
deadline,
completed
) VALUES (?, ?, ?, ?, ?, ?, FALSE)
RETURNING *;
-- name: CompleteTask :one
UPDATE tasks SET completed = TRUE WHERE id = ? RETURNING *;
-- name: UpdateTask :one
UPDATE tasks SET
name = ?,
description = ?
WHERE id = ?
RETURNING *;
-- name: DeleteTask :exec
DELETE FROM tasks WHERE id = ? LIMIT 1 RETURNING *;
-- name: CreateCategory :one
INSERT INTO categories (
name, description, created_by, created_at
) VALUES (?, ?, ?, ?)
RETURNING *;
-- name: ListCategories :many
SELECT * FROM categories;
-- name: UpdateCategory :one
UPDATE categories SET
name = ?,
description = ?
WHERE id = ?
RETURNING *;
-- name: DeleteCategory :one
DELETE FROM categories WHERE id = ? LIMIT 1 RETURNING *;
-- name: UserCategories :many
SELECT * FROM categories WHERE created_by = ?;