{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveDataTypeable #-}
module Text.HTML5.MetaData.Schema.GeoCircle 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.Intangible
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.StructuredValue
import {-# SOURCE #-} qualified Text.HTML5.MetaData.Schema.GeoShape

-- | A GeoCircle is a GeoShape representing a circular geographic area. As it is a GeoShape          it provides the simple textual property 'circle', but also allows the combination of postalCode alongside geoRadius.          The center of the circle can be indicated via the 'geoMidpoint' property, or more approximately using 'address', 'postalCode'.
--
--   [@id@] GeoCircle
--
--   [@label@] Geo Circle
--
--   [@comment@] A GeoCircle is a GeoShape representing a circular geographic area. As it is a GeoShape          it provides the simple textual property 'circle', but also allows the combination of postalCode alongside geoRadius.          The center of the circle can be indicated via the 'geoMidpoint' property, or more approximately using 'address', 'postalCode'.       
--
--   [@ancestors@] @'Thing','Intangible','StructuredValue','GeoShape'@
--
--   [@subtypes@]
--
--   [@supertypes@] @'GeoShape'@
--
--   [@url@] <http://schema.org/GeoCircle>
data GeoCircle = GeoCircle { geoMidpoint :: GeoMidpoint
                           , geoRadius :: GeoRadius
                           , address :: Address
                           , addressCountry :: AddressCountry
                           , box :: Box
                           , circle :: Circle
                           , elevation :: Elevation
                           , line :: Line
                           , polygon :: Polygon
                           , postalCode :: PostalCode
                           , 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 GeoCircle where
  _label         = const "Geo Circle"
  _comment_plain = const "A GeoCircle is a GeoShape representing a circular geographic area. As it is a GeoShape          it provides the simple textual property 'circle', but also allows the combination of postalCode alongside geoRadius.          The center of the circle can be indicated via the 'geoMidpoint' property, or more approximately using 'address', 'postalCode'."
  _comment       = const "A GeoCircle is a GeoShape representing a circular geographic area. As it is a GeoShape          it provides the simple textual property 'circle', but also allows the combination of postalCode alongside geoRadius.          The center of the circle can be indicated via the 'geoMidpoint' property, or more approximately using 'address', 'postalCode'.       "
  _url           = const "http://schema.org/GeoCircle"
  _ancestors     = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.Thing.Thing)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.Intangible.Intangible)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.StructuredValue.StructuredValue)
                         ,typeOf (undefined :: Text.HTML5.MetaData.Schema.GeoShape.GeoShape)]
  _subtypes      = const []
  _supertypes    = const [typeOf (undefined :: Text.HTML5.MetaData.Schema.GeoShape.GeoShape)]