{-# LANGUAGE DeriveGeneric #-}
module Telegram.Bot.API.Types.ExternalReplyInfo where
import Data.Aeson (FromJSON (..), ToJSON (..))
import GHC.Generics (Generic)
import Telegram.Bot.API.Internal.Utils
import Telegram.Bot.API.Types.Animation
import Telegram.Bot.API.Types.Audio
import Telegram.Bot.API.Types.Chat
import Telegram.Bot.API.Types.Common
import Telegram.Bot.API.Types.Contact
import Telegram.Bot.API.Types.Dice
import Telegram.Bot.API.Types.Game
import Telegram.Bot.API.Types.Document
import Telegram.Bot.API.Types.Invoice
import Telegram.Bot.API.Types.Location
import Telegram.Bot.API.Types.MessageOrigin
import Telegram.Bot.API.Types.PhotoSize
import Telegram.Bot.API.Types.Poll
import Telegram.Bot.API.Types.Sticker
import Telegram.Bot.API.Types.Story
import Telegram.Bot.API.Types.Venue
import Telegram.Bot.API.Types.Video
import Telegram.Bot.API.Types.VideoNote
import Telegram.Bot.API.Types.Voice
data ExternalReplyInfo = ExternalReplyInfo
{ ExternalReplyInfo -> MessageOrigin
externalReplyInfoOrigin :: MessageOrigin
, ExternalReplyInfo -> Maybe Chat
externalReplyInfoChat :: Maybe Chat
, ExternalReplyInfo -> Maybe MessageId
externalReplyInfoMessageId :: Maybe MessageId
, ExternalReplyInfo -> Maybe Animation
externalReplyInfoAnimation :: Maybe Animation
, ExternalReplyInfo -> Maybe Audio
externalReplyInfoAudio :: Maybe Audio
, ExternalReplyInfo -> Maybe Document
externalReplyInfoDocument :: Maybe Document
, ExternalReplyInfo -> Maybe [PhotoSize]
externalReplyInfoPhoto :: Maybe [PhotoSize]
, ExternalReplyInfo -> Maybe Sticker
externalReplyInfoSticker :: Maybe Sticker
, ExternalReplyInfo -> Maybe Story
externalReplyInfoStory :: Maybe Story
, ExternalReplyInfo -> Maybe Video
externalReplyInfoVideo :: Maybe Video
, ExternalReplyInfo -> Maybe VideoNote
externalReplyInfoVideoNote :: Maybe VideoNote
, ExternalReplyInfo -> Maybe Voice
externalReplyInfoVoice :: Maybe Voice
, ExternalReplyInfo -> Maybe Bool
externalReplyInfoHasMediaSpoiler :: Maybe Bool
, ExternalReplyInfo -> Maybe Contact
externalReplyInfoContact :: Maybe Contact
, ExternalReplyInfo -> Maybe Dice
externalReplyInfoDice :: Maybe Dice
, ExternalReplyInfo -> Maybe Game
externalReplyInfoGame :: Maybe Game
, ExternalReplyInfo -> Maybe Invoice
externalReplyInfoInvoice :: Maybe Invoice
, ExternalReplyInfo -> Maybe Location
externalReplyInfoLocation :: Maybe Location
, ExternalReplyInfo -> Maybe Poll
externalReplyInfoPoll :: Maybe Poll
, ExternalReplyInfo -> Maybe Venue
externalReplyInfoVenue :: Maybe Venue
}
deriving ((forall x. ExternalReplyInfo -> Rep ExternalReplyInfo x)
-> (forall x. Rep ExternalReplyInfo x -> ExternalReplyInfo)
-> Generic ExternalReplyInfo
forall x. Rep ExternalReplyInfo x -> ExternalReplyInfo
forall x. ExternalReplyInfo -> Rep ExternalReplyInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ExternalReplyInfo -> Rep ExternalReplyInfo x
from :: forall x. ExternalReplyInfo -> Rep ExternalReplyInfo x
$cto :: forall x. Rep ExternalReplyInfo x -> ExternalReplyInfo
to :: forall x. Rep ExternalReplyInfo x -> ExternalReplyInfo
Generic, Int -> ExternalReplyInfo -> ShowS
[ExternalReplyInfo] -> ShowS
ExternalReplyInfo -> String
(Int -> ExternalReplyInfo -> ShowS)
-> (ExternalReplyInfo -> String)
-> ([ExternalReplyInfo] -> ShowS)
-> Show ExternalReplyInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ExternalReplyInfo -> ShowS
showsPrec :: Int -> ExternalReplyInfo -> ShowS
$cshow :: ExternalReplyInfo -> String
show :: ExternalReplyInfo -> String
$cshowList :: [ExternalReplyInfo] -> ShowS
showList :: [ExternalReplyInfo] -> ShowS
Show)
instance ToJSON ExternalReplyInfo where toJSON :: ExternalReplyInfo -> Value
toJSON = ExternalReplyInfo -> Value
forall a (d :: Meta) (f :: * -> *).
(Generic a, GToJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
a -> Value
gtoJSON
instance FromJSON ExternalReplyInfo where parseJSON :: Value -> Parser ExternalReplyInfo
parseJSON = Value -> Parser ExternalReplyInfo
forall a (d :: Meta) (f :: * -> *).
(Generic a, GFromJSON Zero (Rep a), Rep a ~ D1 d f, Datatype d) =>
Value -> Parser a
gparseJSON