calamity-0.2.0.0: Calamity/Types/Model/Guild/Invite.hs
-- | Guild invites
module Calamity.Types.Model.Guild.Invite (Invite (..)) where
import Calamity.Internal.AesonThings
import Calamity.Types.Model.Channel
import Calamity.Types.Model.Guild.Guild
import Calamity.Types.Model.User
import Calamity.Types.Snowflake
import Data.Aeson
import Data.Text (Text)
import GHC.Generics
import TextShow
import qualified TextShow.Generic as TSG
data Invite = Invite
{ code :: Text
, guild :: Maybe (Partial Guild)
, channel :: Maybe (Partial Channel)
, targetUser :: Maybe (Snowflake User)
, targetUserType :: Maybe Int
, approximatePresenceCount :: Maybe Int
, approximateMemberCount :: Maybe Int
}
deriving (Eq, Show, Generic)
deriving (TextShow) via TSG.FromGeneric Invite
deriving (ToJSON) via CalamityJSON Invite
deriving (FromJSON) via WithSpecialCases '["targetUser" `ExtractFieldFrom` "id"] Invite