feat(db): add session-vector capture queries; LikeTrack returns row count
ListRecentSessionTracks + UpdatePlayEventVector for the vector capture path inside RecordPlayStarted. LikeTrack switches to :execrows so the contextual-likes capture can detect insert vs already-exists. Existing callers updated to ignore the count for now; later tasks consume it.
This commit is contained in:
@@ -48,3 +48,21 @@ SELECT * FROM play_events WHERE id = $1;
|
||||
INSERT INTO skip_events (user_id, track_id, session_id, skipped_at, position_ms)
|
||||
VALUES ($1, $2, $3, $4, $5)
|
||||
RETURNING *;
|
||||
|
||||
-- name: ListRecentSessionTracks :many
|
||||
-- Returns up to $3 tracks in session $1 whose play_event started before
|
||||
-- $2, ordered newest-first. Used by playevents.RecordPlayStarted to
|
||||
-- build the session_vector for the just-inserted play_event.
|
||||
SELECT t.* FROM tracks t
|
||||
JOIN play_events pe ON pe.track_id = t.id
|
||||
WHERE pe.session_id = $1
|
||||
AND pe.started_at < $2
|
||||
ORDER BY pe.started_at DESC
|
||||
LIMIT $3;
|
||||
|
||||
-- name: UpdatePlayEventVector :exec
|
||||
-- Used right after InsertPlayEvent to populate session_vector_at_play
|
||||
-- once the vector has been computed.
|
||||
UPDATE play_events
|
||||
SET session_vector_at_play = $2
|
||||
WHERE id = $1;
|
||||
|
||||
Reference in New Issue
Block a user