{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveDataTypeable #-}
module Text.HTML5.MetaData.Schema.Organization 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.Airline
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.Corporation
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.EducationalOrganization
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.GovernmentOrganization
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.LocalBusiness
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.NGO
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.PerformingGroup
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.SportsOrganization

-- | An organization such as a school, NGO, corporation, club, etc.
--
--   [@id@] Organization
--
--   [@label@] Organization
--
--   [@comment@] An organization such as a school, NGO, corporation, club, etc.
--
--   [@ancestors@] @'Thing'@
--
--   [@subtypes@] @'Airline','Corporation','EducationalOrganization','GovernmentOrganization','LocalBusiness','NGO','PerformingGroup','SportsOrganization'@
--
--   [@supertypes@] @'Thing'@
--
--   [@url@] <http://schema.org/Organization>
data Organization = Organization { address :: Address
                                 , aggregateRating :: AggregateRating
                                 , alumni :: Alumni
                                 , areaServed :: AreaServed
                                 , award :: Award
                                 , brand :: Brand
                                 , contactPoint :: ContactPoint
                                 , department :: Department
                                 , dissolutionDate :: DissolutionDate
                                 , duns :: Duns
                                 , email :: Email
                                 , employee :: Employee
                                 , event :: Event
                                 , faxNumber :: FaxNumber
                                 , founder :: Founder
                                 , foundingDate :: FoundingDate
                                 , foundingLocation :: FoundingLocation
                                 , globalLocationNumber :: GlobalLocationNumber
                                 , hasOfferCatalog :: HasOfferCatalog
                                 , hasPOS :: HasPOS
                                 , isicV4 :: IsicV4
                                 , legalName :: LegalName
                                 , location :: Location
                                 , logo :: Logo
                                 , makesOffer :: MakesOffer
                                 , member :: Member
                                 , memberOf :: MemberOf
                                 , naics :: Naics
                                 , numberOfEmployees :: NumberOfEmployees
                                 , owns :: Owns
                                 , parentOrganization :: ParentOrganization
                                 , review :: Review
                                 , seeks :: Seeks
                                 , subOrganization :: SubOrganization
                                 , taxID :: TaxID
                                 , telephone :: Telephone
                                 , vatID :: VatID
                                 , 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 Organization where
  _label         = const "Organization"
  _comment_plain = const "An organization such as a school, NGO, corporation, club, etc."
  _comment       = const "An organization such as a school, NGO, corporation, club, etc."
  _url           = const "http://schema.org/Organization"
  _ancestors     = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.Thing.Thing)]
  _subtypes      = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.Airline.Airline)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.Corporation.Corporation)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.EducationalOrganization.EducationalOrganization)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.GovernmentOrganization.GovernmentOrganization)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.LocalBusiness.LocalBusiness)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.NGO.NGO)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.PerformingGroup.PerformingGroup)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.SportsOrganization.SportsOrganization)]
  _supertypes    = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.Thing.Thing)]