-- name: ClearSongs :exec DELETE FROM song; -- name: ClearSongsBySoundtrackId :exec DELETE FROM song WHERE soundtrack_id = $1; -- name: AddSong :exec INSERT INTO song(soundtrack_id, song_name, path, file_name, hash, uuid, soundtrack_uuid) VALUES ($1, $2, $3, $4, $5, $6, $7); -- name: CheckSong :one SELECT COUNT(*) FROM song WHERE soundtrack_id = $1 AND path = $2; -- name: CheckSongWithHash :one SELECT COUNT(*) FROM song WHERE hash = $1; -- name: GetSongWithHash :one SELECT * FROM song WHERE hash = $1; -- name: UpdateSong :exec UPDATE song SET song_name=$1, file_name=$2, path=$3 where hash=$4; -- name: AddHashToSong :exec UPDATE song SET hash=$1 where soundtrack_id = $2 AND path = $3; -- name: FindSongsFromSoundtrack :many SELECT * FROM song WHERE soundtrack_id = $1; -- name: AddSongPlayed :exec UPDATE song SET times_played = times_played + 1 WHERE soundtrack_id = $1 AND song_name = $2; -- name: FetchAllSongs :many SELECT * FROM song; -- name: GetSongByUUID :one SELECT * FROM song WHERE uuid = $1; -- name: RemoveBrokenSong :exec DELETE FROM song WHERE soundtrack_id = $1 AND path = $2; -- name: RemoveBrokenSongs :exec DELETE FROM song WHERE uuid = ANY(sqlc.arg(uuids)::uuid[]); -- name: GetSongsBySoundtrackUUID :many SELECT * FROM song WHERE soundtrack_uuid = $1 ORDER BY song_name; -- name: GetSongUUIDsBySoundtrackId :many SELECT uuid, soundtrack_uuid FROM song WHERE soundtrack_id = $1; -- name: UpdateSongByUUID :exec UPDATE song SET song_name=sqlc.arg(song_name), file_name=sqlc.arg(file_name), path=sqlc.arg(path), hash=sqlc.arg(hash) WHERE uuid=sqlc.arg(uuid); -- name: GetRandomActiveSong :one SELECT sqlc.embed(song), soundtrack.path AS soundtrack_path FROM song JOIN soundtrack ON soundtrack.id = song.soundtrack_id WHERE soundtrack.deleted IS NULL ORDER BY random() LIMIT 1; -- name: AddSongPlayedByUUID :exec UPDATE song SET times_played = times_played + 1 WHERE uuid = $1; -- name: GetActiveSongByUUID :one SELECT sqlc.embed(song), soundtrack.soundtrack_name, soundtrack.path AS soundtrack_path FROM song JOIN soundtrack ON soundtrack.id = song.soundtrack_id WHERE song.uuid = $1 AND soundtrack.deleted IS NULL;