// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 // source: contextual_likes.sql package dbq import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const insertContextualLike = `-- name: InsertContextualLike :exec INSERT INTO contextual_likes (user_id, track_id, session_vector, session_id) VALUES ($1, $2, $3, $4) ` type InsertContextualLikeParams struct { UserID pgtype.UUID TrackID pgtype.UUID SessionVector []byte SessionID pgtype.UUID } func (q *Queries) InsertContextualLike(ctx context.Context, arg InsertContextualLikeParams) error { _, err := q.db.Exec(ctx, insertContextualLike, arg.UserID, arg.TrackID, arg.SessionVector, arg.SessionID, ) return err } const listActiveContextualLikesForUser = `-- name: ListActiveContextualLikesForUser :many SELECT track_id, session_vector FROM contextual_likes WHERE user_id = $1 AND deleted_at IS NULL AND session_vector IS NOT NULL ` type ListActiveContextualLikesForUserRow struct { TrackID pgtype.UUID SessionVector []byte } // Returns all the user's active (non-soft-deleted) contextual_likes with // non-null vectors. Cardinality is bounded by the user's actual like-while- // playing history — typically tens to low hundreds. Used by the engine to // compute contextual_match_score for the candidate pool. func (q *Queries) ListActiveContextualLikesForUser(ctx context.Context, userID pgtype.UUID) ([]ListActiveContextualLikesForUserRow, error) { rows, err := q.db.Query(ctx, listActiveContextualLikesForUser, userID) if err != nil { return nil, err } defer rows.Close() var items []ListActiveContextualLikesForUserRow for rows.Next() { var i ListActiveContextualLikesForUserRow if err := rows.Scan(&i.TrackID, &i.SessionVector); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const softDeleteContextualLikesForUserTrack = `-- name: SoftDeleteContextualLikesForUserTrack :exec UPDATE contextual_likes SET deleted_at = now() WHERE user_id = $1 AND track_id = $2 AND deleted_at IS NULL ` type SoftDeleteContextualLikesForUserTrackParams struct { UserID pgtype.UUID TrackID pgtype.UUID } // Marks all currently-active rows for (user, track) as deleted. Idempotent — // already-deleted rows aren't re-touched. func (q *Queries) SoftDeleteContextualLikesForUserTrack(ctx context.Context, arg SoftDeleteContextualLikesForUserTrackParams) error { _, err := q.db.Exec(ctx, softDeleteContextualLikesForUserTrack, arg.UserID, arg.TrackID) return err }