-- name: InsertSandbox :one INSERT INTO sandboxes (id, team_id, host_id, template, status, vcpus, memory_mb, timeout_sec) VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING *; -- name: GetSandbox :one SELECT * FROM sandboxes WHERE id = $1; -- name: GetSandboxByTeam :one SELECT * FROM sandboxes WHERE id = $1 AND team_id = $2; -- name: ListSandboxes :many SELECT * FROM sandboxes ORDER BY created_at DESC; -- name: ListSandboxesByTeam :many SELECT * FROM sandboxes WHERE team_id = $1 ORDER BY created_at DESC; -- name: ListSandboxesByHostAndStatus :many SELECT * FROM sandboxes WHERE host_id = $1 AND status = ANY($2::text[]) ORDER BY created_at DESC; -- name: UpdateSandboxRunning :one UPDATE sandboxes SET status = 'running', host_ip = $2, guest_ip = $3, started_at = $4, last_active_at = $4, last_updated = NOW() WHERE id = $1 RETURNING *; -- name: UpdateSandboxStatus :one UPDATE sandboxes SET status = $2, last_updated = NOW() WHERE id = $1 RETURNING *; -- name: UpdateLastActive :exec UPDATE sandboxes SET last_active_at = $2, last_updated = NOW() WHERE id = $1; -- name: BulkUpdateStatusByIDs :exec UPDATE sandboxes SET status = $2, last_updated = NOW() WHERE id = ANY($1::text[]);