-- name: CreateRequirementArtifact :one INSERT INTO requirement_artifacts (id, requirement_id, phase, version, content, note, source_message_id, created_by) VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING id, requirement_id, phase, version, content, note, source_message_id, created_by, created_at; -- name: ListRequirementArtifactsByRequirement :many SELECT id, requirement_id, phase, version, content, note, source_message_id, created_by, created_at FROM requirement_artifacts WHERE requirement_id = $1 AND ($2::text = '' OR phase = $2) ORDER BY phase ASC, version ASC; -- name: GetRequirementArtifactByVersion :one SELECT id, requirement_id, phase, version, content, note, source_message_id, created_by, created_at FROM requirement_artifacts WHERE requirement_id = $1 AND phase = $2 AND version = $3; -- name: GetMaxRequirementArtifactVersion :one SELECT COALESCE(MAX(version), 0)::int FROM requirement_artifacts WHERE requirement_id = $1 AND phase = $2;