{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveDataTypeable #-}
module Text.HTML5.MetaData.Schema.MusicPlaylist where

--  Valid: 2016-03-21 (Schema.rdfs.org)

import Text.HTML5.MetaData.Class
import Text.HTML5.MetaData.Type
import Data.Text
import Data.Typeable
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.Thing
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.CreativeWork
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.MusicAlbum
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.MusicRelease

-- | A collection of music tracks in playlist form.
--
--   [@id@] MusicPlaylist
--
--   [@label@] Music Playlist
--
--   [@comment@] A collection of music tracks in playlist form.
--
--   [@ancestors@] @'Thing','CreativeWork'@
--
--   [@subtypes@] @'MusicAlbum','MusicRelease'@
--
--   [@supertypes@] @'CreativeWork'@
--
--   [@url@] <http://schema.org/MusicPlaylist>
data MusicPlaylist = MusicPlaylist { numTracks :: NumTracks
                                   , track :: Track
                                   , about :: About
                                   , accessibilityAPI :: AccessibilityAPI
                                   , accessibilityControl :: AccessibilityControl
                                   , accessibilityFeature :: AccessibilityFeature
                                   , accessibilityHazard :: AccessibilityHazard
                                   , accountablePerson :: AccountablePerson
                                   , aggregateRating :: AggregateRating
                                   , alternativeHeadline :: AlternativeHeadline
                                   , associatedMedia :: AssociatedMedia
                                   , audience :: Audience
                                   , audio :: Audio
                                   , author :: Author
                                   , award :: Award
                                   , character :: Character
                                   , citation :: Citation
                                   , comment :: Comment
                                   , commentCount :: CommentCount
                                   , contentLocation :: ContentLocation
                                   , contentRating :: ContentRating
                                   , contributor :: Contributor
                                   , copyrightHolder :: CopyrightHolder
                                   , copyrightYear :: CopyrightYear
                                   , creator :: Creator
                                   , dateCreated :: DateCreated
                                   , dateModified :: DateModified
                                   , datePublished :: DatePublished
                                   , discussionUrl :: DiscussionUrl
                                   , editor :: Editor
                                   , educationalAlignment :: EducationalAlignment
                                   , educationalUse :: EducationalUse
                                   , encoding :: Encoding
                                   , exampleOfWork :: ExampleOfWork
                                   , fileFormat :: FileFormat
                                   , genre :: Genre
                                   , hasPart :: HasPart
                                   , headline :: Headline
                                   , inLanguage :: InLanguage
                                   , interactionStatistic :: InteractionStatistic
                                   , interactivityType :: InteractivityType
                                   , isBasedOnUrl :: IsBasedOnUrl
                                   , isFamilyFriendly :: IsFamilyFriendly
                                   , isPartOf :: IsPartOf
                                   , keywords :: Keywords
                                   , learningResourceType :: LearningResourceType
                                   , license :: License
                                   , locationCreated :: LocationCreated
                                   , mainEntity :: MainEntity
                                   , mentions :: Mentions
                                   , offers :: Offers
                                   , position :: Position
                                   , producer :: Producer
                                   , provider :: Provider
                                   , publication :: Publication
                                   , publisher :: Publisher
                                   , publishingPrinciples :: PublishingPrinciples
                                   , recordedAt :: RecordedAt
                                   , releasedEvent :: ReleasedEvent
                                   , review :: Review
                                   , schemaVersion :: SchemaVersion
                                   , sourceOrganization :: SourceOrganization
                                   , text :: Text
                                   , thumbnailUrl :: ThumbnailUrl
                                   , timeRequired :: TimeRequired
                                   , translator :: Translator
                                   , typicalAgeRange :: TypicalAgeRange
                                   , version :: Version
                                   , video :: Video
                                   , workExample :: WorkExample
                                   , additionalType :: AdditionalType
                                   , alternateName :: AlternateName
                                   , description :: Description
                                   , image :: Image
                                   , mainEntityOfPage :: MainEntityOfPage
                                   , name :: Name
                                   , potentialAction :: PotentialAction
                                   , sameAs :: SameAs
                                   , url :: Url
                                   }
                     deriving (Show, Read, Eq, Typeable)

instance MetaData MusicPlaylist where
  _label         = const "Music Playlist"
  _comment_plain = const "A collection of music tracks in playlist form."
  _comment       = const "A collection of music tracks in playlist form."
  _url           = const "http://schema.org/MusicPlaylist"
  _ancestors     = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.Thing.Thing)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.CreativeWork.CreativeWork)]
  _subtypes      = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.MusicAlbum.MusicAlbum)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.MusicRelease.MusicRelease)]
  _supertypes    = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.CreativeWork.CreativeWork)]