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
use crate::entities::chat::Chat;
use crate::utils::deserialize_utils::is_false;
use serde::{Deserialize, Serialize};
///This object represents a message about a scheduled giveaway.
///API Reference: [link](https://core.telegram.org/bots/api/#giveaway)
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Giveaway {
///The list of chats which the user must join to participate in the giveaway
pub chats: Vec<Box<Chat>>,
///Point in time (Unix timestamp) when winners of the giveaway will be selected
pub winners_selection_date: i64,
///The number of users which are supposed to be selected as winners of the giveaway
pub winner_count: i64,
///*Optional*. *True*, if only users who join the chats after the giveaway started should be eligible to win
#[serde(default, skip_serializing_if = "is_false")]
pub only_new_members: bool,
///*Optional*. *True*, if the list of giveaway winners will be visible to everyone
#[serde(default, skip_serializing_if = "is_false")]
pub has_public_winners: bool,
///*Optional*. Description of additional giveaway prize
#[serde(skip_serializing_if = "Option::is_none")]
pub prize_description: Option<String>,
///*Optional*. A list of two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes indicating the countries from which eligible users for the giveaway must come. If empty, then all users can participate in the giveaway. Users with a phone number that was bought on Fragment can always participate in giveaways.
#[serde(default)]
pub country_codes: Vec<String>,
///*Optional*. The number of months the Telegram Premium subscription won from the giveaway will be active for
#[serde(skip_serializing_if = "Option::is_none")]
pub premium_subscription_month_count: Option<i64>,
}
// Divider: all content below this line will be preserved after code regen