package capabilities
import "github.com/navidrome/navidrome/plugins/types"
type SonicSimilarity interface {
GetSonicSimilarTracks(GetSonicSimilarTracksRequest) (SonicSimilarityResponse, error)
FindSonicPath(FindSonicPathRequest) (SonicSimilarityResponse, error)
}
type GetSonicSimilarTracksRequest struct {
Song types.SongRef `json:"song"`
Count int32 `json:"count"`
}
type FindSonicPathRequest struct {
StartSong types.SongRef `json:"startSong"`
EndSong types.SongRef `json:"endSong"`
Count int32 `json:"count"`
}
type SonicSimilarityResponse struct {
Matches []SonicMatch `json:"matches"`
}
type SonicMatch struct {
Song types.SongRef `json:"song"`
Similarity float64 `json:"similarity"`
}