59 lines
1.9 KiB
SQL
59 lines
1.9 KiB
SQL
-- name: CreateProject :one
|
|
INSERT INTO projects (id, name, start_at, end_at, customer_id, total_money, description, apply_at, apply_user_id, manager_id, members, status, created_user_id)
|
|
VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13)
|
|
RETURNING *;
|
|
|
|
-- name: UpdateProject :one
|
|
UPDATE projects
|
|
SET
|
|
name = COALESCE(sqlc.narg(name), name),
|
|
start_at = COALESCE(sqlc.narg(start_at), start_at),
|
|
end_at = COALESCE(sqlc.narg(end_at), end_at),
|
|
customer_id = COALESCE(sqlc.narg(customer_id), customer_id),
|
|
total_money = COALESCE(sqlc.narg(total_money), total_money),
|
|
description = COALESCE(sqlc.narg(description), description),
|
|
apply_at = COALESCE(sqlc.narg(apply_at), apply_at),
|
|
apply_user_id = COALESCE(sqlc.narg(apply_user_id), apply_user_id),
|
|
manager_id = COALESCE(sqlc.narg(manager_id), manager_id),
|
|
members = COALESCE(sqlc.narg(members), members),
|
|
status = COALESCE(sqlc.narg(status), status),
|
|
updated_user_id = COALESCE(sqlc.narg(updated_user_id), updated_user_id),
|
|
updated_at = NOW()
|
|
WHERE id = $1
|
|
RETURNING *;
|
|
|
|
-- name: GetProject :one
|
|
SELECT *
|
|
FROM projects
|
|
WHERE id = $1
|
|
LIMIT 1;
|
|
|
|
-- name: AllProjects :many
|
|
SELECT * FROM projects
|
|
WHERE status > -1
|
|
ORDER BY id DESC;
|
|
|
|
-- name: CountProjects :one
|
|
SELECT COUNT(1)
|
|
FROM projects
|
|
WHERE status = $1;
|
|
|
|
-- name: ListProjects :many
|
|
SELECT *
|
|
FROM projects
|
|
WHERE status = $1
|
|
ORDER BY id DESC
|
|
LIMIT $1 OFFSET $2;
|
|
|
|
-- name: StatisticsProjects :many
|
|
select name,
|
|
(select sum(amount)::numeric from incomes where project_id = projects.id) income,
|
|
(select sum(amount)::numeric from expenses where project_id = projects.id) expense
|
|
from projects;
|
|
|
|
-- name: StatisticsProjectItem :one
|
|
select name,
|
|
(select sum(amount)::numeric from incomes where project_id = projects.id) income,
|
|
(select sum(amount)::numeric from expenses where project_id = projects.id) expense
|
|
from projects
|
|
where projects.id = $1; |