33 lines
907 B
SQL
33 lines
907 B
SQL
-- name: CreatePlacement :one
|
|
INSERT INTO resource_placements (resource_id, storage_location_id, status, storage_key, synced_at)
|
|
VALUES ($1, $2, $3, $4, $5)
|
|
RETURNING *;
|
|
|
|
-- name: GetPlacement :one
|
|
SELECT * FROM resource_placements
|
|
WHERE resource_id = $1 AND storage_location_id = $2
|
|
LIMIT 1;
|
|
|
|
-- name: ListPlacementsByResource :many
|
|
SELECT * FROM resource_placements
|
|
WHERE resource_id = $1;
|
|
|
|
-- name: ListPlacementsByLocation :many
|
|
SELECT * FROM resource_placements
|
|
WHERE storage_location_id = $1;
|
|
|
|
-- name: UpdatePlacementStatus :exec
|
|
UPDATE resource_placements
|
|
SET status = $1, synced_at = CURRENT_TIMESTAMP
|
|
WHERE id = $2;
|
|
|
|
-- name: DeletePlacement :exec
|
|
DELETE FROM resource_placements
|
|
WHERE id = $1;
|
|
|
|
-- name: GetServerPlacementByResource :one
|
|
SELECT rp.* FROM resource_placements rp
|
|
JOIN storage_locations sl ON sl.id = rp.storage_location_id
|
|
WHERE rp.resource_id = $1 AND sl.role = 'server'
|
|
LIMIT 1;
|