Files
2026-06-22 08:55:57 +08:00

40 lines
1.3 KiB
SQL

-- name: InsertTurn :one
INSERT INTO acp_turns (
session_id, turn_index, prompt_request_id, status
) VALUES ($1, $2, $3, $4)
RETURNING id, session_id, turn_index, prompt_request_id, status,
stop_reason, update_count, started_at, completed_at;
-- name: MarkTurnCompleted :exec
UPDATE acp_turns
SET status = 'completed', stop_reason = $3, update_count = $4, completed_at = now()
WHERE session_id = $1 AND turn_index = $2 AND status = 'in_progress';
-- name: MarkTurnAborted :exec
UPDATE acp_turns
SET status = 'aborted', completed_at = now()
WHERE session_id = $1 AND turn_index = $2 AND status = 'in_progress';
-- name: IncrementTurnUpdateCount :exec
UPDATE acp_turns
SET update_count = update_count + 1
WHERE session_id = $1 AND turn_index = $2 AND status = 'in_progress';
-- name: GetLatestTurnBySession :one
SELECT id, session_id, turn_index, prompt_request_id, status,
stop_reason, update_count, started_at, completed_at
FROM acp_turns
WHERE session_id = $1
ORDER BY turn_index DESC
LIMIT 1;
-- name: ListTurnsBySession :many
SELECT id, session_id, turn_index, prompt_request_id, status,
stop_reason, update_count, started_at, completed_at
FROM acp_turns
WHERE session_id = $1
ORDER BY turn_index ASC;
-- name: PurgeTurnsBefore :execrows
DELETE FROM acp_turns WHERE started_at < $1;