module Calamity.Types.Model.Presence.Activity
( Activity(..)
, ActivityType(..)
, ActivityTimestamps(..)
, ActivityParty(..)
, ActivityAssets(..)
, ActivitySecrets(..) ) where
import Calamity.Internal.AesonThings
import Calamity.Internal.Utils
import Calamity.Types.Snowflake
import Calamity.Types.UnixTimestamp
import Data.Aeson
import Data.Scientific
import Data.Text.Lazy ( Text )
import Data.Word
import GHC.Generics
import TextShow
import qualified TextShow.Generic as TSG
data ActivityType
= Game
| Streaming
| Listening
deriving ( ActivityType -> ActivityType -> Bool
(ActivityType -> ActivityType -> Bool)
-> (ActivityType -> ActivityType -> Bool) -> Eq ActivityType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ActivityType -> ActivityType -> Bool
$c/= :: ActivityType -> ActivityType -> Bool
== :: ActivityType -> ActivityType -> Bool
$c== :: ActivityType -> ActivityType -> Bool
Eq, (forall x. ActivityType -> Rep ActivityType x)
-> (forall x. Rep ActivityType x -> ActivityType)
-> Generic ActivityType
forall x. Rep ActivityType x -> ActivityType
forall x. ActivityType -> Rep ActivityType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ActivityType x -> ActivityType
$cfrom :: forall x. ActivityType -> Rep ActivityType x
Generic, Int -> ActivityType -> ShowS
[ActivityType] -> ShowS
ActivityType -> String
(Int -> ActivityType -> ShowS)
-> (ActivityType -> String)
-> ([ActivityType] -> ShowS)
-> Show ActivityType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ActivityType] -> ShowS
$cshowList :: [ActivityType] -> ShowS
show :: ActivityType -> String
$cshow :: ActivityType -> String
showsPrec :: Int -> ActivityType -> ShowS
$cshowsPrec :: Int -> ActivityType -> ShowS
Show, Int -> ActivityType
ActivityType -> Int
ActivityType -> [ActivityType]
ActivityType -> ActivityType
ActivityType -> ActivityType -> [ActivityType]
ActivityType -> ActivityType -> ActivityType -> [ActivityType]
(ActivityType -> ActivityType)
-> (ActivityType -> ActivityType)
-> (Int -> ActivityType)
-> (ActivityType -> Int)
-> (ActivityType -> [ActivityType])
-> (ActivityType -> ActivityType -> [ActivityType])
-> (ActivityType -> ActivityType -> [ActivityType])
-> (ActivityType -> ActivityType -> ActivityType -> [ActivityType])
-> Enum ActivityType
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
enumFromThenTo :: ActivityType -> ActivityType -> ActivityType -> [ActivityType]
$cenumFromThenTo :: ActivityType -> ActivityType -> ActivityType -> [ActivityType]
enumFromTo :: ActivityType -> ActivityType -> [ActivityType]
$cenumFromTo :: ActivityType -> ActivityType -> [ActivityType]
enumFromThen :: ActivityType -> ActivityType -> [ActivityType]
$cenumFromThen :: ActivityType -> ActivityType -> [ActivityType]
enumFrom :: ActivityType -> [ActivityType]
$cenumFrom :: ActivityType -> [ActivityType]
fromEnum :: ActivityType -> Int
$cfromEnum :: ActivityType -> Int
toEnum :: Int -> ActivityType
$ctoEnum :: Int -> ActivityType
pred :: ActivityType -> ActivityType
$cpred :: ActivityType -> ActivityType
succ :: ActivityType -> ActivityType
$csucc :: ActivityType -> ActivityType
Enum )
deriving ( Int -> ActivityType -> Builder
Int -> ActivityType -> Text
Int -> ActivityType -> Text
[ActivityType] -> Builder
[ActivityType] -> Text
[ActivityType] -> Text
ActivityType -> Builder
ActivityType -> Text
ActivityType -> Text
(Int -> ActivityType -> Builder)
-> (ActivityType -> Builder)
-> ([ActivityType] -> Builder)
-> (Int -> ActivityType -> Text)
-> (ActivityType -> Text)
-> ([ActivityType] -> Text)
-> (Int -> ActivityType -> Text)
-> (ActivityType -> Text)
-> ([ActivityType] -> Text)
-> TextShow ActivityType
forall a.
(Int -> a -> Builder)
-> (a -> Builder)
-> ([a] -> Builder)
-> (Int -> a -> Text)
-> (a -> Text)
-> ([a] -> Text)
-> (Int -> a -> Text)
-> (a -> Text)
-> ([a] -> Text)
-> TextShow a
showtlList :: [ActivityType] -> Text
$cshowtlList :: [ActivityType] -> Text
showtl :: ActivityType -> Text
$cshowtl :: ActivityType -> Text
showtlPrec :: Int -> ActivityType -> Text
$cshowtlPrec :: Int -> ActivityType -> Text
showtList :: [ActivityType] -> Text
$cshowtList :: [ActivityType] -> Text
showt :: ActivityType -> Text
$cshowt :: ActivityType -> Text
showtPrec :: Int -> ActivityType -> Text
$cshowtPrec :: Int -> ActivityType -> Text
showbList :: [ActivityType] -> Builder
$cshowbList :: [ActivityType] -> Builder
showb :: ActivityType -> Builder
$cshowb :: ActivityType -> Builder
showbPrec :: Int -> ActivityType -> Builder
$cshowbPrec :: Int -> ActivityType -> Builder
TextShow ) via TSG.FromGeneric ActivityType
instance ToJSON ActivityType where
toJSON :: ActivityType -> Value
toJSON t :: ActivityType
t = Scientific -> Value
Number (Scientific -> Value) -> Scientific -> Value
forall a b. (a -> b) -> a -> b
$ Int -> Scientific
forall a b. (Integral a, Num b) => a -> b
fromIntegral (ActivityType -> Int
forall a. Enum a => a -> Int
fromEnum ActivityType
t)
instance FromJSON ActivityType where
parseJSON :: Value -> Parser ActivityType
parseJSON = String
-> (Scientific -> Parser ActivityType)
-> Value
-> Parser ActivityType
forall a. String -> (Scientific -> Parser a) -> Value -> Parser a
withScientific "ActivityType" ((Scientific -> Parser ActivityType)
-> Value -> Parser ActivityType)
-> (Scientific -> Parser ActivityType)
-> Value
-> Parser ActivityType
forall a b. (a -> b) -> a -> b
$ \n :: Scientific
n -> case Scientific -> Maybe Int
forall i. (Integral i, Bounded i) => Scientific -> Maybe i
toBoundedInteger Scientific
n of
Just v :: Int
v -> ActivityType -> Parser ActivityType
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ActivityType -> Parser ActivityType)
-> ActivityType -> Parser ActivityType
forall a b. (a -> b) -> a -> b
$ Int -> ActivityType
forall a. Enum a => Int -> a
toEnum Int
v
Nothing -> String -> Parser ActivityType
forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String -> Parser ActivityType) -> String -> Parser ActivityType
forall a b. (a -> b) -> a -> b
$ "Invalid ActivityType: " String -> ShowS
forall a. Semigroup a => a -> a -> a
<> Scientific -> String
forall a. Show a => a -> String
show Scientific
n
data Activity = Activity
{ Activity -> Text
name :: Text
, Activity -> ActivityType
type_ :: ActivityType
, Activity -> Maybe Text
url :: Maybe Text
, Activity -> Maybe ActivityTimestamps
timestamps :: Maybe ActivityTimestamps
, Activity -> Maybe (Snowflake ())
applicationID :: Maybe (Snowflake ())
, Activity -> Maybe Text
details :: Maybe Text
, Activity -> Maybe Text
state :: Maybe Text
, Activity -> Maybe ActivityParty
party :: Maybe ActivityParty
, Activity -> Maybe ActivityAssets
assets :: Maybe ActivityAssets
, Activity -> Maybe ActivitySecrets
secrets :: Maybe ActivitySecrets
, Activity -> Maybe Bool
instance_ :: Maybe Bool
, Activity -> Maybe Word64
flags :: Maybe Word64
}
deriving ( Activity -> Activity -> Bool
(Activity -> Activity -> Bool)
-> (Activity -> Activity -> Bool) -> Eq Activity
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Activity -> Activity -> Bool
$c/= :: Activity -> Activity -> Bool
== :: Activity -> Activity -> Bool
$c== :: Activity -> Activity -> Bool
Eq, Int -> Activity -> ShowS
[Activity] -> ShowS
Activity -> String
(Int -> Activity -> ShowS)
-> (Activity -> String) -> ([Activity] -> ShowS) -> Show Activity
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Activity] -> ShowS
$cshowList :: [Activity] -> ShowS
show :: Activity -> String
$cshow :: Activity -> String
showsPrec :: Int -> Activity -> ShowS
$cshowsPrec :: Int -> Activity -> ShowS
Show, (forall x. Activity -> Rep Activity x)
-> (forall x. Rep Activity x -> Activity) -> Generic Activity
forall x. Rep Activity x -> Activity
forall x. Activity -> Rep Activity x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Activity x -> Activity
$cfrom :: forall x. Activity -> Rep Activity x
Generic )
deriving ( Int -> Activity -> Builder
Int -> Activity -> Text
Int -> Activity -> Text
[Activity] -> Builder
[Activity] -> Text
[Activity] -> Text
Activity -> Builder
Activity -> Text
Activity -> Text
(Int -> Activity -> Builder)
-> (Activity -> Builder)
-> ([Activity] -> Builder)
-> (Int -> Activity -> Text)
-> (Activity -> Text)
-> ([Activity] -> Text)
-> (Int -> Activity -> Text)
-> (Activity -> Text)
-> ([Activity] -> Text)
-> TextShow Activity
forall a.
(Int -> a -> Builder)
-> (a -> Builder)
-> ([a] -> Builder)
-> (Int -> a -> Text)
-> (a -> Text)
-> ([a] -> Text)
-> (Int -> a -> Text)
-> (a -> Text)
-> ([a] -> Text)
-> TextShow a
showtlList :: [Activity] -> Text
$cshowtlList :: [Activity] -> Text
showtl :: Activity -> Text
$cshowtl :: Activity -> Text
showtlPrec :: Int -> Activity -> Text
$cshowtlPrec :: Int -> Activity -> Text
showtList :: [Activity] -> Text
$cshowtList :: [Activity] -> Text
showt :: Activity -> Text
$cshowt :: Activity -> Text
showtPrec :: Int -> Activity -> Text
$cshowtPrec :: Int -> Activity -> Text
showbList :: [Activity] -> Builder
$cshowbList :: [Activity] -> Builder
showb :: Activity -> Builder
$cshowb :: Activity -> Builder
showbPrec :: Int -> Activity -> Builder
$cshowbPrec :: Int -> Activity -> Builder
TextShow ) via TSG.FromGeneric Activity
deriving ( [Activity] -> Encoding
[Activity] -> Value
Activity -> Encoding
Activity -> Value
(Activity -> Value)
-> (Activity -> Encoding)
-> ([Activity] -> Value)
-> ([Activity] -> Encoding)
-> ToJSON Activity
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [Activity] -> Encoding
$ctoEncodingList :: [Activity] -> Encoding
toJSONList :: [Activity] -> Value
$ctoJSONList :: [Activity] -> Value
toEncoding :: Activity -> Encoding
$ctoEncoding :: Activity -> Encoding
toJSON :: Activity -> Value
$ctoJSON :: Activity -> Value
ToJSON, Value -> Parser [Activity]
Value -> Parser Activity
(Value -> Parser Activity)
-> (Value -> Parser [Activity]) -> FromJSON Activity
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [Activity]
$cparseJSONList :: Value -> Parser [Activity]
parseJSON :: Value -> Parser Activity
$cparseJSON :: Value -> Parser Activity
FromJSON ) via CalamityJSON Activity
data ActivityTimestamps = ActivityTimestamps
{ ActivityTimestamps -> Maybe UnixTimestamp
start :: Maybe UnixTimestamp
, ActivityTimestamps -> Maybe UnixTimestamp
end :: Maybe UnixTimestamp
}
deriving ( ActivityTimestamps -> ActivityTimestamps -> Bool
(ActivityTimestamps -> ActivityTimestamps -> Bool)
-> (ActivityTimestamps -> ActivityTimestamps -> Bool)
-> Eq ActivityTimestamps
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ActivityTimestamps -> ActivityTimestamps -> Bool
$c/= :: ActivityTimestamps -> ActivityTimestamps -> Bool
== :: ActivityTimestamps -> ActivityTimestamps -> Bool
$c== :: ActivityTimestamps -> ActivityTimestamps -> Bool
Eq, Int -> ActivityTimestamps -> ShowS
[ActivityTimestamps] -> ShowS
ActivityTimestamps -> String
(Int -> ActivityTimestamps -> ShowS)
-> (ActivityTimestamps -> String)
-> ([ActivityTimestamps] -> ShowS)
-> Show ActivityTimestamps
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ActivityTimestamps] -> ShowS
$cshowList :: [ActivityTimestamps] -> ShowS
show :: ActivityTimestamps -> String
$cshow :: ActivityTimestamps -> String
showsPrec :: Int -> ActivityTimestamps -> ShowS
$cshowsPrec :: Int -> ActivityTimestamps -> ShowS
Show, (forall x. ActivityTimestamps -> Rep ActivityTimestamps x)
-> (forall x. Rep ActivityTimestamps x -> ActivityTimestamps)
-> Generic ActivityTimestamps
forall x. Rep ActivityTimestamps x -> ActivityTimestamps
forall x. ActivityTimestamps -> Rep ActivityTimestamps x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ActivityTimestamps x -> ActivityTimestamps
$cfrom :: forall x. ActivityTimestamps -> Rep ActivityTimestamps x
Generic )
deriving ( Int -> ActivityTimestamps -> Builder
Int -> ActivityTimestamps -> Text
Int -> ActivityTimestamps -> Text
[ActivityTimestamps] -> Builder
[ActivityTimestamps] -> Text
[ActivityTimestamps] -> Text
ActivityTimestamps -> Builder
ActivityTimestamps -> Text
ActivityTimestamps -> Text
(Int -> ActivityTimestamps -> Builder)
-> (ActivityTimestamps -> Builder)
-> ([ActivityTimestamps] -> Builder)
-> (Int -> ActivityTimestamps -> Text)
-> (ActivityTimestamps -> Text)
-> ([ActivityTimestamps] -> Text)
-> (Int -> ActivityTimestamps -> Text)
-> (ActivityTimestamps -> Text)
-> ([ActivityTimestamps] -> Text)
-> TextShow ActivityTimestamps
forall a.
(Int -> a -> Builder)
-> (a -> Builder)
-> ([a] -> Builder)
-> (Int -> a -> Text)
-> (a -> Text)
-> ([a] -> Text)
-> (Int -> a -> Text)
-> (a -> Text)
-> ([a] -> Text)
-> TextShow a
showtlList :: [ActivityTimestamps] -> Text
$cshowtlList :: [ActivityTimestamps] -> Text
showtl :: ActivityTimestamps -> Text
$cshowtl :: ActivityTimestamps -> Text
showtlPrec :: Int -> ActivityTimestamps -> Text
$cshowtlPrec :: Int -> ActivityTimestamps -> Text
showtList :: [ActivityTimestamps] -> Text
$cshowtList :: [ActivityTimestamps] -> Text
showt :: ActivityTimestamps -> Text
$cshowt :: ActivityTimestamps -> Text
showtPrec :: Int -> ActivityTimestamps -> Text
$cshowtPrec :: Int -> ActivityTimestamps -> Text
showbList :: [ActivityTimestamps] -> Builder
$cshowbList :: [ActivityTimestamps] -> Builder
showb :: ActivityTimestamps -> Builder
$cshowb :: ActivityTimestamps -> Builder
showbPrec :: Int -> ActivityTimestamps -> Builder
$cshowbPrec :: Int -> ActivityTimestamps -> Builder
TextShow ) via TSG.FromGeneric ActivityTimestamps
instance ToJSON ActivityTimestamps where
toEncoding :: ActivityTimestamps -> Encoding
toEncoding ActivityTimestamps { Maybe UnixTimestamp
start :: Maybe UnixTimestamp
$sel:start:ActivityTimestamps :: ActivityTimestamps -> Maybe UnixTimestamp
start, Maybe UnixTimestamp
end :: Maybe UnixTimestamp
$sel:end:ActivityTimestamps :: ActivityTimestamps -> Maybe UnixTimestamp
end } = Series -> Encoding
pairs
("start" Text -> Maybe Word64 -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= (UnixTimestamp -> Word64
unixToMilliseconds (UnixTimestamp -> Word64) -> Maybe UnixTimestamp -> Maybe Word64
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe UnixTimestamp
start) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
<> "end" Text -> Maybe Word64 -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
.= (UnixTimestamp -> Word64
unixToMilliseconds (UnixTimestamp -> Word64) -> Maybe UnixTimestamp -> Maybe Word64
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe UnixTimestamp
end))
instance FromJSON ActivityTimestamps where
parseJSON :: Value -> Parser ActivityTimestamps
parseJSON = String
-> (Object -> Parser ActivityTimestamps)
-> Value
-> Parser ActivityTimestamps
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject "ActivityTimestamps" ((Object -> Parser ActivityTimestamps)
-> Value -> Parser ActivityTimestamps)
-> (Object -> Parser ActivityTimestamps)
-> Value
-> Parser ActivityTimestamps
forall a b. (a -> b) -> a -> b
$ \v :: Object
v -> do
Maybe UnixTimestamp
start <- Word64 -> UnixTimestamp
millisecondsToUnix (Word64 -> UnixTimestamp)
-> Parser (Maybe Word64) -> Parser (Maybe UnixTimestamp)
forall (f :: * -> *) (g :: * -> *) a b.
(Functor f, Functor g) =>
(a -> b) -> f (g a) -> f (g b)
<<$>> Object
v Object -> Text -> Parser (Maybe Word64)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? "start"
Maybe UnixTimestamp
end <- Word64 -> UnixTimestamp
millisecondsToUnix (Word64 -> UnixTimestamp)
-> Parser (Maybe Word64) -> Parser (Maybe UnixTimestamp)
forall (f :: * -> *) (g :: * -> *) a b.
(Functor f, Functor g) =>
(a -> b) -> f (g a) -> f (g b)
<<$>> Object
v Object -> Text -> Parser (Maybe Word64)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
.:? "end"
ActivityTimestamps -> Parser ActivityTimestamps
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ActivityTimestamps -> Parser ActivityTimestamps)
-> ActivityTimestamps -> Parser ActivityTimestamps
forall a b. (a -> b) -> a -> b
$ Maybe UnixTimestamp -> Maybe UnixTimestamp -> ActivityTimestamps
ActivityTimestamps Maybe UnixTimestamp
start Maybe UnixTimestamp
end
data ActivityParty = ActivityParty
{ ActivityParty -> Maybe Text
id :: Maybe Text
, ActivityParty -> Maybe (Int, Int)
size :: Maybe (Int, Int)
}
deriving ( ActivityParty -> ActivityParty -> Bool
(ActivityParty -> ActivityParty -> Bool)
-> (ActivityParty -> ActivityParty -> Bool) -> Eq ActivityParty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ActivityParty -> ActivityParty -> Bool
$c/= :: ActivityParty -> ActivityParty -> Bool
== :: ActivityParty -> ActivityParty -> Bool
$c== :: ActivityParty -> ActivityParty -> Bool
Eq, Int -> ActivityParty -> ShowS
[ActivityParty] -> ShowS
ActivityParty -> String
(Int -> ActivityParty -> ShowS)
-> (ActivityParty -> String)
-> ([ActivityParty] -> ShowS)
-> Show ActivityParty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ActivityParty] -> ShowS
$cshowList :: [ActivityParty] -> ShowS
show :: ActivityParty -> String
$cshow :: ActivityParty -> String
showsPrec :: Int -> ActivityParty -> ShowS
$cshowsPrec :: Int -> ActivityParty -> ShowS
Show, (forall x. ActivityParty -> Rep ActivityParty x)
-> (forall x. Rep ActivityParty x -> ActivityParty)
-> Generic ActivityParty
forall x. Rep ActivityParty x -> ActivityParty
forall x. ActivityParty -> Rep ActivityParty x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ActivityParty x -> ActivityParty
$cfrom :: forall x. ActivityParty -> Rep ActivityParty x
Generic )
deriving ( Int -> ActivityParty -> Builder
Int -> ActivityParty -> Text
Int -> ActivityParty -> Text
[ActivityParty] -> Builder
[ActivityParty] -> Text
[ActivityParty] -> Text
ActivityParty -> Builder
ActivityParty -> Text
ActivityParty -> Text
(Int -> ActivityParty -> Builder)
-> (ActivityParty -> Builder)
-> ([ActivityParty] -> Builder)
-> (Int -> ActivityParty -> Text)
-> (ActivityParty -> Text)
-> ([ActivityParty] -> Text)
-> (Int -> ActivityParty -> Text)
-> (ActivityParty -> Text)
-> ([ActivityParty] -> Text)
-> TextShow ActivityParty
forall a.
(Int -> a -> Builder)
-> (a -> Builder)
-> ([a] -> Builder)
-> (Int -> a -> Text)
-> (a -> Text)
-> ([a] -> Text)
-> (Int -> a -> Text)
-> (a -> Text)
-> ([a] -> Text)
-> TextShow a
showtlList :: [ActivityParty] -> Text
$cshowtlList :: [ActivityParty] -> Text
showtl :: ActivityParty -> Text
$cshowtl :: ActivityParty -> Text
showtlPrec :: Int -> ActivityParty -> Text
$cshowtlPrec :: Int -> ActivityParty -> Text
showtList :: [ActivityParty] -> Text
$cshowtList :: [ActivityParty] -> Text
showt :: ActivityParty -> Text
$cshowt :: ActivityParty -> Text
showtPrec :: Int -> ActivityParty -> Text
$cshowtPrec :: Int -> ActivityParty -> Text
showbList :: [ActivityParty] -> Builder
$cshowbList :: [ActivityParty] -> Builder
showb :: ActivityParty -> Builder
$cshowb :: ActivityParty -> Builder
showbPrec :: Int -> ActivityParty -> Builder
$cshowbPrec :: Int -> ActivityParty -> Builder
TextShow ) via TSG.FromGeneric ActivityParty
deriving ( [ActivityParty] -> Encoding
[ActivityParty] -> Value
ActivityParty -> Encoding
ActivityParty -> Value
(ActivityParty -> Value)
-> (ActivityParty -> Encoding)
-> ([ActivityParty] -> Value)
-> ([ActivityParty] -> Encoding)
-> ToJSON ActivityParty
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ActivityParty] -> Encoding
$ctoEncodingList :: [ActivityParty] -> Encoding
toJSONList :: [ActivityParty] -> Value
$ctoJSONList :: [ActivityParty] -> Value
toEncoding :: ActivityParty -> Encoding
$ctoEncoding :: ActivityParty -> Encoding
toJSON :: ActivityParty -> Value
$ctoJSON :: ActivityParty -> Value
ToJSON, Value -> Parser [ActivityParty]
Value -> Parser ActivityParty
(Value -> Parser ActivityParty)
-> (Value -> Parser [ActivityParty]) -> FromJSON ActivityParty
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [ActivityParty]
$cparseJSONList :: Value -> Parser [ActivityParty]
parseJSON :: Value -> Parser ActivityParty
$cparseJSON :: Value -> Parser ActivityParty
FromJSON ) via CalamityJSON ActivityParty
data ActivityAssets = ActivityAssets
{ ActivityAssets -> Maybe Text
largeImage :: Maybe Text
, ActivityAssets -> Maybe Text
largeText :: Maybe Text
, ActivityAssets -> Maybe Text
smallImage :: Maybe Text
, ActivityAssets -> Maybe Text
smallText :: Maybe Text
}
deriving ( ActivityAssets -> ActivityAssets -> Bool
(ActivityAssets -> ActivityAssets -> Bool)
-> (ActivityAssets -> ActivityAssets -> Bool) -> Eq ActivityAssets
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ActivityAssets -> ActivityAssets -> Bool
$c/= :: ActivityAssets -> ActivityAssets -> Bool
== :: ActivityAssets -> ActivityAssets -> Bool
$c== :: ActivityAssets -> ActivityAssets -> Bool
Eq, Int -> ActivityAssets -> ShowS
[ActivityAssets] -> ShowS
ActivityAssets -> String
(Int -> ActivityAssets -> ShowS)
-> (ActivityAssets -> String)
-> ([ActivityAssets] -> ShowS)
-> Show ActivityAssets
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ActivityAssets] -> ShowS
$cshowList :: [ActivityAssets] -> ShowS
show :: ActivityAssets -> String
$cshow :: ActivityAssets -> String
showsPrec :: Int -> ActivityAssets -> ShowS
$cshowsPrec :: Int -> ActivityAssets -> ShowS
Show, (forall x. ActivityAssets -> Rep ActivityAssets x)
-> (forall x. Rep ActivityAssets x -> ActivityAssets)
-> Generic ActivityAssets
forall x. Rep ActivityAssets x -> ActivityAssets
forall x. ActivityAssets -> Rep ActivityAssets x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ActivityAssets x -> ActivityAssets
$cfrom :: forall x. ActivityAssets -> Rep ActivityAssets x
Generic )
deriving ( Int -> ActivityAssets -> Builder
Int -> ActivityAssets -> Text
Int -> ActivityAssets -> Text
[ActivityAssets] -> Builder
[ActivityAssets] -> Text
[ActivityAssets] -> Text
ActivityAssets -> Builder
ActivityAssets -> Text
ActivityAssets -> Text
(Int -> ActivityAssets -> Builder)
-> (ActivityAssets -> Builder)
-> ([ActivityAssets] -> Builder)
-> (Int -> ActivityAssets -> Text)
-> (ActivityAssets -> Text)
-> ([ActivityAssets] -> Text)
-> (Int -> ActivityAssets -> Text)
-> (ActivityAssets -> Text)
-> ([ActivityAssets] -> Text)
-> TextShow ActivityAssets
forall a.
(Int -> a -> Builder)
-> (a -> Builder)
-> ([a] -> Builder)
-> (Int -> a -> Text)
-> (a -> Text)
-> ([a] -> Text)
-> (Int -> a -> Text)
-> (a -> Text)
-> ([a] -> Text)
-> TextShow a
showtlList :: [ActivityAssets] -> Text
$cshowtlList :: [ActivityAssets] -> Text
showtl :: ActivityAssets -> Text
$cshowtl :: ActivityAssets -> Text
showtlPrec :: Int -> ActivityAssets -> Text
$cshowtlPrec :: Int -> ActivityAssets -> Text
showtList :: [ActivityAssets] -> Text
$cshowtList :: [ActivityAssets] -> Text
showt :: ActivityAssets -> Text
$cshowt :: ActivityAssets -> Text
showtPrec :: Int -> ActivityAssets -> Text
$cshowtPrec :: Int -> ActivityAssets -> Text
showbList :: [ActivityAssets] -> Builder
$cshowbList :: [ActivityAssets] -> Builder
showb :: ActivityAssets -> Builder
$cshowb :: ActivityAssets -> Builder
showbPrec :: Int -> ActivityAssets -> Builder
$cshowbPrec :: Int -> ActivityAssets -> Builder
TextShow ) via TSG.FromGeneric ActivityAssets
deriving ( [ActivityAssets] -> Encoding
[ActivityAssets] -> Value
ActivityAssets -> Encoding
ActivityAssets -> Value
(ActivityAssets -> Value)
-> (ActivityAssets -> Encoding)
-> ([ActivityAssets] -> Value)
-> ([ActivityAssets] -> Encoding)
-> ToJSON ActivityAssets
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ActivityAssets] -> Encoding
$ctoEncodingList :: [ActivityAssets] -> Encoding
toJSONList :: [ActivityAssets] -> Value
$ctoJSONList :: [ActivityAssets] -> Value
toEncoding :: ActivityAssets -> Encoding
$ctoEncoding :: ActivityAssets -> Encoding
toJSON :: ActivityAssets -> Value
$ctoJSON :: ActivityAssets -> Value
ToJSON, Value -> Parser [ActivityAssets]
Value -> Parser ActivityAssets
(Value -> Parser ActivityAssets)
-> (Value -> Parser [ActivityAssets]) -> FromJSON ActivityAssets
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [ActivityAssets]
$cparseJSONList :: Value -> Parser [ActivityAssets]
parseJSON :: Value -> Parser ActivityAssets
$cparseJSON :: Value -> Parser ActivityAssets
FromJSON ) via CalamityJSON ActivityAssets
data ActivitySecrets = ActivitySecrets
{ ActivitySecrets -> Maybe Text
join :: Maybe Text
, ActivitySecrets -> Maybe Text
spectate :: Maybe Text
, ActivitySecrets -> Maybe Text
match :: Maybe Text
}
deriving ( ActivitySecrets -> ActivitySecrets -> Bool
(ActivitySecrets -> ActivitySecrets -> Bool)
-> (ActivitySecrets -> ActivitySecrets -> Bool)
-> Eq ActivitySecrets
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ActivitySecrets -> ActivitySecrets -> Bool
$c/= :: ActivitySecrets -> ActivitySecrets -> Bool
== :: ActivitySecrets -> ActivitySecrets -> Bool
$c== :: ActivitySecrets -> ActivitySecrets -> Bool
Eq, Int -> ActivitySecrets -> ShowS
[ActivitySecrets] -> ShowS
ActivitySecrets -> String
(Int -> ActivitySecrets -> ShowS)
-> (ActivitySecrets -> String)
-> ([ActivitySecrets] -> ShowS)
-> Show ActivitySecrets
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ActivitySecrets] -> ShowS
$cshowList :: [ActivitySecrets] -> ShowS
show :: ActivitySecrets -> String
$cshow :: ActivitySecrets -> String
showsPrec :: Int -> ActivitySecrets -> ShowS
$cshowsPrec :: Int -> ActivitySecrets -> ShowS
Show, (forall x. ActivitySecrets -> Rep ActivitySecrets x)
-> (forall x. Rep ActivitySecrets x -> ActivitySecrets)
-> Generic ActivitySecrets
forall x. Rep ActivitySecrets x -> ActivitySecrets
forall x. ActivitySecrets -> Rep ActivitySecrets x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ActivitySecrets x -> ActivitySecrets
$cfrom :: forall x. ActivitySecrets -> Rep ActivitySecrets x
Generic )
deriving ( Int -> ActivitySecrets -> Builder
Int -> ActivitySecrets -> Text
Int -> ActivitySecrets -> Text
[ActivitySecrets] -> Builder
[ActivitySecrets] -> Text
[ActivitySecrets] -> Text
ActivitySecrets -> Builder
ActivitySecrets -> Text
ActivitySecrets -> Text
(Int -> ActivitySecrets -> Builder)
-> (ActivitySecrets -> Builder)
-> ([ActivitySecrets] -> Builder)
-> (Int -> ActivitySecrets -> Text)
-> (ActivitySecrets -> Text)
-> ([ActivitySecrets] -> Text)
-> (Int -> ActivitySecrets -> Text)
-> (ActivitySecrets -> Text)
-> ([ActivitySecrets] -> Text)
-> TextShow ActivitySecrets
forall a.
(Int -> a -> Builder)
-> (a -> Builder)
-> ([a] -> Builder)
-> (Int -> a -> Text)
-> (a -> Text)
-> ([a] -> Text)
-> (Int -> a -> Text)
-> (a -> Text)
-> ([a] -> Text)
-> TextShow a
showtlList :: [ActivitySecrets] -> Text
$cshowtlList :: [ActivitySecrets] -> Text
showtl :: ActivitySecrets -> Text
$cshowtl :: ActivitySecrets -> Text
showtlPrec :: Int -> ActivitySecrets -> Text
$cshowtlPrec :: Int -> ActivitySecrets -> Text
showtList :: [ActivitySecrets] -> Text
$cshowtList :: [ActivitySecrets] -> Text
showt :: ActivitySecrets -> Text
$cshowt :: ActivitySecrets -> Text
showtPrec :: Int -> ActivitySecrets -> Text
$cshowtPrec :: Int -> ActivitySecrets -> Text
showbList :: [ActivitySecrets] -> Builder
$cshowbList :: [ActivitySecrets] -> Builder
showb :: ActivitySecrets -> Builder
$cshowb :: ActivitySecrets -> Builder
showbPrec :: Int -> ActivitySecrets -> Builder
$cshowbPrec :: Int -> ActivitySecrets -> Builder
TextShow ) via TSG.FromGeneric ActivitySecrets
deriving ( [ActivitySecrets] -> Encoding
[ActivitySecrets] -> Value
ActivitySecrets -> Encoding
ActivitySecrets -> Value
(ActivitySecrets -> Value)
-> (ActivitySecrets -> Encoding)
-> ([ActivitySecrets] -> Value)
-> ([ActivitySecrets] -> Encoding)
-> ToJSON ActivitySecrets
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ActivitySecrets] -> Encoding
$ctoEncodingList :: [ActivitySecrets] -> Encoding
toJSONList :: [ActivitySecrets] -> Value
$ctoJSONList :: [ActivitySecrets] -> Value
toEncoding :: ActivitySecrets -> Encoding
$ctoEncoding :: ActivitySecrets -> Encoding
toJSON :: ActivitySecrets -> Value
$ctoJSON :: ActivitySecrets -> Value
ToJSON, Value -> Parser [ActivitySecrets]
Value -> Parser ActivitySecrets
(Value -> Parser ActivitySecrets)
-> (Value -> Parser [ActivitySecrets]) -> FromJSON ActivitySecrets
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [ActivitySecrets]
$cparseJSONList :: Value -> Parser [ActivitySecrets]
parseJSON :: Value -> Parser ActivitySecrets
$cparseJSON :: Value -> Parser ActivitySecrets
FromJSON ) via CalamityJSON ActivitySecrets