module Calamity.Types.Model.Guild.Role
( Role(..) ) where
import Calamity.Internal.AesonThings
import Calamity.Types.Snowflake
import Data.Aeson
import Data.Text.Lazy ( Text )
import Data.Word
import GHC.Generics
import TextShow
import qualified TextShow.Generic as TSG
data Role = Role
{ id :: Snowflake Role
, name :: Text
, color :: Word64
, hoist :: Bool
, position :: Int
, permissions :: Word64
, managed :: Bool
, mentionable :: Bool
}
deriving ( Eq, Show, Generic )
deriving ( TextShow ) via TSG.FromGeneric Role
deriving ( ToJSON, FromJSON ) via CalamityJSON Role
deriving ( HasID Role ) via HasIDField "id" Role