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