-- | Channel webhooks module Calamity.Types.Model.Channel.Webhook (Webhook (..)) where import Calamity.Internal.AesonThings import {-# SOURCE #-} Calamity.Types.Model.Channel import {-# SOURCE #-} 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 Webhook = Webhook { id :: Snowflake Webhook , type_ :: Integer , guildID :: Maybe (Snowflake Guild) , channelID :: Maybe (Snowflake Channel) , user :: Maybe (Snowflake User) , name :: Text , avatar :: Text , token :: Maybe Text } deriving (Eq, Show, Generic) deriving (TextShow) via TSG.FromGeneric Webhook deriving (FromJSON) via WithSpecialCases '["user" `ExtractFieldFrom` "id"] Webhook deriving (HasID Webhook) via HasIDField "id" Webhook