module Spotify.Types.Tracks where import Spotify.Types.Internal.CustomJSON import Spotify.Types.Internal.EnumJSON import Spotify.Types.Misc import Spotify.Types.Simple import Data.Aeson (FromJSON) import Data.Text (Text) import GHC.Generics (Generic) data Track = Track { Track -> AlbumSimple album :: AlbumSimple , Track -> [ArtistSimple] artists :: [ArtistSimple] , Track -> Maybe [Text] availableMarkets :: Maybe [Text] , Track -> Int discNumber :: Int , Track -> Int durationMs :: Int , Track -> Bool explicit :: Bool , Track -> ExternalIDs externalIds :: ExternalIDs , Track -> ExternalURLs externalUrls :: ExternalURLs , Track -> Href href :: Href , Track -> TrackID id :: TrackID , Track -> Maybe Bool isPlayable :: Maybe Bool , Track -> Maybe TrackLink linkedFrom :: Maybe TrackLink , Track -> Maybe Restrictions restrictions :: Maybe Restrictions , Track -> Text name :: Text , Track -> Int popularity :: Int , Track -> Maybe Text previewUrl :: Maybe Text , Track -> Int trackNumber :: Int , Track -> URI uri :: URI } deriving (Track -> Track -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Track -> Track -> Bool $c/= :: Track -> Track -> Bool == :: Track -> Track -> Bool $c== :: Track -> Track -> Bool Eq, Eq Track Track -> Track -> Bool Track -> Track -> Ordering Track -> Track -> Track forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: Track -> Track -> Track $cmin :: Track -> Track -> Track max :: Track -> Track -> Track $cmax :: Track -> Track -> Track >= :: Track -> Track -> Bool $c>= :: Track -> Track -> Bool > :: Track -> Track -> Bool $c> :: Track -> Track -> Bool <= :: Track -> Track -> Bool $c<= :: Track -> Track -> Bool < :: Track -> Track -> Bool $c< :: Track -> Track -> Bool compare :: Track -> Track -> Ordering $ccompare :: Track -> Track -> Ordering Ord, Int -> Track -> ShowS [Track] -> ShowS Track -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Track] -> ShowS $cshowList :: [Track] -> ShowS show :: Track -> String $cshow :: Track -> String showsPrec :: Int -> Track -> ShowS $cshowsPrec :: Int -> Track -> ShowS Show, forall x. Rep Track x -> Track forall x. Track -> Rep Track x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep Track x -> Track $cfrom :: forall x. Track -> Rep Track x Generic) deriving (Value -> Parser [Track] Value -> Parser Track forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a parseJSONList :: Value -> Parser [Track] $cparseJSONList :: Value -> Parser [Track] parseJSON :: Value -> Parser Track $cparseJSON :: Value -> Parser Track FromJSON) via CustomJSON Track data AudioFeatures = AudioFeatures { AudioFeatures -> Float acousticness :: Float , AudioFeatures -> URL analysisUrl :: URL , AudioFeatures -> Float danceability :: Float , AudioFeatures -> Int durationMs :: Int , AudioFeatures -> Float energy :: Float , AudioFeatures -> TrackID id :: TrackID , AudioFeatures -> Float instrumentalness :: Float , AudioFeatures -> Key key :: Key , AudioFeatures -> Float liveness :: Float , AudioFeatures -> Float loudness :: Float , AudioFeatures -> Modality mode :: Modality , AudioFeatures -> Float speechiness :: Float , AudioFeatures -> Float tempo :: Float , AudioFeatures -> Int timeSignature :: Int , AudioFeatures -> Href trackHref :: Href , AudioFeatures -> URI uri :: URI , AudioFeatures -> Float valence :: Float } deriving (AudioFeatures -> AudioFeatures -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: AudioFeatures -> AudioFeatures -> Bool $c/= :: AudioFeatures -> AudioFeatures -> Bool == :: AudioFeatures -> AudioFeatures -> Bool $c== :: AudioFeatures -> AudioFeatures -> Bool Eq, Eq AudioFeatures AudioFeatures -> AudioFeatures -> Bool AudioFeatures -> AudioFeatures -> Ordering AudioFeatures -> AudioFeatures -> AudioFeatures forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: AudioFeatures -> AudioFeatures -> AudioFeatures $cmin :: AudioFeatures -> AudioFeatures -> AudioFeatures max :: AudioFeatures -> AudioFeatures -> AudioFeatures $cmax :: AudioFeatures -> AudioFeatures -> AudioFeatures >= :: AudioFeatures -> AudioFeatures -> Bool $c>= :: AudioFeatures -> AudioFeatures -> Bool > :: AudioFeatures -> AudioFeatures -> Bool $c> :: AudioFeatures -> AudioFeatures -> Bool <= :: AudioFeatures -> AudioFeatures -> Bool $c<= :: AudioFeatures -> AudioFeatures -> Bool < :: AudioFeatures -> AudioFeatures -> Bool $c< :: AudioFeatures -> AudioFeatures -> Bool compare :: AudioFeatures -> AudioFeatures -> Ordering $ccompare :: AudioFeatures -> AudioFeatures -> Ordering Ord, Int -> AudioFeatures -> ShowS [AudioFeatures] -> ShowS AudioFeatures -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [AudioFeatures] -> ShowS $cshowList :: [AudioFeatures] -> ShowS show :: AudioFeatures -> String $cshow :: AudioFeatures -> String showsPrec :: Int -> AudioFeatures -> ShowS $cshowsPrec :: Int -> AudioFeatures -> ShowS Show, forall x. Rep AudioFeatures x -> AudioFeatures forall x. AudioFeatures -> Rep AudioFeatures x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep AudioFeatures x -> AudioFeatures $cfrom :: forall x. AudioFeatures -> Rep AudioFeatures x Generic) deriving (Value -> Parser [AudioFeatures] Value -> Parser AudioFeatures forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a parseJSONList :: Value -> Parser [AudioFeatures] $cparseJSONList :: Value -> Parser [AudioFeatures] parseJSON :: Value -> Parser AudioFeatures $cparseJSON :: Value -> Parser AudioFeatures FromJSON) via CustomJSON AudioFeatures data Modality = Minor | Major deriving (Modality -> Modality -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Modality -> Modality -> Bool $c/= :: Modality -> Modality -> Bool == :: Modality -> Modality -> Bool $c== :: Modality -> Modality -> Bool Eq, Eq Modality Modality -> Modality -> Bool Modality -> Modality -> Ordering Modality -> Modality -> Modality forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: Modality -> Modality -> Modality $cmin :: Modality -> Modality -> Modality max :: Modality -> Modality -> Modality $cmax :: Modality -> Modality -> Modality >= :: Modality -> Modality -> Bool $c>= :: Modality -> Modality -> Bool > :: Modality -> Modality -> Bool $c> :: Modality -> Modality -> Bool <= :: Modality -> Modality -> Bool $c<= :: Modality -> Modality -> Bool < :: Modality -> Modality -> Bool $c< :: Modality -> Modality -> Bool compare :: Modality -> Modality -> Ordering $ccompare :: Modality -> Modality -> Ordering Ord, Int -> Modality -> ShowS [Modality] -> ShowS Modality -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Modality] -> ShowS $cshowList :: [Modality] -> ShowS show :: Modality -> String $cshow :: Modality -> String showsPrec :: Int -> Modality -> ShowS $cshowsPrec :: Int -> Modality -> ShowS Show, forall x. Rep Modality x -> Modality forall x. Modality -> Rep Modality x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep Modality x -> Modality $cfrom :: forall x. Modality -> Rep Modality x Generic, Int -> Modality Modality -> Int Modality -> [Modality] Modality -> Modality Modality -> Modality -> [Modality] Modality -> Modality -> Modality -> [Modality] forall a. (a -> a) -> (a -> a) -> (Int -> a) -> (a -> Int) -> (a -> [a]) -> (a -> a -> [a]) -> (a -> a -> [a]) -> (a -> a -> a -> [a]) -> Enum a enumFromThenTo :: Modality -> Modality -> Modality -> [Modality] $cenumFromThenTo :: Modality -> Modality -> Modality -> [Modality] enumFromTo :: Modality -> Modality -> [Modality] $cenumFromTo :: Modality -> Modality -> [Modality] enumFromThen :: Modality -> Modality -> [Modality] $cenumFromThen :: Modality -> Modality -> [Modality] enumFrom :: Modality -> [Modality] $cenumFrom :: Modality -> [Modality] fromEnum :: Modality -> Int $cfromEnum :: Modality -> Int toEnum :: Int -> Modality $ctoEnum :: Int -> Modality pred :: Modality -> Modality $cpred :: Modality -> Modality succ :: Modality -> Modality $csucc :: Modality -> Modality Enum) deriving (Value -> Parser [Modality] Value -> Parser Modality forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a parseJSONList :: Value -> Parser [Modality] $cparseJSONList :: Value -> Parser [Modality] parseJSON :: Value -> Parser Modality $cparseJSON :: Value -> Parser Modality FromJSON) via EnumJSON Modality data SavedTrack = SavedTrack { SavedTrack -> Text addedAt :: Text , SavedTrack -> Track track :: Track } deriving (SavedTrack -> SavedTrack -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: SavedTrack -> SavedTrack -> Bool $c/= :: SavedTrack -> SavedTrack -> Bool == :: SavedTrack -> SavedTrack -> Bool $c== :: SavedTrack -> SavedTrack -> Bool Eq, Eq SavedTrack SavedTrack -> SavedTrack -> Bool SavedTrack -> SavedTrack -> Ordering SavedTrack -> SavedTrack -> SavedTrack forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: SavedTrack -> SavedTrack -> SavedTrack $cmin :: SavedTrack -> SavedTrack -> SavedTrack max :: SavedTrack -> SavedTrack -> SavedTrack $cmax :: SavedTrack -> SavedTrack -> SavedTrack >= :: SavedTrack -> SavedTrack -> Bool $c>= :: SavedTrack -> SavedTrack -> Bool > :: SavedTrack -> SavedTrack -> Bool $c> :: SavedTrack -> SavedTrack -> Bool <= :: SavedTrack -> SavedTrack -> Bool $c<= :: SavedTrack -> SavedTrack -> Bool < :: SavedTrack -> SavedTrack -> Bool $c< :: SavedTrack -> SavedTrack -> Bool compare :: SavedTrack -> SavedTrack -> Ordering $ccompare :: SavedTrack -> SavedTrack -> Ordering Ord, Int -> SavedTrack -> ShowS [SavedTrack] -> ShowS SavedTrack -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [SavedTrack] -> ShowS $cshowList :: [SavedTrack] -> ShowS show :: SavedTrack -> String $cshow :: SavedTrack -> String showsPrec :: Int -> SavedTrack -> ShowS $cshowsPrec :: Int -> SavedTrack -> ShowS Show, forall x. Rep SavedTrack x -> SavedTrack forall x. SavedTrack -> Rep SavedTrack x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep SavedTrack x -> SavedTrack $cfrom :: forall x. SavedTrack -> Rep SavedTrack x Generic) deriving (Value -> Parser [SavedTrack] Value -> Parser SavedTrack forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a parseJSONList :: Value -> Parser [SavedTrack] $cparseJSONList :: Value -> Parser [SavedTrack] parseJSON :: Value -> Parser SavedTrack $cparseJSON :: Value -> Parser SavedTrack FromJSON) via CustomJSON SavedTrack