package tg // BrokerUpdateType distinguishes update types coming from the broker type BrokerUpdateType string const ( // BMessage is a message update (mostly webhook updates) BMessage BrokerUpdateType = "message" // BFile is a file retrieval response update BFile BrokerUpdateType = "file" // BError is an error the broker occurred while fulfilling a request BError BrokerUpdateType = "error" ) // BrokerUpdate is what is sent by the broker as update type BrokerUpdate struct { Type BrokerUpdateType Callback *int `json:",omitempty"` Error *string `json:",omitempty"` Message *APIMessage `json:",omitempty"` Bytes *string `json:",omitempty"` } // ClientCommandType distinguishes requests sent by clients to the broker type ClientCommandType string const ( // CmdSendTextMessage requests the broker to send a text message to a chat CmdSendTextMessage ClientCommandType = "sendText" // CmdSendPhoto requests the broker to send a photo to a chat CmdSendPhoto ClientCommandType = "sendPhoto" // CmdGetFile requests the broker to get a file from Telegram CmdGetFile ClientCommandType = "getFile" ) // ClientTextMessageData is the required data for a CmdSendTextMessage request type ClientTextMessageData struct { ChatID int64 Text string ReplyID *int64 `json:",omitempty"` } // ClientPhotoData is the required data for a CmdSendPhoto request type ClientPhotoData struct { ChatID int64 Bytes string Filename string Caption string `json:",omitempty"` ReplyID *int64 `json:",omitempty"` } // FileRequestData is the required data for a CmdGetFile request type FileRequestData struct { FileID string } // ClientCommand is a request sent by clients to the broker type ClientCommand struct { Type ClientCommandType TextMessageData *ClientTextMessageData `json:",omitempty"` PhotoData *ClientPhotoData `json:",omitempty"` FileRequestData *FileRequestData `json:",omitempty"` Callback *int `json:",omitempty"` }