-- name: LikeTrack :execrows INSERT INTO general_likes (user_id, track_id) VALUES ($1, $2) ON CONFLICT (user_id, track_id) DO NOTHING; -- name: UnlikeTrack :exec DELETE FROM general_likes WHERE user_id = $1 AND track_id = $2; -- name: ListLikedTrackRows :many SELECT t.* FROM tracks t JOIN general_likes l ON l.track_id = t.id WHERE l.user_id = $1 ORDER BY l.liked_at DESC LIMIT $2 OFFSET $3; -- name: CountLikedTracks :one SELECT count(*) FROM general_likes WHERE user_id = $1; -- name: ListLikedTrackIDs :many SELECT track_id FROM general_likes WHERE user_id = $1 ORDER BY liked_at DESC; -- name: LikeAlbum :exec INSERT INTO general_likes_albums (user_id, album_id) VALUES ($1, $2) ON CONFLICT (user_id, album_id) DO NOTHING; -- name: UnlikeAlbum :exec DELETE FROM general_likes_albums WHERE user_id = $1 AND album_id = $2; -- name: ListLikedAlbumRows :many SELECT a.* FROM albums a JOIN general_likes_albums l ON l.album_id = a.id WHERE l.user_id = $1 ORDER BY l.liked_at DESC LIMIT $2 OFFSET $3; -- name: CountLikedAlbums :one SELECT count(*) FROM general_likes_albums WHERE user_id = $1; -- name: ListLikedAlbumIDs :many SELECT album_id FROM general_likes_albums WHERE user_id = $1 ORDER BY liked_at DESC; -- name: LikeArtist :exec INSERT INTO general_likes_artists (user_id, artist_id) VALUES ($1, $2) ON CONFLICT (user_id, artist_id) DO NOTHING; -- name: UnlikeArtist :exec DELETE FROM general_likes_artists WHERE user_id = $1 AND artist_id = $2; -- name: ListLikedArtistRows :many SELECT a.* FROM artists a JOIN general_likes_artists l ON l.artist_id = a.id WHERE l.user_id = $1 ORDER BY l.liked_at DESC LIMIT $2 OFFSET $3; -- name: CountLikedArtists :one SELECT count(*) FROM general_likes_artists WHERE user_id = $1; -- name: ListLikedArtistIDs :many SELECT artist_id FROM general_likes_artists WHERE user_id = $1 ORDER BY liked_at DESC;