spotify-0.1.0.0: types/Spotify/Types/Simple.hs
module Spotify.Types.Simple where
import Spotify.Types.Internal.CustomJSON
import Spotify.Types.Misc
import Data.Aeson (FromJSON)
import Data.Text (Text)
import GHC.Generics (Generic)
data UserSimple = UserSimple
{ displayName :: Maybe Text
, externalUrls :: ExternalURLs
, followers :: Maybe Followers
, href :: Href
, id :: UserID
, images :: Maybe [Image]
, uri :: URI
}
deriving (Eq, Ord, Show, Generic)
deriving (FromJSON) via CustomJSON UserSimple
data TrackSimple = TrackSimple
{ artists :: [ArtistSimple]
, availableMarkets :: Maybe [Text]
, discNumber :: Int
, durationMs :: Int
, explicit :: Bool
, externalUrls :: ExternalURLs
, href :: Href
, id :: TrackID
, isPlayable :: Maybe Bool
, linkedFrom :: Maybe TrackLink
, name :: Text
, previewUrl :: Maybe Text
, trackNumber :: Int
, uri :: URI
}
deriving (Eq, Ord, Show, Generic)
deriving (FromJSON) via CustomJSON TrackSimple
data AlbumSimple = AlbumSimple
{ albumType :: AlbumType
, artists :: [ArtistSimple]
, availableMarkets :: Maybe [Text]
, externalUrls :: ExternalURLs
, albumGroup :: Maybe AlbumGroup
, href :: Href
, id :: AlbumID
, images :: [Image]
, name :: Text
, releaseDate :: Text
, releaseDatePrecision :: DatePrecision
, restrictions :: Maybe Restrictions
, uri :: URI
}
deriving (Eq, Ord, Show, Generic)
deriving (FromJSON) via CustomJSON AlbumSimple
data ArtistSimple = ArtistSimple
{ externalUrls :: ExternalURLs
, href :: Href
, id :: ArtistID
, name :: Text
, uri :: URI
}
deriving (Eq, Ord, Show, Generic)
deriving (FromJSON) via CustomJSON ArtistSimple
data PlaylistSimple = PlaylistSimple
{ collaborative :: Bool
, externalUrls :: ExternalURLs
, href :: Href
, id :: PlaylistID
, images :: [Image]
, name :: Text
, owner :: UserSimple
, public :: Maybe Bool
, snapshotId :: SnapshotID
, tracks :: Tracks
, uri :: URI
}
deriving (Eq, Ord, Show, Generic)
deriving (FromJSON) via CustomJSON PlaylistSimple