93 lines
1.6 KiB
SQL
93 lines
1.6 KiB
SQL
-- name: GetItem :one
|
|
SELECT
|
|
id,
|
|
name,
|
|
added,
|
|
description,
|
|
price,
|
|
quantity,
|
|
user_id
|
|
FROM item
|
|
WHERE
|
|
id = @id
|
|
AND
|
|
user_id = @user_id
|
|
LIMIT 1;
|
|
|
|
-- name: GetItems :many
|
|
SELECT
|
|
id,
|
|
name,
|
|
added,
|
|
description,
|
|
price,
|
|
quantity,
|
|
user_id
|
|
FROM item
|
|
WHERE
|
|
user_id = @user_id
|
|
AND
|
|
(
|
|
(name LIKE sqlc.narg('name') OR sqlc.narg('name') IS NULL)
|
|
AND
|
|
(added >= sqlc.narg('start') OR sqlc.narg('start') IS NULL)
|
|
AND
|
|
(added <= sqlc.narg('end') OR sqlc.narg('end') IS NULL)
|
|
)
|
|
LIMIT
|
|
@limit
|
|
OFFSET
|
|
@offset;
|
|
|
|
-- name: GetItemsCount :one
|
|
SELECT COUNT(id)
|
|
FROM item
|
|
WHERE
|
|
user_id = @user_id
|
|
AND
|
|
(
|
|
(name LIKE sqlc.narg('name') OR sqlc.narg('name') IS NULL)
|
|
AND
|
|
(added >= sqlc.narg('start') OR sqlc.narg('start') IS NULL)
|
|
AND
|
|
(added <= sqlc.narg('end') OR sqlc.narg('end') IS NULL)
|
|
)
|
|
LIMIT 1;
|
|
|
|
-- name: InsertItem :one
|
|
INSERT INTO item (
|
|
name,
|
|
added,
|
|
description,
|
|
price,
|
|
quantity,
|
|
user_id
|
|
) VALUES (
|
|
@name,
|
|
@added,
|
|
@description,
|
|
@price,
|
|
@quantity,
|
|
@user_id
|
|
)
|
|
RETURNING id;
|
|
|
|
-- name: UpdateItem :exec
|
|
UPDATE item
|
|
SET
|
|
name = COALESCE(sqlc.narg('name'), name),
|
|
description = COALESCE(sqlc.narg('description'), description),
|
|
price = COALESCE(sqlc.narg('price'), price),
|
|
quantity = COALESCE(sqlc.narg('quantity'), quantity)
|
|
WHERE
|
|
id = @id
|
|
AND
|
|
user_id = @user_id;
|
|
|
|
-- name: DeleteItem :exec
|
|
DELETE FROM item
|
|
WHERE
|
|
id = @id
|
|
AND
|
|
user_id = @user_id;
|