tgbotxx 1.1.9.2
Telegram Bot C++ Library
Loading...
Searching...
No Matches
Giveaway.hpp
Go to the documentation of this file.
1#pragma once
4
5namespace tgbotxx {
8 struct Giveaway {
9 Giveaway() = default;
10 explicit Giveaway(const nl::json& json) {
11 fromJson(json);
12 }
13
15 std::vector<Ptr<Chat>> chats;
16
18 std::time_t winnersSelectionDate{};
19
21 std::int32_t winnerCount{};
22
25
28
30 std::string prizeDescription;
31
36 std::vector<std::string> countryCodes;
37
39 std::int64_t prizeStarCount{};
40
43
46 nl::json toJson() const {
47 nl::json json = nl::json::object();
49 OBJECT_SERIALIZE_FIELD(json, "winners_selection_date", winnersSelectionDate);
50 OBJECT_SERIALIZE_FIELD(json, "winner_count", winnerCount);
51 OBJECT_SERIALIZE_FIELD(json, "only_new_members", onlyNewMembers);
52 OBJECT_SERIALIZE_FIELD(json, "has_public_winners", hasPublicWinners);
53 OBJECT_SERIALIZE_FIELD(json, "prize_description", prizeDescription);
54 OBJECT_SERIALIZE_FIELD(json, "country_codes", countryCodes);
55 OBJECT_SERIALIZE_FIELD(json, "prize_star_count", prizeStarCount);
56 OBJECT_SERIALIZE_FIELD(json, "premium_subscription_month_count", premiumSubscriptionMonthCount);
57 return json;
58 }
59
61 void fromJson(const nl::json& json) {
62 OBJECT_DESERIALIZE_FIELD_PTR_ARRAY(json, "chats", chats, false);
63 OBJECT_DESERIALIZE_FIELD(json, "winners_selection_date", winnersSelectionDate, 0, false);
64 OBJECT_DESERIALIZE_FIELD(json, "winner_count", winnerCount, 0, false);
65 OBJECT_DESERIALIZE_FIELD(json, "only_new_members", onlyNewMembers, false, true);
66 OBJECT_DESERIALIZE_FIELD(json, "has_public_winners", hasPublicWinners, false, true);
67 OBJECT_DESERIALIZE_FIELD(json, "prize_description", prizeDescription, "", true);
68 OBJECT_DESERIALIZE_FIELD(json, "country_codes", countryCodes, {}, true);
69 OBJECT_DESERIALIZE_FIELD(json, "prize_star_count", prizeStarCount, 0, true);
70 OBJECT_DESERIALIZE_FIELD(json, "premium_subscription_month_count", premiumSubscriptionMonthCount, 0, true);
71 }
72 };
73}
#define OBJECT_SERIALIZE_FIELD_PTR_ARRAY(json, json_field, array_field)
Definition Object.hpp:27
#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
This object represents a message about a scheduled giveaway. https://core.telegram....
Definition Giveaway.hpp:8
bool onlyNewMembers
Optional. True, if only users who join the chats after the giveaway started should be eligible to win...
Definition Giveaway.hpp:24
Giveaway(const nl::json &json)
Definition Giveaway.hpp:10
std::vector< Ptr< Chat > > chats
The list of chats which the user must join to participate in the giveaway.
Definition Giveaway.hpp:15
std::time_t winnersSelectionDate
Point in time (Unix timestamp) when winners of the giveaway will be selected.
Definition Giveaway.hpp:18
nl::json toJson() const
Serializes this object to JSON.
Definition Giveaway.hpp:46
std::int32_t winnerCount
The number of users which are supposed to be selected as winners of the giveaway.
Definition Giveaway.hpp:21
std::int32_t premiumSubscriptionMonthCount
Optional. The number of months the Telegram Premium subscription won from the giveaway will be active...
Definition Giveaway.hpp:42
Giveaway()=default
std::string prizeDescription
Optional. Description of additional giveaway prize.
Definition Giveaway.hpp:30
std::vector< std::string > countryCodes
Optional. A list of two-letter ISO 3166-1 alpha-2 country codes indicating the countries from which e...
Definition Giveaway.hpp:36
std::int64_t prizeStarCount
Optional. The number of Telegram Stars to be split between giveaway winners; for Telegram Star giveaw...
Definition Giveaway.hpp:39
bool hasPublicWinners
Optional. True, if the list of giveaway winners will be visible to everyone.
Definition Giveaway.hpp:27
void fromJson(const nl::json &json)
Deserializes this object from JSON.
Definition Giveaway.hpp:61