tgbotxx 1.2.9.2
Telegram Bot C++ Library
Loading...
Searching...
No Matches
PaidMedia.hpp
Go to the documentation of this file.
1#pragma once
5
6namespace tgbotxx {
12 struct PaidMedia {
13 PaidMedia() = default;
14 explicit PaidMedia(const nl::json& json) {
16 }
17 virtual ~PaidMedia() = default;
18
20 std::string type;
21
24 [[nodiscard]] virtual nl::json toJson() const {
25 nl::json json = nl::json::object();
27 return json;
28 }
29
31 virtual void fromJson(const nl::json& json) {
32 OBJECT_DESERIALIZE_FIELD(json, "type", type, "", false);
33 }
34 };
35
40 type = "preview";
41 }
42 explicit PaidMediaPreview(const nl::json& json) {
44 }
45
47 std::int32_t width{};
48
50 std::int32_t height{};
51
53 std::int32_t duration{};
54
55 [[nodiscard]] nl::json toJson() const override {
56 nl::json json = PaidMedia::toJson();
60 return json;
61 }
62
63 void fromJson(const nl::json& json) override {
65 OBJECT_DESERIALIZE_FIELD(json, "width", width, 0, true);
66 OBJECT_DESERIALIZE_FIELD(json, "height", height, 0, true);
67 OBJECT_DESERIALIZE_FIELD(json, "duration", duration, 0, true);
68 }
69 };
70
71
76 type = "photo";
77 }
78 explicit PaidMediaPhoto(const nl::json& json) {
80 }
81
83 std::vector<Ptr<PhotoSize>> photo;
84
85 [[nodiscard]] nl::json toJson() const override {
86 nl::json json = PaidMedia::toJson();
88 return json;
89 }
90
91 void fromJson(const nl::json& json) override {
94 }
95 };
96
97
102 type = "video";
103 }
104 explicit PaidMediaVideo(const nl::json& json) {
106 }
107
110
111 [[nodiscard]] nl::json toJson() const override {
112 nl::json json = PaidMedia::toJson();
114 return json;
115 }
116
117 void fromJson(const nl::json& json) override {
119 OBJECT_DESERIALIZE_FIELD_PTR(json, "video", video, false);
120 }
121 };
122}
#define OBJECT_SERIALIZE_FIELD_PTR(json, json_field, field)
Definition Object.hpp:22
#define OBJECT_SERIALIZE_FIELD_PTR_ARRAY(json, json_field, array_field)
Definition Object.hpp:27
#define OBJECT_DESERIALIZE_FIELD_PTR(json, json_field, field, optional)
Definition Object.hpp:72
#define OBJECT_SERIALIZE_FIELD(json, json_field, field)
Available objects: https://core.telegram.org/bots/api#available-types.
Definition Object.hpp:19
#define OBJECT_DESERIALIZE_FIELD(json, json_field, field, default_value, optional)
Deserialize.
Definition Object.hpp:46
#define OBJECT_DESERIALIZE_FIELD_PTR_ARRAY(json, json_field, array_field, optional)
Definition Object.hpp:89
std::shared_ptr< T > Ptr
Definition Ptr.hpp:6
This object describes paid media. Currently, it can be one of:
Definition PaidMedia.hpp:12
virtual nl::json toJson() const
Serializes this object to JSON.
Definition PaidMedia.hpp:24
virtual void fromJson(const nl::json &json)
Deserializes this object from JSON.
Definition PaidMedia.hpp:31
std::string type
Type of the paid media, one of "preview", "photo" or "video".
Definition PaidMedia.hpp:20
virtual ~PaidMedia()=default
PaidMedia(const nl::json &json)
Definition PaidMedia.hpp:14
The paid media is a photo. https://core.telegram.org/bots/api#paidmediaphoto.
Definition PaidMedia.hpp:74
nl::json toJson() const override
Serializes this object to JSON.
Definition PaidMedia.hpp:85
PaidMediaPhoto(const nl::json &json)
Definition PaidMedia.hpp:78
void fromJson(const nl::json &json) override
Deserializes this object from JSON.
Definition PaidMedia.hpp:91
std::vector< Ptr< PhotoSize > > photo
The photo.
Definition PaidMedia.hpp:83
The paid media isn't available before the payment. https://core.telegram.org/bots/api#paidmediaprevie...
Definition PaidMedia.hpp:38
std::int32_t height
Optional. Media height as defined by the sender.
Definition PaidMedia.hpp:50
PaidMediaPreview(const nl::json &json)
Definition PaidMedia.hpp:42
std::int32_t duration
Optional. Duration of the media in seconds as defined by the sender.
Definition PaidMedia.hpp:53
nl::json toJson() const override
Serializes this object to JSON.
Definition PaidMedia.hpp:55
void fromJson(const nl::json &json) override
Deserializes this object from JSON.
Definition PaidMedia.hpp:63
std::int32_t width
Optional. Media width as defined by the sender.
Definition PaidMedia.hpp:47
The paid media is a video. https://core.telegram.org/bots/api#paidmediavideo.
PaidMediaVideo(const nl::json &json)
void fromJson(const nl::json &json) override
Deserializes this object from JSON.
nl::json toJson() const override
Serializes this object to JSON.
Ptr< Video > video
The video.