{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE DeriveDataTypeable #-}
module Discord.Internal.Types.ScheduledEvents where
import Data.Aeson ( (.:)
, (.:!)
, (.:?)
, (.=)
, FromJSON(parseJSON)
, ToJSON(toJSON)
, Value(Null, Number, String)
, object
, withObject
, withText
)
import Data.Aeson.Types ( Parser )
import qualified Data.ByteString as B
import Data.Data ( Data )
import Data.Default ( Default(def) )
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import Data.Time ( UTCTime )
import Discord.Internal.Types.Prelude ( ChannelId
, GuildId
, InternalDiscordEnum
( discordTypeParseJSON
, discordTypeStartValue
, fromDiscordType
)
, ScheduledEventEntityId
, ScheduledEventId
, UserId
, (.==)
, (.=?)
, objectFromMaybes
)
import Discord.Internal.Types.User ( GuildMember
, User
)
data ScheduledEvent
= ScheduledEventStage
{ ScheduledEvent -> ScheduledEventId
scheduledEventStageId :: ScheduledEventId
, ScheduledEvent -> GuildId
scheduledEventStageGuildId :: GuildId
, ScheduledEvent -> ChannelId
scheduledEventStageChannelId :: ChannelId
, ScheduledEvent -> Maybe UserId
scheduledEventStageCreatorId :: Maybe UserId
, ScheduledEvent -> Text
scheduledEventStageName :: T.Text
, ScheduledEvent -> Maybe Text
scheduledEventStageDescription :: Maybe T.Text
, ScheduledEvent -> UTCTime
scheduledEventStageStartTime :: UTCTime
, ScheduledEvent -> Maybe UTCTime
scheduledEventStageEndTime :: Maybe UTCTime
, ScheduledEvent -> ScheduledEventPrivacyLevel
scheduledEventStagePrivacyLevel :: ScheduledEventPrivacyLevel
, ScheduledEvent -> ScheduledEventStatus
scheduledEventStageStatus :: ScheduledEventStatus
, ScheduledEvent -> Maybe ScheduledEventEntityId
scheduledEventStageEntityId :: Maybe ScheduledEventEntityId
, ScheduledEvent -> Maybe User
scheduledEventStageCreator :: Maybe User
, ScheduledEvent -> Maybe Integer
scheduledEventStageUserCount :: Maybe Integer
, ScheduledEvent -> Maybe Text
scheduledEventStageImage :: Maybe ScheduledEventImageHash
}
| ScheduledEventVoice
{ ScheduledEvent -> ScheduledEventId
scheduledEventVoiceId :: ScheduledEventId
, ScheduledEvent -> GuildId
scheduledEventVoiceGuildId :: GuildId
, ScheduledEvent -> ChannelId
scheduledEventVoiceChannelId :: ChannelId
, ScheduledEvent -> Maybe UserId
scheduledEventVoiceCreatorId :: Maybe UserId
, ScheduledEvent -> Text
scheduledEventVoiceName :: T.Text
, ScheduledEvent -> Maybe Text
scheduledEventVoiceDescription :: Maybe T.Text
, ScheduledEvent -> UTCTime
scheduledEventVoiceStartTime :: UTCTime
, ScheduledEvent -> Maybe UTCTime
scheduledEventVoiceEndTime :: Maybe UTCTime
, ScheduledEvent -> ScheduledEventPrivacyLevel
scheduledEventVoicePrivacyLevel :: ScheduledEventPrivacyLevel
, ScheduledEvent -> ScheduledEventStatus
scheduledEventVoiceStatus :: ScheduledEventStatus
, ScheduledEvent -> Maybe ScheduledEventEntityId
scheduledEventVoiceEntityId :: Maybe ScheduledEventEntityId
, ScheduledEvent -> Maybe User
scheduledEventVoiceCreator :: Maybe User
, ScheduledEvent -> Maybe Integer
scheduledEventVoiceUserCount :: Maybe Integer
, ScheduledEvent -> Maybe Text
scheduledEventVoiceImage :: Maybe ScheduledEventImageHash
}
| ScheduledEventExternal
{ ScheduledEvent -> ScheduledEventId
scheduledEventExternalId :: ScheduledEventId
, ScheduledEvent -> GuildId
scheduledEventExternalGuildId :: GuildId
, ScheduledEvent -> Text
scheduledEventExternalLocation :: T.Text
, ScheduledEvent -> Maybe UserId
scheduledEventExternalCreatorId :: Maybe UserId
, ScheduledEvent -> Text
scheduledEventExternalName :: T.Text
, ScheduledEvent -> Maybe Text
scheduledEventExternalDescription :: Maybe T.Text
, ScheduledEvent -> UTCTime
scheduledEventExternalStartTime :: UTCTime
, ScheduledEvent -> UTCTime
scheduledEventExternalEndTime :: UTCTime
, ScheduledEvent -> ScheduledEventPrivacyLevel
scheduledEventExternalPrivacyLevel :: ScheduledEventPrivacyLevel
, ScheduledEvent -> ScheduledEventStatus
scheduledEventExternalStatus :: ScheduledEventStatus
, ScheduledEvent -> Maybe ScheduledEventEntityId
scheduledEventExternalEntityId :: Maybe ScheduledEventEntityId
, ScheduledEvent -> Maybe User
scheduledEventExternalCreator :: Maybe User
, ScheduledEvent -> Maybe Integer
scheduledEventExternalUserCount :: Maybe Integer
, ScheduledEvent -> Maybe Text
scheduledEventExternalImage :: Maybe ScheduledEventImageHash
}
deriving (Int -> ScheduledEvent -> ShowS
[ScheduledEvent] -> ShowS
ScheduledEvent -> String
(Int -> ScheduledEvent -> ShowS)
-> (ScheduledEvent -> String)
-> ([ScheduledEvent] -> ShowS)
-> Show ScheduledEvent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ScheduledEvent -> ShowS
showsPrec :: Int -> ScheduledEvent -> ShowS
$cshow :: ScheduledEvent -> String
show :: ScheduledEvent -> String
$cshowList :: [ScheduledEvent] -> ShowS
showList :: [ScheduledEvent] -> ShowS
Show, ScheduledEvent -> ScheduledEvent -> Bool
(ScheduledEvent -> ScheduledEvent -> Bool)
-> (ScheduledEvent -> ScheduledEvent -> Bool) -> Eq ScheduledEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ScheduledEvent -> ScheduledEvent -> Bool
== :: ScheduledEvent -> ScheduledEvent -> Bool
$c/= :: ScheduledEvent -> ScheduledEvent -> Bool
/= :: ScheduledEvent -> ScheduledEvent -> Bool
Eq, ReadPrec [ScheduledEvent]
ReadPrec ScheduledEvent
Int -> ReadS ScheduledEvent
ReadS [ScheduledEvent]
(Int -> ReadS ScheduledEvent)
-> ReadS [ScheduledEvent]
-> ReadPrec ScheduledEvent
-> ReadPrec [ScheduledEvent]
-> Read ScheduledEvent
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ScheduledEvent
readsPrec :: Int -> ReadS ScheduledEvent
$creadList :: ReadS [ScheduledEvent]
readList :: ReadS [ScheduledEvent]
$creadPrec :: ReadPrec ScheduledEvent
readPrec :: ReadPrec ScheduledEvent
$creadListPrec :: ReadPrec [ScheduledEvent]
readListPrec :: ReadPrec [ScheduledEvent]
Read)
instance ToJSON ScheduledEvent where
toJSON :: ScheduledEvent -> Value
toJSON ScheduledEventStage {Maybe Integer
Maybe Text
Maybe UTCTime
Maybe ScheduledEventEntityId
Maybe UserId
Maybe User
Text
UTCTime
ScheduledEventId
GuildId
ChannelId
ScheduledEventStatus
ScheduledEventPrivacyLevel
scheduledEventStageId :: ScheduledEvent -> ScheduledEventId
scheduledEventStageGuildId :: ScheduledEvent -> GuildId
scheduledEventStageChannelId :: ScheduledEvent -> ChannelId
scheduledEventStageCreatorId :: ScheduledEvent -> Maybe UserId
scheduledEventStageName :: ScheduledEvent -> Text
scheduledEventStageDescription :: ScheduledEvent -> Maybe Text
scheduledEventStageStartTime :: ScheduledEvent -> UTCTime
scheduledEventStageEndTime :: ScheduledEvent -> Maybe UTCTime
scheduledEventStagePrivacyLevel :: ScheduledEvent -> ScheduledEventPrivacyLevel
scheduledEventStageStatus :: ScheduledEvent -> ScheduledEventStatus
scheduledEventStageEntityId :: ScheduledEvent -> Maybe ScheduledEventEntityId
scheduledEventStageCreator :: ScheduledEvent -> Maybe User
scheduledEventStageUserCount :: ScheduledEvent -> Maybe Integer
scheduledEventStageImage :: ScheduledEvent -> Maybe Text
scheduledEventStageId :: ScheduledEventId
scheduledEventStageGuildId :: GuildId
scheduledEventStageChannelId :: ChannelId
scheduledEventStageCreatorId :: Maybe UserId
scheduledEventStageName :: Text
scheduledEventStageDescription :: Maybe Text
scheduledEventStageStartTime :: UTCTime
scheduledEventStageEndTime :: Maybe UTCTime
scheduledEventStagePrivacyLevel :: ScheduledEventPrivacyLevel
scheduledEventStageStatus :: ScheduledEventStatus
scheduledEventStageEntityId :: Maybe ScheduledEventEntityId
scheduledEventStageCreator :: Maybe User
scheduledEventStageUserCount :: Maybe Integer
scheduledEventStageImage :: Maybe Text
..} = [Maybe Pair] -> Value
objectFromMaybes
[ Key
"id" Key -> ScheduledEventId -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ScheduledEventId
scheduledEventStageId
, Key
"guild_id" Key -> GuildId -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== GuildId
scheduledEventStageGuildId
, Key
"channel_id" Key -> ChannelId -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ChannelId
scheduledEventStageChannelId
, Key
"creator_id" Key -> Maybe UserId -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe UserId
scheduledEventStageCreatorId
, Key
"name" Key -> Text -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Text
scheduledEventStageName
, Key
"description" Key -> Maybe Text -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Text
scheduledEventStageDescription
, Key
"scheduled_start_time" Key -> UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== UTCTime
scheduledEventStageStartTime
, Key
"scheduled_end_time" Key -> Maybe UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe UTCTime
scheduledEventStageEndTime
, Key
"privacy_level" Key -> ScheduledEventPrivacyLevel -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ScheduledEventPrivacyLevel
scheduledEventStagePrivacyLevel
, Key
"entity_type" Key -> Value -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Scientific -> Value
Number Scientific
1
, Key
"entity_id" Key -> Maybe ScheduledEventEntityId -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe ScheduledEventEntityId
scheduledEventStageEntityId
, Key
"creator" Key -> Maybe User -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe User
scheduledEventStageCreator
, Key
"user_count" Key -> Maybe Integer -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Integer
scheduledEventStageUserCount
, Key
"image" Key -> Maybe Text -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Text
scheduledEventStageImage
]
toJSON ScheduledEventVoice {Maybe Integer
Maybe Text
Maybe UTCTime
Maybe ScheduledEventEntityId
Maybe UserId
Maybe User
Text
UTCTime
ScheduledEventId
GuildId
ChannelId
ScheduledEventStatus
ScheduledEventPrivacyLevel
scheduledEventVoiceId :: ScheduledEvent -> ScheduledEventId
scheduledEventVoiceGuildId :: ScheduledEvent -> GuildId
scheduledEventVoiceChannelId :: ScheduledEvent -> ChannelId
scheduledEventVoiceCreatorId :: ScheduledEvent -> Maybe UserId
scheduledEventVoiceName :: ScheduledEvent -> Text
scheduledEventVoiceDescription :: ScheduledEvent -> Maybe Text
scheduledEventVoiceStartTime :: ScheduledEvent -> UTCTime
scheduledEventVoiceEndTime :: ScheduledEvent -> Maybe UTCTime
scheduledEventVoicePrivacyLevel :: ScheduledEvent -> ScheduledEventPrivacyLevel
scheduledEventVoiceStatus :: ScheduledEvent -> ScheduledEventStatus
scheduledEventVoiceEntityId :: ScheduledEvent -> Maybe ScheduledEventEntityId
scheduledEventVoiceCreator :: ScheduledEvent -> Maybe User
scheduledEventVoiceUserCount :: ScheduledEvent -> Maybe Integer
scheduledEventVoiceImage :: ScheduledEvent -> Maybe Text
scheduledEventVoiceId :: ScheduledEventId
scheduledEventVoiceGuildId :: GuildId
scheduledEventVoiceChannelId :: ChannelId
scheduledEventVoiceCreatorId :: Maybe UserId
scheduledEventVoiceName :: Text
scheduledEventVoiceDescription :: Maybe Text
scheduledEventVoiceStartTime :: UTCTime
scheduledEventVoiceEndTime :: Maybe UTCTime
scheduledEventVoicePrivacyLevel :: ScheduledEventPrivacyLevel
scheduledEventVoiceStatus :: ScheduledEventStatus
scheduledEventVoiceEntityId :: Maybe ScheduledEventEntityId
scheduledEventVoiceCreator :: Maybe User
scheduledEventVoiceUserCount :: Maybe Integer
scheduledEventVoiceImage :: Maybe Text
..} = [Maybe Pair] -> Value
objectFromMaybes
[ Key
"id" Key -> ScheduledEventId -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ScheduledEventId
scheduledEventVoiceId
, Key
"guild_id" Key -> GuildId -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== GuildId
scheduledEventVoiceGuildId
, Key
"channel_id" Key -> ChannelId -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ChannelId
scheduledEventVoiceChannelId
, Key
"creator_id" Key -> Maybe UserId -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe UserId
scheduledEventVoiceCreatorId
, Key
"name" Key -> Text -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Text
scheduledEventVoiceName
, Key
"description" Key -> Maybe Text -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Text
scheduledEventVoiceDescription
, Key
"scheduled_start_time" Key -> UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== UTCTime
scheduledEventVoiceStartTime
, Key
"scheduled_end_time" Key -> Maybe UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe UTCTime
scheduledEventVoiceEndTime
, Key
"privacy_level" Key -> ScheduledEventPrivacyLevel -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ScheduledEventPrivacyLevel
scheduledEventVoicePrivacyLevel
, Key
"entity_type" Key -> Value -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Scientific -> Value
Number Scientific
2
, Key
"entity_id" Key -> Maybe ScheduledEventEntityId -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe ScheduledEventEntityId
scheduledEventVoiceEntityId
, Key
"creator" Key -> Maybe User -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe User
scheduledEventVoiceCreator
, Key
"user_count" Key -> Maybe Integer -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Integer
scheduledEventVoiceUserCount
, Key
"image" Key -> Maybe Text -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Text
scheduledEventVoiceImage
]
toJSON ScheduledEventExternal {Maybe Integer
Maybe Text
Maybe ScheduledEventEntityId
Maybe UserId
Maybe User
Text
UTCTime
ScheduledEventId
GuildId
ScheduledEventStatus
ScheduledEventPrivacyLevel
scheduledEventExternalId :: ScheduledEvent -> ScheduledEventId
scheduledEventExternalGuildId :: ScheduledEvent -> GuildId
scheduledEventExternalLocation :: ScheduledEvent -> Text
scheduledEventExternalCreatorId :: ScheduledEvent -> Maybe UserId
scheduledEventExternalName :: ScheduledEvent -> Text
scheduledEventExternalDescription :: ScheduledEvent -> Maybe Text
scheduledEventExternalStartTime :: ScheduledEvent -> UTCTime
scheduledEventExternalEndTime :: ScheduledEvent -> UTCTime
scheduledEventExternalPrivacyLevel :: ScheduledEvent -> ScheduledEventPrivacyLevel
scheduledEventExternalStatus :: ScheduledEvent -> ScheduledEventStatus
scheduledEventExternalEntityId :: ScheduledEvent -> Maybe ScheduledEventEntityId
scheduledEventExternalCreator :: ScheduledEvent -> Maybe User
scheduledEventExternalUserCount :: ScheduledEvent -> Maybe Integer
scheduledEventExternalImage :: ScheduledEvent -> Maybe Text
scheduledEventExternalId :: ScheduledEventId
scheduledEventExternalGuildId :: GuildId
scheduledEventExternalLocation :: Text
scheduledEventExternalCreatorId :: Maybe UserId
scheduledEventExternalName :: Text
scheduledEventExternalDescription :: Maybe Text
scheduledEventExternalStartTime :: UTCTime
scheduledEventExternalEndTime :: UTCTime
scheduledEventExternalPrivacyLevel :: ScheduledEventPrivacyLevel
scheduledEventExternalStatus :: ScheduledEventStatus
scheduledEventExternalEntityId :: Maybe ScheduledEventEntityId
scheduledEventExternalCreator :: Maybe User
scheduledEventExternalUserCount :: Maybe Integer
scheduledEventExternalImage :: Maybe Text
..} = [Maybe Pair] -> Value
objectFromMaybes
[ Key
"id" Key -> ScheduledEventId -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ScheduledEventId
scheduledEventExternalId
, Key
"guild_id" Key -> GuildId -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== GuildId
scheduledEventExternalGuildId
, Key
"creator_id" Key -> Maybe UserId -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe UserId
scheduledEventExternalCreatorId
, Key
"name" Key -> Text -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Text
scheduledEventExternalName
, Key
"description" Key -> Maybe Text -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Text
scheduledEventExternalDescription
, Key
"scheduled_start_time" Key -> UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== UTCTime
scheduledEventExternalStartTime
, Key
"scheduled_end_time" Key -> UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== UTCTime
scheduledEventExternalEndTime
, Key
"privacy_level" Key -> ScheduledEventPrivacyLevel -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ScheduledEventPrivacyLevel
scheduledEventExternalPrivacyLevel
, Key
"entity_type" Key -> Value -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Scientific -> Value
Number Scientific
3
, Key
"entity_id" Key -> Maybe ScheduledEventEntityId -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe ScheduledEventEntityId
scheduledEventExternalEntityId
, Key
"creator" Key -> Maybe User -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe User
scheduledEventExternalCreator
, Key
"user_count" Key -> Maybe Integer -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Integer
scheduledEventExternalUserCount
, Key
"image" Key -> Maybe Text -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Text
scheduledEventExternalImage
, Key
"entity_metadata"
Key -> Value -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== [Pair] -> Value
object [Key
"location" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
forall a. ToJSON a => a -> Value
toJSON Text
scheduledEventExternalLocation]
]
instance FromJSON ScheduledEvent where
parseJSON :: Value -> Parser ScheduledEvent
parseJSON = String
-> (Object -> Parser ScheduledEvent)
-> Value
-> Parser ScheduledEvent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject
String
"ScheduledEvent"
(\Object
v -> do
Int
setype <- Object
v Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"entity_type" :: Parser Int
ScheduledEventId
seid <- Object
v Object -> Key -> Parser ScheduledEventId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
GuildId
segid <- Object
v Object -> Key -> Parser GuildId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"guild_id"
Maybe UserId
secrid <- Object
v Object -> Key -> Parser (Maybe UserId)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"creator_id"
Text
sename <- Object
v Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"name"
Maybe Text
sedesc <- Object
v Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"description"
UTCTime
sest <- Object
v Object -> Key -> Parser UTCTime
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"scheduled_start_time"
ScheduledEventPrivacyLevel
sepl <- Object
v Object -> Key -> Parser ScheduledEventPrivacyLevel
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"privacy_level" :: Parser ScheduledEventPrivacyLevel
ScheduledEventStatus
sestat <- Object
v Object -> Key -> Parser ScheduledEventStatus
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"status" :: Parser ScheduledEventStatus
Maybe ScheduledEventEntityId
seeid <- Object
v Object -> Key -> Parser (Maybe ScheduledEventEntityId)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"entity_id"
Maybe User
secrea <- Object
v Object -> Key -> Parser (Maybe User)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"creator"
Maybe Integer
seuc <- Object
v Object -> Key -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"user_count"
Maybe Text
seim <- Object
v Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"image"
case Int
setype of
Int
1 -> do
ChannelId
sechid <- Object
v Object -> Key -> Parser ChannelId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"channelId"
Maybe UTCTime
seet <- Object
v Object -> Key -> Parser (Maybe UTCTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"scheduled_end_time"
ScheduledEvent -> Parser ScheduledEvent
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (ScheduledEvent -> Parser ScheduledEvent)
-> ScheduledEvent -> Parser ScheduledEvent
forall a b. (a -> b) -> a -> b
$ ScheduledEventId
-> GuildId
-> ChannelId
-> Maybe UserId
-> Text
-> Maybe Text
-> UTCTime
-> Maybe UTCTime
-> ScheduledEventPrivacyLevel
-> ScheduledEventStatus
-> Maybe ScheduledEventEntityId
-> Maybe User
-> Maybe Integer
-> Maybe Text
-> ScheduledEvent
ScheduledEventStage ScheduledEventId
seid
GuildId
segid
ChannelId
sechid
Maybe UserId
secrid
Text
sename
Maybe Text
sedesc
UTCTime
sest
Maybe UTCTime
seet
ScheduledEventPrivacyLevel
sepl
ScheduledEventStatus
sestat
Maybe ScheduledEventEntityId
seeid
Maybe User
secrea
Maybe Integer
seuc
Maybe Text
seim
Int
2 -> do
ChannelId
sechid <- Object
v Object -> Key -> Parser ChannelId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"channelId"
Maybe UTCTime
seet <- Object
v Object -> Key -> Parser (Maybe UTCTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"scheduled_end_time"
ScheduledEvent -> Parser ScheduledEvent
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (ScheduledEvent -> Parser ScheduledEvent)
-> ScheduledEvent -> Parser ScheduledEvent
forall a b. (a -> b) -> a -> b
$ ScheduledEventId
-> GuildId
-> ChannelId
-> Maybe UserId
-> Text
-> Maybe Text
-> UTCTime
-> Maybe UTCTime
-> ScheduledEventPrivacyLevel
-> ScheduledEventStatus
-> Maybe ScheduledEventEntityId
-> Maybe User
-> Maybe Integer
-> Maybe Text
-> ScheduledEvent
ScheduledEventVoice ScheduledEventId
seid
GuildId
segid
ChannelId
sechid
Maybe UserId
secrid
Text
sename
Maybe Text
sedesc
UTCTime
sest
Maybe UTCTime
seet
ScheduledEventPrivacyLevel
sepl
ScheduledEventStatus
sestat
Maybe ScheduledEventEntityId
seeid
Maybe User
secrea
Maybe Integer
seuc
Maybe Text
seim
Int
3 -> do
Value
semeta <- Object
v Object -> Key -> Parser Value
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"entity_metadata"
Text
seloc <- String -> (Object -> Parser Text) -> Value -> Parser Text
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"entity_metadata" (Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"location") Value
semeta
UTCTime
seet <- Object
v Object -> Key -> Parser UTCTime
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"scheduled_end_time"
ScheduledEvent -> Parser ScheduledEvent
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (ScheduledEvent -> Parser ScheduledEvent)
-> ScheduledEvent -> Parser ScheduledEvent
forall a b. (a -> b) -> a -> b
$ ScheduledEventId
-> GuildId
-> Text
-> Maybe UserId
-> Text
-> Maybe Text
-> UTCTime
-> UTCTime
-> ScheduledEventPrivacyLevel
-> ScheduledEventStatus
-> Maybe ScheduledEventEntityId
-> Maybe User
-> Maybe Integer
-> Maybe Text
-> ScheduledEvent
ScheduledEventExternal ScheduledEventId
seid
GuildId
segid
Text
seloc
Maybe UserId
secrid
Text
sename
Maybe Text
sedesc
UTCTime
sest
UTCTime
seet
ScheduledEventPrivacyLevel
sepl
ScheduledEventStatus
sestat
Maybe ScheduledEventEntityId
seeid
Maybe User
secrea
Maybe Integer
seuc
Maybe Text
seim
Int
_ -> String -> Parser ScheduledEvent
forall a. HasCallStack => String -> a
error String
"unreachable"
)
data ScheduledEventPrivacyLevel = ScheduledEventPrivacyLevelGuildOnly
deriving (Int -> ScheduledEventPrivacyLevel -> ShowS
[ScheduledEventPrivacyLevel] -> ShowS
ScheduledEventPrivacyLevel -> String
(Int -> ScheduledEventPrivacyLevel -> ShowS)
-> (ScheduledEventPrivacyLevel -> String)
-> ([ScheduledEventPrivacyLevel] -> ShowS)
-> Show ScheduledEventPrivacyLevel
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ScheduledEventPrivacyLevel -> ShowS
showsPrec :: Int -> ScheduledEventPrivacyLevel -> ShowS
$cshow :: ScheduledEventPrivacyLevel -> String
show :: ScheduledEventPrivacyLevel -> String
$cshowList :: [ScheduledEventPrivacyLevel] -> ShowS
showList :: [ScheduledEventPrivacyLevel] -> ShowS
Show, ReadPrec [ScheduledEventPrivacyLevel]
ReadPrec ScheduledEventPrivacyLevel
Int -> ReadS ScheduledEventPrivacyLevel
ReadS [ScheduledEventPrivacyLevel]
(Int -> ReadS ScheduledEventPrivacyLevel)
-> ReadS [ScheduledEventPrivacyLevel]
-> ReadPrec ScheduledEventPrivacyLevel
-> ReadPrec [ScheduledEventPrivacyLevel]
-> Read ScheduledEventPrivacyLevel
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ScheduledEventPrivacyLevel
readsPrec :: Int -> ReadS ScheduledEventPrivacyLevel
$creadList :: ReadS [ScheduledEventPrivacyLevel]
readList :: ReadS [ScheduledEventPrivacyLevel]
$creadPrec :: ReadPrec ScheduledEventPrivacyLevel
readPrec :: ReadPrec ScheduledEventPrivacyLevel
$creadListPrec :: ReadPrec [ScheduledEventPrivacyLevel]
readListPrec :: ReadPrec [ScheduledEventPrivacyLevel]
Read, ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
(ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool)
-> (ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> Bool)
-> Eq ScheduledEventPrivacyLevel
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
== :: ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
$c/= :: ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
/= :: ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
Eq, Eq ScheduledEventPrivacyLevel
Eq ScheduledEventPrivacyLevel =>
(ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> Ordering)
-> (ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> Bool)
-> (ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> Bool)
-> (ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> Bool)
-> (ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> Bool)
-> (ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel)
-> (ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel)
-> Ord ScheduledEventPrivacyLevel
ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> Ordering
ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel
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
$ccompare :: ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> Ordering
compare :: ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> Ordering
$c< :: ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
< :: ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
$c<= :: ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
<= :: ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
$c> :: ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
> :: ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
$c>= :: ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
>= :: ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel -> Bool
$cmax :: ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel
max :: ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel
$cmin :: ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel
min :: ScheduledEventPrivacyLevel
-> ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel
Ord, Typeable ScheduledEventPrivacyLevel
Typeable ScheduledEventPrivacyLevel =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ScheduledEventPrivacyLevel
-> c ScheduledEventPrivacyLevel)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ScheduledEventPrivacyLevel)
-> (ScheduledEventPrivacyLevel -> Constr)
-> (ScheduledEventPrivacyLevel -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c ScheduledEventPrivacyLevel))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ScheduledEventPrivacyLevel))
-> ((forall b. Data b => b -> b)
-> ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel)
-> (forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> ScheduledEventPrivacyLevel
-> r)
-> (forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> ScheduledEventPrivacyLevel
-> r)
-> (forall u.
(forall d. Data d => d -> u) -> ScheduledEventPrivacyLevel -> [u])
-> (forall u.
Int
-> (forall d. Data d => d -> u) -> ScheduledEventPrivacyLevel -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ScheduledEventPrivacyLevel -> m ScheduledEventPrivacyLevel)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventPrivacyLevel -> m ScheduledEventPrivacyLevel)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventPrivacyLevel -> m ScheduledEventPrivacyLevel)
-> Data ScheduledEventPrivacyLevel
ScheduledEventPrivacyLevel -> Constr
ScheduledEventPrivacyLevel -> DataType
(forall b. Data b => b -> b)
-> ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int
-> (forall d. Data d => d -> u) -> ScheduledEventPrivacyLevel -> u
forall u.
(forall d. Data d => d -> u) -> ScheduledEventPrivacyLevel -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> ScheduledEventPrivacyLevel
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> ScheduledEventPrivacyLevel
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ScheduledEventPrivacyLevel -> m ScheduledEventPrivacyLevel
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventPrivacyLevel -> m ScheduledEventPrivacyLevel
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ScheduledEventPrivacyLevel
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ScheduledEventPrivacyLevel
-> c ScheduledEventPrivacyLevel
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c ScheduledEventPrivacyLevel)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ScheduledEventPrivacyLevel)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ScheduledEventPrivacyLevel
-> c ScheduledEventPrivacyLevel
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ScheduledEventPrivacyLevel
-> c ScheduledEventPrivacyLevel
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ScheduledEventPrivacyLevel
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ScheduledEventPrivacyLevel
$ctoConstr :: ScheduledEventPrivacyLevel -> Constr
toConstr :: ScheduledEventPrivacyLevel -> Constr
$cdataTypeOf :: ScheduledEventPrivacyLevel -> DataType
dataTypeOf :: ScheduledEventPrivacyLevel -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c ScheduledEventPrivacyLevel)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d))
-> Maybe (c ScheduledEventPrivacyLevel)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ScheduledEventPrivacyLevel)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ScheduledEventPrivacyLevel)
$cgmapT :: (forall b. Data b => b -> b)
-> ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel
gmapT :: (forall b. Data b => b -> b)
-> ScheduledEventPrivacyLevel -> ScheduledEventPrivacyLevel
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> ScheduledEventPrivacyLevel
-> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> ScheduledEventPrivacyLevel
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> ScheduledEventPrivacyLevel
-> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> ScheduledEventPrivacyLevel
-> r
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> ScheduledEventPrivacyLevel -> [u]
gmapQ :: forall u.
(forall d. Data d => d -> u) -> ScheduledEventPrivacyLevel -> [u]
$cgmapQi :: forall u.
Int
-> (forall d. Data d => d -> u) -> ScheduledEventPrivacyLevel -> u
gmapQi :: forall u.
Int
-> (forall d. Data d => d -> u) -> ScheduledEventPrivacyLevel -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ScheduledEventPrivacyLevel -> m ScheduledEventPrivacyLevel
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ScheduledEventPrivacyLevel -> m ScheduledEventPrivacyLevel
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventPrivacyLevel -> m ScheduledEventPrivacyLevel
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventPrivacyLevel -> m ScheduledEventPrivacyLevel
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventPrivacyLevel -> m ScheduledEventPrivacyLevel
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventPrivacyLevel -> m ScheduledEventPrivacyLevel
Data)
instance InternalDiscordEnum ScheduledEventPrivacyLevel where
discordTypeStartValue :: ScheduledEventPrivacyLevel
discordTypeStartValue = ScheduledEventPrivacyLevel
ScheduledEventPrivacyLevelGuildOnly
fromDiscordType :: ScheduledEventPrivacyLevel -> Int
fromDiscordType ScheduledEventPrivacyLevel
ScheduledEventPrivacyLevelGuildOnly = Int
2
instance ToJSON ScheduledEventPrivacyLevel where
toJSON :: ScheduledEventPrivacyLevel -> Value
toJSON = Int -> Value
forall a. ToJSON a => a -> Value
toJSON (Int -> Value)
-> (ScheduledEventPrivacyLevel -> Int)
-> ScheduledEventPrivacyLevel
-> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ScheduledEventPrivacyLevel -> Int
forall a. InternalDiscordEnum a => a -> Int
fromDiscordType
instance FromJSON ScheduledEventPrivacyLevel where
parseJSON :: Value -> Parser ScheduledEventPrivacyLevel
parseJSON = String -> Value -> Parser ScheduledEventPrivacyLevel
forall a. InternalDiscordEnum a => String -> Value -> Parser a
discordTypeParseJSON String
"ScheduledEventPrivacyLevel"
data ScheduledEventStatus
= ScheduledEventStatusScheduled
| ScheduledEventStatusActive
| ScheduledEventStatusCompleted
| ScheduledEventStatusCancelled
deriving (Int -> ScheduledEventStatus -> ShowS
[ScheduledEventStatus] -> ShowS
ScheduledEventStatus -> String
(Int -> ScheduledEventStatus -> ShowS)
-> (ScheduledEventStatus -> String)
-> ([ScheduledEventStatus] -> ShowS)
-> Show ScheduledEventStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ScheduledEventStatus -> ShowS
showsPrec :: Int -> ScheduledEventStatus -> ShowS
$cshow :: ScheduledEventStatus -> String
show :: ScheduledEventStatus -> String
$cshowList :: [ScheduledEventStatus] -> ShowS
showList :: [ScheduledEventStatus] -> ShowS
Show, ReadPrec [ScheduledEventStatus]
ReadPrec ScheduledEventStatus
Int -> ReadS ScheduledEventStatus
ReadS [ScheduledEventStatus]
(Int -> ReadS ScheduledEventStatus)
-> ReadS [ScheduledEventStatus]
-> ReadPrec ScheduledEventStatus
-> ReadPrec [ScheduledEventStatus]
-> Read ScheduledEventStatus
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ScheduledEventStatus
readsPrec :: Int -> ReadS ScheduledEventStatus
$creadList :: ReadS [ScheduledEventStatus]
readList :: ReadS [ScheduledEventStatus]
$creadPrec :: ReadPrec ScheduledEventStatus
readPrec :: ReadPrec ScheduledEventStatus
$creadListPrec :: ReadPrec [ScheduledEventStatus]
readListPrec :: ReadPrec [ScheduledEventStatus]
Read, ScheduledEventStatus -> ScheduledEventStatus -> Bool
(ScheduledEventStatus -> ScheduledEventStatus -> Bool)
-> (ScheduledEventStatus -> ScheduledEventStatus -> Bool)
-> Eq ScheduledEventStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ScheduledEventStatus -> ScheduledEventStatus -> Bool
== :: ScheduledEventStatus -> ScheduledEventStatus -> Bool
$c/= :: ScheduledEventStatus -> ScheduledEventStatus -> Bool
/= :: ScheduledEventStatus -> ScheduledEventStatus -> Bool
Eq, Eq ScheduledEventStatus
Eq ScheduledEventStatus =>
(ScheduledEventStatus -> ScheduledEventStatus -> Ordering)
-> (ScheduledEventStatus -> ScheduledEventStatus -> Bool)
-> (ScheduledEventStatus -> ScheduledEventStatus -> Bool)
-> (ScheduledEventStatus -> ScheduledEventStatus -> Bool)
-> (ScheduledEventStatus -> ScheduledEventStatus -> Bool)
-> (ScheduledEventStatus
-> ScheduledEventStatus -> ScheduledEventStatus)
-> (ScheduledEventStatus
-> ScheduledEventStatus -> ScheduledEventStatus)
-> Ord ScheduledEventStatus
ScheduledEventStatus -> ScheduledEventStatus -> Bool
ScheduledEventStatus -> ScheduledEventStatus -> Ordering
ScheduledEventStatus
-> ScheduledEventStatus -> ScheduledEventStatus
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
$ccompare :: ScheduledEventStatus -> ScheduledEventStatus -> Ordering
compare :: ScheduledEventStatus -> ScheduledEventStatus -> Ordering
$c< :: ScheduledEventStatus -> ScheduledEventStatus -> Bool
< :: ScheduledEventStatus -> ScheduledEventStatus -> Bool
$c<= :: ScheduledEventStatus -> ScheduledEventStatus -> Bool
<= :: ScheduledEventStatus -> ScheduledEventStatus -> Bool
$c> :: ScheduledEventStatus -> ScheduledEventStatus -> Bool
> :: ScheduledEventStatus -> ScheduledEventStatus -> Bool
$c>= :: ScheduledEventStatus -> ScheduledEventStatus -> Bool
>= :: ScheduledEventStatus -> ScheduledEventStatus -> Bool
$cmax :: ScheduledEventStatus
-> ScheduledEventStatus -> ScheduledEventStatus
max :: ScheduledEventStatus
-> ScheduledEventStatus -> ScheduledEventStatus
$cmin :: ScheduledEventStatus
-> ScheduledEventStatus -> ScheduledEventStatus
min :: ScheduledEventStatus
-> ScheduledEventStatus -> ScheduledEventStatus
Ord, Typeable ScheduledEventStatus
Typeable ScheduledEventStatus =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ScheduledEventStatus
-> c ScheduledEventStatus)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ScheduledEventStatus)
-> (ScheduledEventStatus -> Constr)
-> (ScheduledEventStatus -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ScheduledEventStatus))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ScheduledEventStatus))
-> ((forall b. Data b => b -> b)
-> ScheduledEventStatus -> ScheduledEventStatus)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventStatus -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventStatus -> r)
-> (forall u.
(forall d. Data d => d -> u) -> ScheduledEventStatus -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> ScheduledEventStatus -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ScheduledEventStatus -> m ScheduledEventStatus)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventStatus -> m ScheduledEventStatus)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventStatus -> m ScheduledEventStatus)
-> Data ScheduledEventStatus
ScheduledEventStatus -> Constr
ScheduledEventStatus -> DataType
(forall b. Data b => b -> b)
-> ScheduledEventStatus -> ScheduledEventStatus
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> ScheduledEventStatus -> u
forall u.
(forall d. Data d => d -> u) -> ScheduledEventStatus -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventStatus -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventStatus -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ScheduledEventStatus -> m ScheduledEventStatus
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventStatus -> m ScheduledEventStatus
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ScheduledEventStatus
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ScheduledEventStatus
-> c ScheduledEventStatus
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ScheduledEventStatus)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ScheduledEventStatus)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ScheduledEventStatus
-> c ScheduledEventStatus
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ScheduledEventStatus
-> c ScheduledEventStatus
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ScheduledEventStatus
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ScheduledEventStatus
$ctoConstr :: ScheduledEventStatus -> Constr
toConstr :: ScheduledEventStatus -> Constr
$cdataTypeOf :: ScheduledEventStatus -> DataType
dataTypeOf :: ScheduledEventStatus -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ScheduledEventStatus)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ScheduledEventStatus)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ScheduledEventStatus)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ScheduledEventStatus)
$cgmapT :: (forall b. Data b => b -> b)
-> ScheduledEventStatus -> ScheduledEventStatus
gmapT :: (forall b. Data b => b -> b)
-> ScheduledEventStatus -> ScheduledEventStatus
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventStatus -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventStatus -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventStatus -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventStatus -> r
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> ScheduledEventStatus -> [u]
gmapQ :: forall u.
(forall d. Data d => d -> u) -> ScheduledEventStatus -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> ScheduledEventStatus -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> ScheduledEventStatus -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ScheduledEventStatus -> m ScheduledEventStatus
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ScheduledEventStatus -> m ScheduledEventStatus
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventStatus -> m ScheduledEventStatus
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventStatus -> m ScheduledEventStatus
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventStatus -> m ScheduledEventStatus
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventStatus -> m ScheduledEventStatus
Data)
instance InternalDiscordEnum ScheduledEventStatus where
discordTypeStartValue :: ScheduledEventStatus
discordTypeStartValue = ScheduledEventStatus
ScheduledEventStatusScheduled
fromDiscordType :: ScheduledEventStatus -> Int
fromDiscordType ScheduledEventStatus
ScheduledEventStatusScheduled = Int
1
fromDiscordType ScheduledEventStatus
ScheduledEventStatusActive = Int
2
fromDiscordType ScheduledEventStatus
ScheduledEventStatusCompleted = Int
3
fromDiscordType ScheduledEventStatus
ScheduledEventStatusCancelled = Int
4
instance ToJSON ScheduledEventStatus where
toJSON :: ScheduledEventStatus -> Value
toJSON = Int -> Value
forall a. ToJSON a => a -> Value
toJSON (Int -> Value)
-> (ScheduledEventStatus -> Int) -> ScheduledEventStatus -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ScheduledEventStatus -> Int
forall a. InternalDiscordEnum a => a -> Int
fromDiscordType
instance FromJSON ScheduledEventStatus where
parseJSON :: Value -> Parser ScheduledEventStatus
parseJSON = String -> Value -> Parser ScheduledEventStatus
forall a. InternalDiscordEnum a => String -> Value -> Parser a
discordTypeParseJSON String
"ScheduledEventStatus"
type ScheduledEventImageHash = T.Text
data CreateScheduledEventImageUploadType
= CreateScheduledEventImageUploadTypeJPG
| CreateScheduledEventImageUploadTypePNG
| CreateScheduledEventImageUploadTypeGIF
deriving (Int -> CreateScheduledEventImageUploadType -> ShowS
[CreateScheduledEventImageUploadType] -> ShowS
CreateScheduledEventImageUploadType -> String
(Int -> CreateScheduledEventImageUploadType -> ShowS)
-> (CreateScheduledEventImageUploadType -> String)
-> ([CreateScheduledEventImageUploadType] -> ShowS)
-> Show CreateScheduledEventImageUploadType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CreateScheduledEventImageUploadType -> ShowS
showsPrec :: Int -> CreateScheduledEventImageUploadType -> ShowS
$cshow :: CreateScheduledEventImageUploadType -> String
show :: CreateScheduledEventImageUploadType -> String
$cshowList :: [CreateScheduledEventImageUploadType] -> ShowS
showList :: [CreateScheduledEventImageUploadType] -> ShowS
Show, ReadPrec [CreateScheduledEventImageUploadType]
ReadPrec CreateScheduledEventImageUploadType
Int -> ReadS CreateScheduledEventImageUploadType
ReadS [CreateScheduledEventImageUploadType]
(Int -> ReadS CreateScheduledEventImageUploadType)
-> ReadS [CreateScheduledEventImageUploadType]
-> ReadPrec CreateScheduledEventImageUploadType
-> ReadPrec [CreateScheduledEventImageUploadType]
-> Read CreateScheduledEventImageUploadType
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS CreateScheduledEventImageUploadType
readsPrec :: Int -> ReadS CreateScheduledEventImageUploadType
$creadList :: ReadS [CreateScheduledEventImageUploadType]
readList :: ReadS [CreateScheduledEventImageUploadType]
$creadPrec :: ReadPrec CreateScheduledEventImageUploadType
readPrec :: ReadPrec CreateScheduledEventImageUploadType
$creadListPrec :: ReadPrec [CreateScheduledEventImageUploadType]
readListPrec :: ReadPrec [CreateScheduledEventImageUploadType]
Read, CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
(CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool)
-> (CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool)
-> Eq CreateScheduledEventImageUploadType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
== :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
$c/= :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
/= :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
Eq, Eq CreateScheduledEventImageUploadType
Eq CreateScheduledEventImageUploadType =>
(CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Ordering)
-> (CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool)
-> (CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool)
-> (CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool)
-> (CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool)
-> (CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType)
-> (CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType)
-> Ord CreateScheduledEventImageUploadType
CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Ordering
CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType
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
$ccompare :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Ordering
compare :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Ordering
$c< :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
< :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
$c<= :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
<= :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
$c> :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
> :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
$c>= :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
>= :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType -> Bool
$cmax :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType
max :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType
$cmin :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType
min :: CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType
-> CreateScheduledEventImageUploadType
Ord)
data CreateScheduledEventImage
= CreateScheduledEventImageURL T.Text
| CreateScheduledEventImageUpload CreateScheduledEventImageUploadType B.ByteString
deriving (Int -> CreateScheduledEventImage -> ShowS
[CreateScheduledEventImage] -> ShowS
CreateScheduledEventImage -> String
(Int -> CreateScheduledEventImage -> ShowS)
-> (CreateScheduledEventImage -> String)
-> ([CreateScheduledEventImage] -> ShowS)
-> Show CreateScheduledEventImage
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CreateScheduledEventImage -> ShowS
showsPrec :: Int -> CreateScheduledEventImage -> ShowS
$cshow :: CreateScheduledEventImage -> String
show :: CreateScheduledEventImage -> String
$cshowList :: [CreateScheduledEventImage] -> ShowS
showList :: [CreateScheduledEventImage] -> ShowS
Show, ReadPrec [CreateScheduledEventImage]
ReadPrec CreateScheduledEventImage
Int -> ReadS CreateScheduledEventImage
ReadS [CreateScheduledEventImage]
(Int -> ReadS CreateScheduledEventImage)
-> ReadS [CreateScheduledEventImage]
-> ReadPrec CreateScheduledEventImage
-> ReadPrec [CreateScheduledEventImage]
-> Read CreateScheduledEventImage
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS CreateScheduledEventImage
readsPrec :: Int -> ReadS CreateScheduledEventImage
$creadList :: ReadS [CreateScheduledEventImage]
readList :: ReadS [CreateScheduledEventImage]
$creadPrec :: ReadPrec CreateScheduledEventImage
readPrec :: ReadPrec CreateScheduledEventImage
$creadListPrec :: ReadPrec [CreateScheduledEventImage]
readListPrec :: ReadPrec [CreateScheduledEventImage]
Read, CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
(CreateScheduledEventImage -> CreateScheduledEventImage -> Bool)
-> (CreateScheduledEventImage -> CreateScheduledEventImage -> Bool)
-> Eq CreateScheduledEventImage
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
== :: CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
$c/= :: CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
/= :: CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
Eq, Eq CreateScheduledEventImage
Eq CreateScheduledEventImage =>
(CreateScheduledEventImage
-> CreateScheduledEventImage -> Ordering)
-> (CreateScheduledEventImage -> CreateScheduledEventImage -> Bool)
-> (CreateScheduledEventImage -> CreateScheduledEventImage -> Bool)
-> (CreateScheduledEventImage -> CreateScheduledEventImage -> Bool)
-> (CreateScheduledEventImage -> CreateScheduledEventImage -> Bool)
-> (CreateScheduledEventImage
-> CreateScheduledEventImage -> CreateScheduledEventImage)
-> (CreateScheduledEventImage
-> CreateScheduledEventImage -> CreateScheduledEventImage)
-> Ord CreateScheduledEventImage
CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
CreateScheduledEventImage -> CreateScheduledEventImage -> Ordering
CreateScheduledEventImage
-> CreateScheduledEventImage -> CreateScheduledEventImage
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
$ccompare :: CreateScheduledEventImage -> CreateScheduledEventImage -> Ordering
compare :: CreateScheduledEventImage -> CreateScheduledEventImage -> Ordering
$c< :: CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
< :: CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
$c<= :: CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
<= :: CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
$c> :: CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
> :: CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
$c>= :: CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
>= :: CreateScheduledEventImage -> CreateScheduledEventImage -> Bool
$cmax :: CreateScheduledEventImage
-> CreateScheduledEventImage -> CreateScheduledEventImage
max :: CreateScheduledEventImage
-> CreateScheduledEventImage -> CreateScheduledEventImage
$cmin :: CreateScheduledEventImage
-> CreateScheduledEventImage -> CreateScheduledEventImage
min :: CreateScheduledEventImage
-> CreateScheduledEventImage -> CreateScheduledEventImage
Ord)
instance ToJSON CreateScheduledEventImage where
toJSON :: CreateScheduledEventImage -> Value
toJSON (CreateScheduledEventImageURL Text
u) = Text -> Value
String Text
u
toJSON (CreateScheduledEventImageUpload CreateScheduledEventImageUploadType
typ ByteString
bs) =
Text -> Value
String
(Text -> Value) -> Text -> Value
forall a b. (a -> b) -> a -> b
$ Text
"data:"
Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> (case CreateScheduledEventImageUploadType
typ of
CreateScheduledEventImageUploadType
CreateScheduledEventImageUploadTypeJPG -> Text
"image/jpeg"
CreateScheduledEventImageUploadType
CreateScheduledEventImageUploadTypePNG -> Text
"image/png"
CreateScheduledEventImageUploadType
CreateScheduledEventImageUploadTypeGIF -> Text
"image/gif"
)
Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
";base64,"
Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> ByteString -> Text
T.decodeUtf8 ByteString
bs
instance FromJSON CreateScheduledEventImage where
parseJSON :: Value -> Parser CreateScheduledEventImage
parseJSON =
String
-> (Text -> Parser CreateScheduledEventImage)
-> Value
-> Parser CreateScheduledEventImage
forall a. String -> (Text -> Parser a) -> Value -> Parser a
withText String
"CreateScheduledEventImage" (CreateScheduledEventImage -> Parser CreateScheduledEventImage
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (CreateScheduledEventImage -> Parser CreateScheduledEventImage)
-> (Text -> CreateScheduledEventImage)
-> Text
-> Parser CreateScheduledEventImage
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> CreateScheduledEventImage
CreateScheduledEventImageURL)
data CreateScheduledEventData
= CreateScheduledEventDataStage
{ CreateScheduledEventData -> ChannelId
createScheduleEventDataStageChannelId :: ChannelId
, CreateScheduledEventData -> Text
createScheduleEventDataStageName :: T.Text
, CreateScheduledEventData -> ScheduledEventPrivacyLevel
createScheduleEventDataStagePrivacyLevel :: ScheduledEventPrivacyLevel
, CreateScheduledEventData -> UTCTime
createScheduleEventDataStageStartTime :: UTCTime
, CreateScheduledEventData -> Maybe UTCTime
createScheduleEventDataStageEndTime :: Maybe UTCTime
, CreateScheduledEventData -> Maybe Text
createScheduleEventDataStageDescription :: Maybe T.Text
, CreateScheduledEventData -> Maybe CreateScheduledEventImage
createScheduleEventDataStageImage :: Maybe CreateScheduledEventImage
}
| CreateScheduledEventDataVoice
{ CreateScheduledEventData -> ChannelId
createScheduleEventDataVoiceChannelId :: ChannelId
, CreateScheduledEventData -> Text
createScheduleEventDataVoiceName :: T.Text
, CreateScheduledEventData -> ScheduledEventPrivacyLevel
createScheduleEventDataVoicePrivacyLevel :: ScheduledEventPrivacyLevel
, CreateScheduledEventData -> UTCTime
createScheduleEventDataVoiceStartTime :: UTCTime
, CreateScheduledEventData -> Maybe UTCTime
createScheduleEventDataVoiceEndTime :: Maybe UTCTime
, CreateScheduledEventData -> Maybe Text
createScheduleEventDataVoiceDescription :: Maybe T.Text
, CreateScheduledEventData -> Maybe CreateScheduledEventImage
createScheduleEventDataVoiceImage :: Maybe CreateScheduledEventImage
}
| CreateScheduledEventDataExternal
{ CreateScheduledEventData -> Text
createScheduleEventDataExternalLocation :: T.Text
, CreateScheduledEventData -> Text
createScheduleEventDataExternalName :: T.Text
, CreateScheduledEventData -> ScheduledEventPrivacyLevel
createScheduleEventDataExternalPrivacyLevel :: ScheduledEventPrivacyLevel
, CreateScheduledEventData -> UTCTime
createScheduleEventDataExternalStartTime :: UTCTime
, CreateScheduledEventData -> UTCTime
createScheduleEventDataExternalEndTime :: UTCTime
, CreateScheduledEventData -> Maybe Text
createScheduleEventDataExternalDescription :: Maybe T.Text
, CreateScheduledEventData -> Maybe CreateScheduledEventImage
createScheduleEventDataExternalImage :: Maybe CreateScheduledEventImage
}
instance ToJSON CreateScheduledEventData where
toJSON :: CreateScheduledEventData -> Value
toJSON CreateScheduledEventDataStage {Maybe Text
Maybe UTCTime
Maybe CreateScheduledEventImage
Text
UTCTime
ChannelId
ScheduledEventPrivacyLevel
createScheduleEventDataStageChannelId :: CreateScheduledEventData -> ChannelId
createScheduleEventDataStageName :: CreateScheduledEventData -> Text
createScheduleEventDataStagePrivacyLevel :: CreateScheduledEventData -> ScheduledEventPrivacyLevel
createScheduleEventDataStageStartTime :: CreateScheduledEventData -> UTCTime
createScheduleEventDataStageEndTime :: CreateScheduledEventData -> Maybe UTCTime
createScheduleEventDataStageDescription :: CreateScheduledEventData -> Maybe Text
createScheduleEventDataStageImage :: CreateScheduledEventData -> Maybe CreateScheduledEventImage
createScheduleEventDataStageChannelId :: ChannelId
createScheduleEventDataStageName :: Text
createScheduleEventDataStagePrivacyLevel :: ScheduledEventPrivacyLevel
createScheduleEventDataStageStartTime :: UTCTime
createScheduleEventDataStageEndTime :: Maybe UTCTime
createScheduleEventDataStageDescription :: Maybe Text
createScheduleEventDataStageImage :: Maybe CreateScheduledEventImage
..} = [Maybe Pair] -> Value
objectFromMaybes
[ Key
"channel_id" Key -> ChannelId -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ChannelId
createScheduleEventDataStageChannelId
, Key
"name" Key -> Text -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Text
createScheduleEventDataStageName
, Key
"privacy_level" Key -> ScheduledEventPrivacyLevel -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ScheduledEventPrivacyLevel
createScheduleEventDataStagePrivacyLevel
, Key
"scheduled_start_time" Key -> UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== UTCTime
createScheduleEventDataStageStartTime
, Key
"scheduled_end_time" Key -> Maybe UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe UTCTime
createScheduleEventDataStageEndTime
, Key
"description" Key -> Maybe Text -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Text
createScheduleEventDataStageDescription
, Key
"entity_type" Key -> Value -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Scientific -> Value
Number Scientific
1
, Key
"image" Key -> Maybe CreateScheduledEventImage -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe CreateScheduledEventImage
createScheduleEventDataStageImage
]
toJSON CreateScheduledEventDataVoice {Maybe Text
Maybe UTCTime
Maybe CreateScheduledEventImage
Text
UTCTime
ChannelId
ScheduledEventPrivacyLevel
createScheduleEventDataVoiceChannelId :: CreateScheduledEventData -> ChannelId
createScheduleEventDataVoiceName :: CreateScheduledEventData -> Text
createScheduleEventDataVoicePrivacyLevel :: CreateScheduledEventData -> ScheduledEventPrivacyLevel
createScheduleEventDataVoiceStartTime :: CreateScheduledEventData -> UTCTime
createScheduleEventDataVoiceEndTime :: CreateScheduledEventData -> Maybe UTCTime
createScheduleEventDataVoiceDescription :: CreateScheduledEventData -> Maybe Text
createScheduleEventDataVoiceImage :: CreateScheduledEventData -> Maybe CreateScheduledEventImage
createScheduleEventDataVoiceChannelId :: ChannelId
createScheduleEventDataVoiceName :: Text
createScheduleEventDataVoicePrivacyLevel :: ScheduledEventPrivacyLevel
createScheduleEventDataVoiceStartTime :: UTCTime
createScheduleEventDataVoiceEndTime :: Maybe UTCTime
createScheduleEventDataVoiceDescription :: Maybe Text
createScheduleEventDataVoiceImage :: Maybe CreateScheduledEventImage
..} = [Maybe Pair] -> Value
objectFromMaybes
[ Key
"channel_id" Key -> ChannelId -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ChannelId
createScheduleEventDataVoiceChannelId
, Key
"name" Key -> Text -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Text
createScheduleEventDataVoiceName
, Key
"privacy_level" Key -> ScheduledEventPrivacyLevel -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ScheduledEventPrivacyLevel
createScheduleEventDataVoicePrivacyLevel
, Key
"scheduled_start_time" Key -> UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== UTCTime
createScheduleEventDataVoiceStartTime
, Key
"scheduled_end_time" Key -> Maybe UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe UTCTime
createScheduleEventDataVoiceEndTime
, Key
"description" Key -> Maybe Text -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Text
createScheduleEventDataVoiceDescription
, Key
"entity_type" Key -> Value -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Scientific -> Value
Number Scientific
2
, Key
"image" Key -> Maybe CreateScheduledEventImage -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe CreateScheduledEventImage
createScheduleEventDataVoiceImage
]
toJSON CreateScheduledEventDataExternal {Maybe Text
Maybe CreateScheduledEventImage
Text
UTCTime
ScheduledEventPrivacyLevel
createScheduleEventDataExternalLocation :: CreateScheduledEventData -> Text
createScheduleEventDataExternalName :: CreateScheduledEventData -> Text
createScheduleEventDataExternalPrivacyLevel :: CreateScheduledEventData -> ScheduledEventPrivacyLevel
createScheduleEventDataExternalStartTime :: CreateScheduledEventData -> UTCTime
createScheduleEventDataExternalEndTime :: CreateScheduledEventData -> UTCTime
createScheduleEventDataExternalDescription :: CreateScheduledEventData -> Maybe Text
createScheduleEventDataExternalImage :: CreateScheduledEventData -> Maybe CreateScheduledEventImage
createScheduleEventDataExternalLocation :: Text
createScheduleEventDataExternalName :: Text
createScheduleEventDataExternalPrivacyLevel :: ScheduledEventPrivacyLevel
createScheduleEventDataExternalStartTime :: UTCTime
createScheduleEventDataExternalEndTime :: UTCTime
createScheduleEventDataExternalDescription :: Maybe Text
createScheduleEventDataExternalImage :: Maybe CreateScheduledEventImage
..} = [Maybe Pair] -> Value
objectFromMaybes
[ Key
"entity_metadata"
Key -> Value -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== [Pair] -> Value
object [Key
"location" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text
createScheduleEventDataExternalLocation]
, Key
"name" Key -> Text -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Text
createScheduleEventDataExternalName
, Key
"privacy_level" Key -> ScheduledEventPrivacyLevel -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== ScheduledEventPrivacyLevel
createScheduleEventDataExternalPrivacyLevel
, Key
"scheduled_start_time" Key -> UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== UTCTime
createScheduleEventDataExternalStartTime
, Key
"scheduled_end_time" Key -> UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== UTCTime
createScheduleEventDataExternalEndTime
, Key
"description" Key -> Maybe Text -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Text
createScheduleEventDataExternalDescription
, Key
"entity_type" Key -> Value -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Scientific -> Value
Number Scientific
2
, Key
"image" Key -> Maybe CreateScheduledEventImage -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe CreateScheduledEventImage
createScheduleEventDataExternalImage
]
instance FromJSON CreateScheduledEventData where
parseJSON :: Value -> Parser CreateScheduledEventData
parseJSON = String
-> (Object -> Parser CreateScheduledEventData)
-> Value
-> Parser CreateScheduledEventData
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject
String
"CreateScheduledEventData"
(\Object
v -> do
Int
t <- Object
v Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"entity_type" :: Parser Int
Text
csename <- Object
v Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"name"
ScheduledEventPrivacyLevel
csepl <- Object
v Object -> Key -> Parser ScheduledEventPrivacyLevel
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"privacy_level"
UTCTime
csest <- Object
v Object -> Key -> Parser UTCTime
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"scheduled_start_time"
Maybe Text
csedesc <- Object
v Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"description"
Maybe CreateScheduledEventImage
cseimg <- Object
v Object -> Key -> Parser (Maybe CreateScheduledEventImage)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"image"
case Int
t of
Int
1 -> do
ChannelId
csecid <- Object
v Object -> Key -> Parser ChannelId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"channel_id"
Maybe UTCTime
cseet <- Object
v Object -> Key -> Parser (Maybe UTCTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"scheduled_end_time"
CreateScheduledEventData -> Parser CreateScheduledEventData
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (CreateScheduledEventData -> Parser CreateScheduledEventData)
-> CreateScheduledEventData -> Parser CreateScheduledEventData
forall a b. (a -> b) -> a -> b
$ ChannelId
-> Text
-> ScheduledEventPrivacyLevel
-> UTCTime
-> Maybe UTCTime
-> Maybe Text
-> Maybe CreateScheduledEventImage
-> CreateScheduledEventData
CreateScheduledEventDataStage ChannelId
csecid
Text
csename
ScheduledEventPrivacyLevel
csepl
UTCTime
csest
Maybe UTCTime
cseet
Maybe Text
csedesc
Maybe CreateScheduledEventImage
cseimg
Int
2 -> do
ChannelId
csecid <- Object
v Object -> Key -> Parser ChannelId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"channel_id"
Maybe UTCTime
cseet <- Object
v Object -> Key -> Parser (Maybe UTCTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"scheduled_end_time"
CreateScheduledEventData -> Parser CreateScheduledEventData
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (CreateScheduledEventData -> Parser CreateScheduledEventData)
-> CreateScheduledEventData -> Parser CreateScheduledEventData
forall a b. (a -> b) -> a -> b
$ ChannelId
-> Text
-> ScheduledEventPrivacyLevel
-> UTCTime
-> Maybe UTCTime
-> Maybe Text
-> Maybe CreateScheduledEventImage
-> CreateScheduledEventData
CreateScheduledEventDataVoice ChannelId
csecid
Text
csename
ScheduledEventPrivacyLevel
csepl
UTCTime
csest
Maybe UTCTime
cseet
Maybe Text
csedesc
Maybe CreateScheduledEventImage
cseimg
Int
3 -> do
Value
csemeta <- Object
v Object -> Key -> Parser Value
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"entity_metadata"
ChannelId
cseloc <- String -> (Object -> Parser ChannelId) -> Value -> Parser ChannelId
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"entity_metadata" (Object -> Key -> Parser ChannelId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"location") Value
csemeta
Maybe UTCTime
cseet <- Object
v Object -> Key -> Parser (Maybe UTCTime)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"scheduled_end_time"
CreateScheduledEventData -> Parser CreateScheduledEventData
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (CreateScheduledEventData -> Parser CreateScheduledEventData)
-> CreateScheduledEventData -> Parser CreateScheduledEventData
forall a b. (a -> b) -> a -> b
$ ChannelId
-> Text
-> ScheduledEventPrivacyLevel
-> UTCTime
-> Maybe UTCTime
-> Maybe Text
-> Maybe CreateScheduledEventImage
-> CreateScheduledEventData
CreateScheduledEventDataVoice ChannelId
cseloc
Text
csename
ScheduledEventPrivacyLevel
csepl
UTCTime
csest
Maybe UTCTime
cseet
Maybe Text
csedesc
Maybe CreateScheduledEventImage
cseimg
Int
_ -> String -> Parser CreateScheduledEventData
forall a. HasCallStack => String -> a
error String
"unreachable"
)
data ScheduledEventType
= ScheduledEventTypeStage
| ScheduledEventTypeVoice
| ScheduledEventTypeExternal
deriving (Int -> ScheduledEventType -> ShowS
[ScheduledEventType] -> ShowS
ScheduledEventType -> String
(Int -> ScheduledEventType -> ShowS)
-> (ScheduledEventType -> String)
-> ([ScheduledEventType] -> ShowS)
-> Show ScheduledEventType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ScheduledEventType -> ShowS
showsPrec :: Int -> ScheduledEventType -> ShowS
$cshow :: ScheduledEventType -> String
show :: ScheduledEventType -> String
$cshowList :: [ScheduledEventType] -> ShowS
showList :: [ScheduledEventType] -> ShowS
Show, ReadPrec [ScheduledEventType]
ReadPrec ScheduledEventType
Int -> ReadS ScheduledEventType
ReadS [ScheduledEventType]
(Int -> ReadS ScheduledEventType)
-> ReadS [ScheduledEventType]
-> ReadPrec ScheduledEventType
-> ReadPrec [ScheduledEventType]
-> Read ScheduledEventType
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS ScheduledEventType
readsPrec :: Int -> ReadS ScheduledEventType
$creadList :: ReadS [ScheduledEventType]
readList :: ReadS [ScheduledEventType]
$creadPrec :: ReadPrec ScheduledEventType
readPrec :: ReadPrec ScheduledEventType
$creadListPrec :: ReadPrec [ScheduledEventType]
readListPrec :: ReadPrec [ScheduledEventType]
Read, Eq ScheduledEventType
Eq ScheduledEventType =>
(ScheduledEventType -> ScheduledEventType -> Ordering)
-> (ScheduledEventType -> ScheduledEventType -> Bool)
-> (ScheduledEventType -> ScheduledEventType -> Bool)
-> (ScheduledEventType -> ScheduledEventType -> Bool)
-> (ScheduledEventType -> ScheduledEventType -> Bool)
-> (ScheduledEventType -> ScheduledEventType -> ScheduledEventType)
-> (ScheduledEventType -> ScheduledEventType -> ScheduledEventType)
-> Ord ScheduledEventType
ScheduledEventType -> ScheduledEventType -> Bool
ScheduledEventType -> ScheduledEventType -> Ordering
ScheduledEventType -> ScheduledEventType -> ScheduledEventType
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
$ccompare :: ScheduledEventType -> ScheduledEventType -> Ordering
compare :: ScheduledEventType -> ScheduledEventType -> Ordering
$c< :: ScheduledEventType -> ScheduledEventType -> Bool
< :: ScheduledEventType -> ScheduledEventType -> Bool
$c<= :: ScheduledEventType -> ScheduledEventType -> Bool
<= :: ScheduledEventType -> ScheduledEventType -> Bool
$c> :: ScheduledEventType -> ScheduledEventType -> Bool
> :: ScheduledEventType -> ScheduledEventType -> Bool
$c>= :: ScheduledEventType -> ScheduledEventType -> Bool
>= :: ScheduledEventType -> ScheduledEventType -> Bool
$cmax :: ScheduledEventType -> ScheduledEventType -> ScheduledEventType
max :: ScheduledEventType -> ScheduledEventType -> ScheduledEventType
$cmin :: ScheduledEventType -> ScheduledEventType -> ScheduledEventType
min :: ScheduledEventType -> ScheduledEventType -> ScheduledEventType
Ord, ScheduledEventType -> ScheduledEventType -> Bool
(ScheduledEventType -> ScheduledEventType -> Bool)
-> (ScheduledEventType -> ScheduledEventType -> Bool)
-> Eq ScheduledEventType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ScheduledEventType -> ScheduledEventType -> Bool
== :: ScheduledEventType -> ScheduledEventType -> Bool
$c/= :: ScheduledEventType -> ScheduledEventType -> Bool
/= :: ScheduledEventType -> ScheduledEventType -> Bool
Eq, Typeable ScheduledEventType
Typeable ScheduledEventType =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ScheduledEventType
-> c ScheduledEventType)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ScheduledEventType)
-> (ScheduledEventType -> Constr)
-> (ScheduledEventType -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ScheduledEventType))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ScheduledEventType))
-> ((forall b. Data b => b -> b)
-> ScheduledEventType -> ScheduledEventType)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventType -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventType -> r)
-> (forall u.
(forall d. Data d => d -> u) -> ScheduledEventType -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> ScheduledEventType -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ScheduledEventType -> m ScheduledEventType)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventType -> m ScheduledEventType)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventType -> m ScheduledEventType)
-> Data ScheduledEventType
ScheduledEventType -> Constr
ScheduledEventType -> DataType
(forall b. Data b => b -> b)
-> ScheduledEventType -> ScheduledEventType
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> ScheduledEventType -> u
forall u. (forall d. Data d => d -> u) -> ScheduledEventType -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventType -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventType -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ScheduledEventType -> m ScheduledEventType
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventType -> m ScheduledEventType
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ScheduledEventType
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ScheduledEventType
-> c ScheduledEventType
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ScheduledEventType)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ScheduledEventType)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ScheduledEventType
-> c ScheduledEventType
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> ScheduledEventType
-> c ScheduledEventType
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ScheduledEventType
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c ScheduledEventType
$ctoConstr :: ScheduledEventType -> Constr
toConstr :: ScheduledEventType -> Constr
$cdataTypeOf :: ScheduledEventType -> DataType
dataTypeOf :: ScheduledEventType -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ScheduledEventType)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c ScheduledEventType)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ScheduledEventType)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c ScheduledEventType)
$cgmapT :: (forall b. Data b => b -> b)
-> ScheduledEventType -> ScheduledEventType
gmapT :: (forall b. Data b => b -> b)
-> ScheduledEventType -> ScheduledEventType
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventType -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventType -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventType -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ScheduledEventType -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> ScheduledEventType -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> ScheduledEventType -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> ScheduledEventType -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> ScheduledEventType -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ScheduledEventType -> m ScheduledEventType
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> ScheduledEventType -> m ScheduledEventType
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventType -> m ScheduledEventType
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventType -> m ScheduledEventType
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventType -> m ScheduledEventType
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> ScheduledEventType -> m ScheduledEventType
Data)
instance InternalDiscordEnum ScheduledEventType where
discordTypeStartValue :: ScheduledEventType
discordTypeStartValue = ScheduledEventType
ScheduledEventTypeStage
fromDiscordType :: ScheduledEventType -> Int
fromDiscordType ScheduledEventType
ScheduledEventTypeStage = Int
1
fromDiscordType ScheduledEventType
ScheduledEventTypeVoice = Int
2
fromDiscordType ScheduledEventType
ScheduledEventTypeExternal = Int
3
instance FromJSON ScheduledEventType where
parseJSON :: Value -> Parser ScheduledEventType
parseJSON = String -> Value -> Parser ScheduledEventType
forall a. InternalDiscordEnum a => String -> Value -> Parser a
discordTypeParseJSON String
"ScheduledEventType"
instance ToJSON ScheduledEventType where
toJSON :: ScheduledEventType -> Value
toJSON = Int -> Value
forall a. ToJSON a => a -> Value
toJSON (Int -> Value)
-> (ScheduledEventType -> Int) -> ScheduledEventType -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ScheduledEventType -> Int
forall a. InternalDiscordEnum a => a -> Int
fromDiscordType
data ModifyScheduledEventData = ModifyScheduledEventData
{ ModifyScheduledEventData -> Maybe (Maybe ChannelId)
modifyScheduledEventDataChannelId :: Maybe (Maybe ChannelId)
, ModifyScheduledEventData -> Maybe (Maybe Text)
modifyScheduledEventDataLocation :: Maybe (Maybe T.Text)
, ModifyScheduledEventData -> Maybe Text
modifyScheduledEventDataName :: Maybe T.Text
, ModifyScheduledEventData -> Maybe ScheduledEventPrivacyLevel
modifyScheduledEventDataPrivacyLevel :: Maybe ScheduledEventPrivacyLevel
, ModifyScheduledEventData -> Maybe UTCTime
modifyScheduledEventDataStartTime :: Maybe UTCTime
, ModifyScheduledEventData -> Maybe UTCTime
modifyScheduledEventDataEndTime :: Maybe UTCTime
, ModifyScheduledEventData -> Maybe (Maybe Text)
modifyScheduledEventDataDescription :: Maybe (Maybe T.Text)
, ModifyScheduledEventData -> Maybe ScheduledEventType
modifyScheduledEventDataType :: Maybe ScheduledEventType
, ModifyScheduledEventData -> Maybe ScheduledEventStatus
modifyScheduledEventDataStatus :: Maybe ScheduledEventStatus
, ModifyScheduledEventData -> Maybe CreateScheduledEventImage
modifyScheduledEventDataImage :: Maybe CreateScheduledEventImage
}
instance Default ModifyScheduledEventData where
def :: ModifyScheduledEventData
def = Maybe (Maybe ChannelId)
-> Maybe (Maybe Text)
-> Maybe Text
-> Maybe ScheduledEventPrivacyLevel
-> Maybe UTCTime
-> Maybe UTCTime
-> Maybe (Maybe Text)
-> Maybe ScheduledEventType
-> Maybe ScheduledEventStatus
-> Maybe CreateScheduledEventImage
-> ModifyScheduledEventData
ModifyScheduledEventData Maybe (Maybe ChannelId)
forall a. Maybe a
Nothing
Maybe (Maybe Text)
forall a. Maybe a
Nothing
Maybe Text
forall a. Maybe a
Nothing
Maybe ScheduledEventPrivacyLevel
forall a. Maybe a
Nothing
Maybe UTCTime
forall a. Maybe a
Nothing
Maybe UTCTime
forall a. Maybe a
Nothing
Maybe (Maybe Text)
forall a. Maybe a
Nothing
Maybe ScheduledEventType
forall a. Maybe a
Nothing
Maybe ScheduledEventStatus
forall a. Maybe a
Nothing
Maybe CreateScheduledEventImage
forall a. Maybe a
Nothing
instance ToJSON ModifyScheduledEventData where
toJSON :: ModifyScheduledEventData -> Value
toJSON ModifyScheduledEventData {Maybe (Maybe Text)
Maybe (Maybe ChannelId)
Maybe Text
Maybe UTCTime
Maybe ScheduledEventType
Maybe CreateScheduledEventImage
Maybe ScheduledEventStatus
Maybe ScheduledEventPrivacyLevel
modifyScheduledEventDataChannelId :: ModifyScheduledEventData -> Maybe (Maybe ChannelId)
modifyScheduledEventDataLocation :: ModifyScheduledEventData -> Maybe (Maybe Text)
modifyScheduledEventDataName :: ModifyScheduledEventData -> Maybe Text
modifyScheduledEventDataPrivacyLevel :: ModifyScheduledEventData -> Maybe ScheduledEventPrivacyLevel
modifyScheduledEventDataStartTime :: ModifyScheduledEventData -> Maybe UTCTime
modifyScheduledEventDataEndTime :: ModifyScheduledEventData -> Maybe UTCTime
modifyScheduledEventDataDescription :: ModifyScheduledEventData -> Maybe (Maybe Text)
modifyScheduledEventDataType :: ModifyScheduledEventData -> Maybe ScheduledEventType
modifyScheduledEventDataStatus :: ModifyScheduledEventData -> Maybe ScheduledEventStatus
modifyScheduledEventDataImage :: ModifyScheduledEventData -> Maybe CreateScheduledEventImage
modifyScheduledEventDataChannelId :: Maybe (Maybe ChannelId)
modifyScheduledEventDataLocation :: Maybe (Maybe Text)
modifyScheduledEventDataName :: Maybe Text
modifyScheduledEventDataPrivacyLevel :: Maybe ScheduledEventPrivacyLevel
modifyScheduledEventDataStartTime :: Maybe UTCTime
modifyScheduledEventDataEndTime :: Maybe UTCTime
modifyScheduledEventDataDescription :: Maybe (Maybe Text)
modifyScheduledEventDataType :: Maybe ScheduledEventType
modifyScheduledEventDataStatus :: Maybe ScheduledEventStatus
modifyScheduledEventDataImage :: Maybe CreateScheduledEventImage
..} = [Maybe Pair] -> Value
objectFromMaybes
[ Key
"channel_id" Key -> Maybe (Maybe ChannelId) -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe (Maybe ChannelId)
modifyScheduledEventDataChannelId
, Key
"entity_metadata" Key -> Maybe Value -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Value
loc
, Key
"name" Key -> Maybe Text -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Text
modifyScheduledEventDataName
, Key
"scheduled_start_time" Key -> Maybe UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe UTCTime
modifyScheduledEventDataStartTime
, Key
"scheduled_end_time" Key -> Maybe UTCTime -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe UTCTime
modifyScheduledEventDataEndTime
, Key
"description" Key -> Maybe (Maybe Text) -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe (Maybe Text)
modifyScheduledEventDataDescription
, Key
"entity_type" Key -> Maybe ScheduledEventType -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe ScheduledEventType
modifyScheduledEventDataType
, Key
"status" Key -> Maybe ScheduledEventStatus -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe ScheduledEventStatus
modifyScheduledEventDataStatus
, Key
"image" Key -> Maybe CreateScheduledEventImage -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe CreateScheduledEventImage
modifyScheduledEventDataImage
]
where
loc :: Maybe Value
loc = case Maybe (Maybe Text)
modifyScheduledEventDataLocation of
Maybe (Maybe Text)
Nothing -> Maybe Value
forall a. Maybe a
Nothing
Just Maybe Text
Nothing -> Value -> Maybe Value
forall a. a -> Maybe a
Just Value
Null
Just Maybe Text
loc' -> Value -> Maybe Value
forall a. a -> Maybe a
Just (Value -> Maybe Value) -> Value -> Maybe Value
forall a b. (a -> b) -> a -> b
$ [Pair] -> Value
object [(Key
"location", Maybe Text -> Value
forall a. ToJSON a => a -> Value
toJSON Maybe Text
loc')]
instance FromJSON ModifyScheduledEventData where
parseJSON :: Value -> Parser ModifyScheduledEventData
parseJSON = String
-> (Object -> Parser ModifyScheduledEventData)
-> Value
-> Parser ModifyScheduledEventData
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject
String
"ModifyScheduledEventData"
(\Object
v -> do
Maybe Text
msename <- Object
v Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"name"
Maybe UTCTime
msest <- Object
v Object -> Key -> Parser (Maybe UTCTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"scheduled_start_time"
Maybe UTCTime
mseet <- Object
v Object -> Key -> Parser (Maybe UTCTime)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"scheduled_end_time"
Maybe ScheduledEventType
msetype <- Object
v Object -> Key -> Parser (Maybe ScheduledEventType)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"entity_type"
Maybe ScheduledEventPrivacyLevel
msepl <- Object
v Object -> Key -> Parser (Maybe ScheduledEventPrivacyLevel)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"privacy_level"
Maybe ScheduledEventStatus
msestat <- Object
v Object -> Key -> Parser (Maybe ScheduledEventStatus)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"status"
Maybe CreateScheduledEventImage
mseimg <- Object
v Object -> Key -> Parser (Maybe CreateScheduledEventImage)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"image"
Maybe Value
msecid' <- Object
v Object -> Key -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:! Key
"channel_id"
Maybe Value
mseloc' <- Object
v Object -> Key -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:! Key
"entity_metadata"
Maybe Value
msedesc' <- Object
v Object -> Key -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:! Key
"description"
Maybe (Maybe ChannelId)
msecid <- case Maybe Value
msecid' of
Maybe Value
Nothing -> Maybe (Maybe ChannelId) -> Parser (Maybe (Maybe ChannelId))
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe (Maybe ChannelId)
forall a. Maybe a
Nothing
Just Value
Null -> Maybe (Maybe ChannelId) -> Parser (Maybe (Maybe ChannelId))
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe (Maybe ChannelId) -> Parser (Maybe (Maybe ChannelId)))
-> Maybe (Maybe ChannelId) -> Parser (Maybe (Maybe ChannelId))
forall a b. (a -> b) -> a -> b
$ Maybe ChannelId -> Maybe (Maybe ChannelId)
forall a. a -> Maybe a
Just Maybe ChannelId
forall a. Maybe a
Nothing
Just Value
x -> do
Maybe ChannelId
x' <- Value -> Parser (Maybe ChannelId)
forall a. FromJSON a => Value -> Parser a
parseJSON Value
x
Maybe (Maybe ChannelId) -> Parser (Maybe (Maybe ChannelId))
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe (Maybe ChannelId) -> Parser (Maybe (Maybe ChannelId)))
-> Maybe (Maybe ChannelId) -> Parser (Maybe (Maybe ChannelId))
forall a b. (a -> b) -> a -> b
$ Maybe ChannelId -> Maybe (Maybe ChannelId)
forall a. a -> Maybe a
Just Maybe ChannelId
x'
Maybe (Maybe Text)
mseloc <- case Maybe Value
mseloc' of
Maybe Value
Nothing -> Maybe (Maybe Text) -> Parser (Maybe (Maybe Text))
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe (Maybe Text)
forall a. Maybe a
Nothing
Just Value
Null -> Maybe (Maybe Text) -> Parser (Maybe (Maybe Text))
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe (Maybe Text) -> Parser (Maybe (Maybe Text)))
-> Maybe (Maybe Text) -> Parser (Maybe (Maybe Text))
forall a b. (a -> b) -> a -> b
$ Maybe Text -> Maybe (Maybe Text)
forall a. a -> Maybe a
Just Maybe Text
forall a. Maybe a
Nothing
Just Value
x -> do
Maybe Text
x' <- String
-> (Object -> Parser (Maybe Text)) -> Value -> Parser (Maybe Text)
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"entity_metadata" (Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"location") Value
x
Maybe (Maybe Text) -> Parser (Maybe (Maybe Text))
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe (Maybe Text) -> Parser (Maybe (Maybe Text)))
-> Maybe (Maybe Text) -> Parser (Maybe (Maybe Text))
forall a b. (a -> b) -> a -> b
$ Maybe Text -> Maybe (Maybe Text)
forall a. a -> Maybe a
Just Maybe Text
x'
Maybe (Maybe Text)
msedesc <- case Maybe Value
msedesc' of
Maybe Value
Nothing -> Maybe (Maybe Text) -> Parser (Maybe (Maybe Text))
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe (Maybe Text)
forall a. Maybe a
Nothing
Just Value
Null -> Maybe (Maybe Text) -> Parser (Maybe (Maybe Text))
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe (Maybe Text) -> Parser (Maybe (Maybe Text)))
-> Maybe (Maybe Text) -> Parser (Maybe (Maybe Text))
forall a b. (a -> b) -> a -> b
$ Maybe Text -> Maybe (Maybe Text)
forall a. a -> Maybe a
Just Maybe Text
forall a. Maybe a
Nothing
Just Value
x -> do
Maybe Text
x' <- Value -> Parser (Maybe Text)
forall a. FromJSON a => Value -> Parser a
parseJSON Value
x
Maybe (Maybe Text) -> Parser (Maybe (Maybe Text))
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe (Maybe Text) -> Parser (Maybe (Maybe Text)))
-> Maybe (Maybe Text) -> Parser (Maybe (Maybe Text))
forall a b. (a -> b) -> a -> b
$ Maybe Text -> Maybe (Maybe Text)
forall a. a -> Maybe a
Just Maybe Text
x'
ModifyScheduledEventData -> Parser ModifyScheduledEventData
forall a. a -> Parser a
forall (m :: * -> *) a. Monad m => a -> m a
return (ModifyScheduledEventData -> Parser ModifyScheduledEventData)
-> ModifyScheduledEventData -> Parser ModifyScheduledEventData
forall a b. (a -> b) -> a -> b
$ ModifyScheduledEventData
{ modifyScheduledEventDataChannelId :: Maybe (Maybe ChannelId)
modifyScheduledEventDataChannelId = Maybe (Maybe ChannelId)
msecid
, modifyScheduledEventDataLocation :: Maybe (Maybe Text)
modifyScheduledEventDataLocation = Maybe (Maybe Text)
mseloc
, modifyScheduledEventDataName :: Maybe Text
modifyScheduledEventDataName = Maybe Text
msename
, modifyScheduledEventDataPrivacyLevel :: Maybe ScheduledEventPrivacyLevel
modifyScheduledEventDataPrivacyLevel = Maybe ScheduledEventPrivacyLevel
msepl
, modifyScheduledEventDataStartTime :: Maybe UTCTime
modifyScheduledEventDataStartTime = Maybe UTCTime
msest
, modifyScheduledEventDataEndTime :: Maybe UTCTime
modifyScheduledEventDataEndTime = Maybe UTCTime
mseet
, modifyScheduledEventDataDescription :: Maybe (Maybe Text)
modifyScheduledEventDataDescription = Maybe (Maybe Text)
msedesc
, modifyScheduledEventDataType :: Maybe ScheduledEventType
modifyScheduledEventDataType = Maybe ScheduledEventType
msetype
, modifyScheduledEventDataStatus :: Maybe ScheduledEventStatus
modifyScheduledEventDataStatus = Maybe ScheduledEventStatus
msestat
, modifyScheduledEventDataImage :: Maybe CreateScheduledEventImage
modifyScheduledEventDataImage = Maybe CreateScheduledEventImage
mseimg
}
)
data ScheduledEventUser = ScheduledEventUser
{ ScheduledEventUser -> ScheduledEventId
scheduledEventUserEvent :: ScheduledEventId
, ScheduledEventUser -> User
scheduledEventUserUser :: User
, ScheduledEventUser -> Maybe GuildMember
scheduledEventUserGuildMember :: Maybe GuildMember
}
instance FromJSON ScheduledEventUser where
parseJSON :: Value -> Parser ScheduledEventUser
parseJSON = String
-> (Object -> Parser ScheduledEventUser)
-> Value
-> Parser ScheduledEventUser
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject
String
"ScheduledEventUser"
(\Object
v ->
ScheduledEventId -> User -> Maybe GuildMember -> ScheduledEventUser
ScheduledEventUser
(ScheduledEventId
-> User -> Maybe GuildMember -> ScheduledEventUser)
-> Parser ScheduledEventId
-> Parser (User -> Maybe GuildMember -> ScheduledEventUser)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser ScheduledEventId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"guild_scheduled_event_id"
Parser (User -> Maybe GuildMember -> ScheduledEventUser)
-> Parser User -> Parser (Maybe GuildMember -> ScheduledEventUser)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser User
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"user"
Parser (Maybe GuildMember -> ScheduledEventUser)
-> Parser (Maybe GuildMember) -> Parser ScheduledEventUser
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe GuildMember)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"member"
)