rustigram_types/
giveaway.rs1use serde::{Deserialize, Serialize};
2
3use crate::chat::Chat;
4use crate::message::Message;
5use crate::user::User;
6
7#[derive(Debug, Clone, Default, Serialize, Deserialize)]
9#[non_exhaustive]
10pub struct GiveawayCreated {
11 #[serde(skip_serializing_if = "Option::is_none")]
13 pub prize_star_count: Option<i64>,
14}
15
16#[derive(Debug, Clone, Default, Serialize, Deserialize)]
18#[non_exhaustive]
19pub struct Giveaway {
20 pub chats: Vec<Chat>,
22 pub winners_selection_date: i64,
24 pub winner_count: u32,
26 #[serde(skip_serializing_if = "Option::is_none")]
29 pub only_new_members: Option<bool>,
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub has_public_winners: Option<bool>,
33 #[serde(skip_serializing_if = "Option::is_none")]
35 pub prize_description: Option<String>,
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub country_codes: Option<Vec<String>>,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub prize_star_count: Option<i64>,
42 #[serde(skip_serializing_if = "Option::is_none")]
45 pub premium_subscription_month_count: Option<u32>,
46}
47
48#[derive(Debug, Clone, Default, Serialize, Deserialize)]
50#[non_exhaustive]
51pub struct GiveawayWinners {
52 pub chat: Chat,
54 pub giveaway_message_id: i64,
56 pub winners_selection_date: i64,
58 pub winner_count: u32,
60 pub winners: Vec<User>,
62 #[serde(skip_serializing_if = "Option::is_none")]
64 pub additional_chat_count: Option<u32>,
65 #[serde(skip_serializing_if = "Option::is_none")]
67 pub prize_star_count: Option<i64>,
68 #[serde(skip_serializing_if = "Option::is_none")]
70 pub premium_subscription_month_count: Option<u32>,
71 #[serde(skip_serializing_if = "Option::is_none")]
73 pub unclaimed_prize_count: Option<u32>,
74 #[serde(skip_serializing_if = "Option::is_none")]
76 pub only_new_members: Option<bool>,
77 #[serde(skip_serializing_if = "Option::is_none")]
79 pub was_refunded: Option<bool>,
80 #[serde(skip_serializing_if = "Option::is_none")]
82 pub prize_description: Option<String>,
83}
84
85#[derive(Debug, Clone, Default, Serialize, Deserialize)]
87#[non_exhaustive]
88pub struct GiveawayCompleted {
89 pub winner_count: u32,
91 #[serde(skip_serializing_if = "Option::is_none")]
93 pub unclaimed_prize_count: Option<u32>,
94 #[serde(skip_serializing_if = "Option::is_none")]
99 pub giveaway_message: Option<Box<Message>>,
100 #[serde(skip_serializing_if = "Option::is_none")]
102 pub is_star_giveaway: Option<bool>,
103}