packages feed

calamity-0.1.26.0: Calamity/Types/Model/Guild/Overwrite.hs

-- | Permission overwrites
module Calamity.Types.Model.Guild.Overwrite (Overwrite (..)) where

import Calamity.Internal.AesonThings
import Calamity.Types.Model.Guild.Permissions
import Calamity.Types.Snowflake

import Data.Aeson

import GHC.Generics

import Control.DeepSeq (NFData)
import TextShow
import qualified TextShow.Generic as TSG

data Overwrite = Overwrite
  { id :: Snowflake Overwrite
  , type_ :: Int
  , allow :: Permissions
  , deny :: Permissions
  }
  deriving (Eq, Show, Generic, NFData)
  deriving (TextShow) via TSG.FromGeneric Overwrite
  deriving (ToJSON, FromJSON) via CalamityJSON Overwrite
  deriving (HasID Overwrite) via HasIDField "id" Overwrite