summaryrefslogtreecommitdiff
path: root/include/tgbot/types/ExternalReplyInfo.h
blob: d2d40f995889215d7630cd31401272b87adde999 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#ifndef TGBOT_EXTERNALREPLYINFO_H
#define TGBOT_EXTERNALREPLYINFO_H

#include "tgbot/types/MessageOrigin.h"
#include "tgbot/types/Chat.h"
#include "tgbot/types/LinkPreviewOptions.h"
#include "tgbot/types/Animation.h"
#include "tgbot/types/Audio.h"
#include "tgbot/types/Document.h"
#include "tgbot/types/PhotoSize.h"
#include "tgbot/types/Sticker.h"
#include "tgbot/types/Story.h"
#include "tgbot/types/Video.h"
#include "tgbot/types/VideoNote.h"
#include "tgbot/types/Voice.h"
#include "tgbot/types/Contact.h"
#include "tgbot/types/Dice.h"
#include "tgbot/types/Game.h"
#include "tgbot/types/Giveaway.h"
#include "tgbot/types/GiveawayWinners.h"
#include "tgbot/types/Invoice.h"
#include "tgbot/types/Location.h"
#include "tgbot/types/Poll.h"
#include "tgbot/types/Venue.h"

#include <cstdint>
#include <memory>
#include <vector>

namespace TgBot {

/**
 * @brief This object contains information about a message that is being replied to, which may come from another chat or forum topic.
 *
 * @ingroup types
 */
class ExternalReplyInfo {

public:
    typedef std::shared_ptr<ExternalReplyInfo> Ptr;

    /**
     * @brief Origin of the message replied to by the given message
     */
    MessageOrigin::Ptr origin;

    /**
     * @brief Optional. Chat the original message belongs to.
     *
     * Available only if the chat is a supergroup or a channel.
     */
    Chat::Ptr chat;

    /**
     * @brief Optional. Unique message identifier inside the original chat.
     *
     * Available only if the original chat is a supergroup or a channel.
     */
    std::int32_t messageId;

    /**
     * @brief Optional. Options used for link preview generation for the original message, if it is a text message
     */
    LinkPreviewOptions::Ptr linkPreviewOptions;

    /**
     * @brief Optional. Message is an animation, information about the animation
     */
    Animation::Ptr animation;

    /**
     * @brief Optional. Message is an audio file, information about the file
     */
    Audio::Ptr audio;

    /**
     * @brief Optional. Message is a general file, information about the file
     */
    Document::Ptr document;

    /**
     * @brief Optional. Message is a photo, available sizes of the photo
     */
    std::vector<PhotoSize::Ptr> photo;

    /**
     * @brief Optional. Message is a sticker, information about the sticker
     */
    Sticker::Ptr sticker;

    /**
     * @brief Optional. Message is a forwarded story
     */
    Story::Ptr story;

    /**
     * @brief Optional. Message is a video, information about the video
     */
    Video::Ptr video;

    /**
     * @brief Optional. Message is a [video note](https://telegram.org/blog/video-messages-and-telescope), information about the video message
     */
    VideoNote::Ptr videoNote;

    /**
     * @brief Optional. Message is a voice message, information about the file
     */
    Voice::Ptr voice;

    /**
     * @brief Optional. True, if the message media is covered by a spoiler animation
     */
    bool hasMediaSpoiler;

    /**
     * @brief Optional. Message is a shared contact, information about the contact
     */
    Contact::Ptr contact;

    /**
     * @brief Optional. Message is a dice with random value
     */
    Dice::Ptr dice;

    /**
     * @brief Optional. Message is a game, information about the game.
     *
     * [More about games »](https://core.telegram.org/bots/api#games)
     */
    Game::Ptr game;

    /**
     * @brief Optional. Message is a scheduled giveaway, information about the giveaway
     */
    Giveaway::Ptr giveaway;

    /**
     * @brief Optional. A giveaway with public winners was completed
     */
    GiveawayWinners::Ptr giveawayWinners;

    /**
     * @brief Optional. Message is an invoice for a [payment](https://core.telegram.org/bots/api#payments), information about the invoice.
     *
     * [More about payments »](https://core.telegram.org/bots/api#payments)
     */
    Invoice::Ptr invoice;

    /**
     * @brief Optional. Message is a shared location, information about the location
     */
    Location::Ptr location;

    /**
     * @brief Optional. Message is a native poll, information about the poll
     */
    Poll::Ptr poll;

    /**
     * @brief Optional. Message is a venue, information about the venue
     */
    Venue::Ptr venue;
};
}

#endif //TGBOT_EXTERNALREPLYINFO_H