-- | Voice regions
module Calamity.Types.Model.Voice.VoiceRegion (VoiceRegion (..)) where

import Calamity.Internal.AesonThings
import Calamity.Types.Snowflake

import Data.Aeson
import Data.Text (Text)

import GHC.Generics

import TextShow
import qualified TextShow.Generic as TSG

data VoiceRegion = VoiceRegion
  { VoiceRegion -> Snowflake VoiceRegion
id :: Snowflake VoiceRegion
  , VoiceRegion -> Text
name :: Text
  , VoiceRegion -> Bool
vip :: Bool
  , VoiceRegion -> Bool
optimal :: Bool
  , VoiceRegion -> Bool
deprecated :: Bool
  , VoiceRegion -> Bool
custom :: Bool
  }
  deriving (Int -> VoiceRegion -> ShowS
[VoiceRegion] -> ShowS
VoiceRegion -> String
(Int -> VoiceRegion -> ShowS)
-> (VoiceRegion -> String)
-> ([VoiceRegion] -> ShowS)
-> Show VoiceRegion
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [VoiceRegion] -> ShowS
$cshowList :: [VoiceRegion] -> ShowS
show :: VoiceRegion -> String
$cshow :: VoiceRegion -> String
showsPrec :: Int -> VoiceRegion -> ShowS
$cshowsPrec :: Int -> VoiceRegion -> ShowS
Show, VoiceRegion -> VoiceRegion -> Bool
(VoiceRegion -> VoiceRegion -> Bool)
-> (VoiceRegion -> VoiceRegion -> Bool) -> Eq VoiceRegion
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VoiceRegion -> VoiceRegion -> Bool
$c/= :: VoiceRegion -> VoiceRegion -> Bool
== :: VoiceRegion -> VoiceRegion -> Bool
$c== :: VoiceRegion -> VoiceRegion -> Bool
Eq, (forall x. VoiceRegion -> Rep VoiceRegion x)
-> (forall x. Rep VoiceRegion x -> VoiceRegion)
-> Generic VoiceRegion
forall x. Rep VoiceRegion x -> VoiceRegion
forall x. VoiceRegion -> Rep VoiceRegion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep VoiceRegion x -> VoiceRegion
$cfrom :: forall x. VoiceRegion -> Rep VoiceRegion x
Generic)
  deriving (Int -> VoiceRegion -> Builder
Int -> VoiceRegion -> Text
Int -> VoiceRegion -> Text
[VoiceRegion] -> Builder
[VoiceRegion] -> Text
[VoiceRegion] -> Text
VoiceRegion -> Builder
VoiceRegion -> Text
VoiceRegion -> Text
(Int -> VoiceRegion -> Builder)
-> (VoiceRegion -> Builder)
-> ([VoiceRegion] -> Builder)
-> (Int -> VoiceRegion -> Text)
-> (VoiceRegion -> Text)
-> ([VoiceRegion] -> Text)
-> (Int -> VoiceRegion -> Text)
-> (VoiceRegion -> Text)
-> ([VoiceRegion] -> Text)
-> TextShow VoiceRegion
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 :: [VoiceRegion] -> Text
$cshowtlList :: [VoiceRegion] -> Text
showtl :: VoiceRegion -> Text
$cshowtl :: VoiceRegion -> Text
showtlPrec :: Int -> VoiceRegion -> Text
$cshowtlPrec :: Int -> VoiceRegion -> Text
showtList :: [VoiceRegion] -> Text
$cshowtList :: [VoiceRegion] -> Text
showt :: VoiceRegion -> Text
$cshowt :: VoiceRegion -> Text
showtPrec :: Int -> VoiceRegion -> Text
$cshowtPrec :: Int -> VoiceRegion -> Text
showbList :: [VoiceRegion] -> Builder
$cshowbList :: [VoiceRegion] -> Builder
showb :: VoiceRegion -> Builder
$cshowb :: VoiceRegion -> Builder
showbPrec :: Int -> VoiceRegion -> Builder
$cshowbPrec :: Int -> VoiceRegion -> Builder
TextShow) via TSG.FromGeneric VoiceRegion
  deriving ([VoiceRegion] -> Encoding
[VoiceRegion] -> Value
VoiceRegion -> Encoding
VoiceRegion -> Value
(VoiceRegion -> Value)
-> (VoiceRegion -> Encoding)
-> ([VoiceRegion] -> Value)
-> ([VoiceRegion] -> Encoding)
-> ToJSON VoiceRegion
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [VoiceRegion] -> Encoding
$ctoEncodingList :: [VoiceRegion] -> Encoding
toJSONList :: [VoiceRegion] -> Value
$ctoJSONList :: [VoiceRegion] -> Value
toEncoding :: VoiceRegion -> Encoding
$ctoEncoding :: VoiceRegion -> Encoding
toJSON :: VoiceRegion -> Value
$ctoJSON :: VoiceRegion -> Value
ToJSON, Value -> Parser [VoiceRegion]
Value -> Parser VoiceRegion
(Value -> Parser VoiceRegion)
-> (Value -> Parser [VoiceRegion]) -> FromJSON VoiceRegion
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [VoiceRegion]
$cparseJSONList :: Value -> Parser [VoiceRegion]
parseJSON :: Value -> Parser VoiceRegion
$cparseJSON :: Value -> Parser VoiceRegion
FromJSON) via CalamityJSON VoiceRegion