summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Uko Kokņevičs2025-08-16 13:41:34 +0300
committerGravatar Uko Kokņevičs2025-08-16 13:41:34 +0300
commit9665b6315e028483f4db906a84e0c618157cc2be (patch)
treee15085246a024ed2bc28e27ad2680f6632cbd168 /src
parentMove bot configuration to SQL land (diff)
downloadukkobot-9665b6315e028483f4db906a84e0c618157cc2be.tar.gz
ukkobot-9665b6315e028483f4db906a84e0c618157cc2be.tar.xz
ukkobot-9665b6315e028483f4db906a84e0c618157cc2be.zip
Add some new stuff to types
Diffstat (limited to 'src')
-rw-r--r--src/types.zig21
-rw-r--r--src/types/ChecklistTask.zig8
-rw-r--r--src/types/ChecklistTasksAdded.zig5
-rw-r--r--src/types/DirectMessagePriceChanged.zig2
-rw-r--r--src/types/DirectMessagesTopic.zig4
-rw-r--r--src/types/Gift.zig10
-rw-r--r--src/types/GiftInfo.zig11
-rw-r--r--src/types/Giveaway.zig3
-rw-r--r--src/types/GiveawayCreated.zig2
-rw-r--r--src/types/GiveawayWinners.zig1
-rw-r--r--src/types/Message.zig27
-rw-r--r--src/types/PaidMessagePriceChanged.zig1
-rw-r--r--src/types/StarAmount.zig2
-rw-r--r--src/types/SuggestedPostApprovalFailed.zig5
-rw-r--r--src/types/SuggestedPostApproved.zig6
-rw-r--r--src/types/SuggestedPostDeclined.zig4
-rw-r--r--src/types/SuggestedPostInfo.zig6
-rw-r--r--src/types/SuggestedPostPaid.zig7
-rw-r--r--src/types/SuggestedPostPrice.zig2
-rw-r--r--src/types/SuggestedPostRefunded.zig5
-rw-r--r--src/types/UniqueGift.zig12
-rw-r--r--src/types/UniqueGiftBackdrop.zig5
-rw-r--r--src/types/UniqueGiftBackdropColors.zig4
-rw-r--r--src/types/UniqueGiftInfo.zig9
-rw-r--r--src/types/UniqueGiftModel.zig5
-rw-r--r--src/types/UniqueGiftSymbol.zig5
26 files changed, 170 insertions, 2 deletions
diff --git a/src/types.zig b/src/types.zig
index d203652..212fd53 100644
--- a/src/types.zig
+++ b/src/types.zig
@@ -20,10 +20,14 @@ pub const ChatJoinRequest = @import("types/ChatJoinRequest.zig");
20pub const ChatMember = @import("types/chat_member.zig").ChatMember; 20pub const ChatMember = @import("types/chat_member.zig").ChatMember;
21pub const ChatMemberUpdated = @import("types/ChatMemberUpdated.zig"); 21pub const ChatMemberUpdated = @import("types/ChatMemberUpdated.zig");
22pub const ChatShared = @import("types/ChatShared.zig"); 22pub const ChatShared = @import("types/ChatShared.zig");
23pub const ChecklistTask = @import("types/ChecklistTask.zig");
24pub const ChecklistTasksAdded = @import("types/ChecklistTasksAdded.zig");
23pub const ChosenInlineResult = @import("types/ChosenInlineResult.zig"); 25pub const ChosenInlineResult = @import("types/ChosenInlineResult.zig");
24pub const Contact = @import("types/Contact.zig"); 26pub const Contact = @import("types/Contact.zig");
25pub const DeleteMessageParams = @import("types/DeleteMessageParams.zig"); 27pub const DeleteMessageParams = @import("types/DeleteMessageParams.zig");
26pub const Dice = @import("types/Dice.zig"); 28pub const Dice = @import("types/Dice.zig");
29pub const DirectMessagePriceChanged = @import("types/DirectMessagePriceChanged.zig");
30pub const DirectMessagesTopic = @import("types/DirectMessagesTopic.zig");
27pub const Document = @import("types/Document.zig"); 31pub const Document = @import("types/Document.zig");
28pub const EncryptedCredentials = @import("types/EncryptedCredentials.zig"); 32pub const EncryptedCredentials = @import("types/EncryptedCredentials.zig");
29pub const EncryptedPassportElement = @import("types/EncryptedPassportElement.zig"); 33pub const EncryptedPassportElement = @import("types/EncryptedPassportElement.zig");
@@ -36,6 +40,8 @@ pub const ForumTopicReopened = @import("types/ForumTopicReopened.zig");
36pub const Game = @import("types/Game.zig"); 40pub const Game = @import("types/Game.zig");
37pub const GeneralForumTopicHidden = @import("types/GeneralForumTopicHidden.zig"); 41pub const GeneralForumTopicHidden = @import("types/GeneralForumTopicHidden.zig");
38pub const GeneralForumTopicUnhidden = @import("types/GeneralForumTopicUnhidden.zig"); 42pub const GeneralForumTopicUnhidden = @import("types/GeneralForumTopicUnhidden.zig");
43pub const Gift = @import("types/Gift.zig");
44pub const GiftInfo = @import("types/GiftInfo.zig");
39pub const Giveaway = @import("types/Giveaway.zig"); 45pub const Giveaway = @import("types/Giveaway.zig");
40pub const GiveawayCompleted = @import("types/GiveawayCompleted.zig"); 46pub const GiveawayCompleted = @import("types/GiveawayCompleted.zig");
41pub const GiveawayCreated = @import("types/GiveawayCreated.zig"); 47pub const GiveawayCreated = @import("types/GiveawayCreated.zig");
@@ -58,6 +64,7 @@ pub const MessageReactionUpdated = @import("types/MessageReactionUpdated.zig");
58pub const OrderInfo = @import("types/OrderInfo.zig"); 64pub const OrderInfo = @import("types/OrderInfo.zig");
59pub const PaidMedia = @import("types/paid_media.zig").PaidMedia; 65pub const PaidMedia = @import("types/paid_media.zig").PaidMedia;
60pub const PaidMediaInfo = @import("types/PaidMediaInfo.zig"); 66pub const PaidMediaInfo = @import("types/PaidMediaInfo.zig");
67pub const PaidMessagePriceChanged = @import("types/PaidMessagePriceChanged.zig");
61pub const PassportData = @import("types/PassportData.zig"); 68pub const PassportData = @import("types/PassportData.zig");
62pub const PassportFile = @import("types/PassportFile.zig"); 69pub const PassportFile = @import("types/PassportFile.zig");
63pub const PhotoSize = @import("types/PhotoSize.zig"); 70pub const PhotoSize = @import("types/PhotoSize.zig");
@@ -74,11 +81,25 @@ pub const ResponseParameters = @import("types/ResponseParameters.zig");
74pub const SharedUser = @import("types/SharedUser.zig"); 81pub const SharedUser = @import("types/SharedUser.zig");
75pub const ShippingAddress = @import("types/ShippingAddress.zig"); 82pub const ShippingAddress = @import("types/ShippingAddress.zig");
76pub const ShippingQuery = @import("types/ShippingQuery.zig"); 83pub const ShippingQuery = @import("types/ShippingQuery.zig");
84pub const StarAmount = @import("types/StarAmount.zig");
77pub const Sticker = @import("types/Sticker.zig"); 85pub const Sticker = @import("types/Sticker.zig");
78pub const Story = @import("types/Story.zig"); 86pub const Story = @import("types/Story.zig");
79pub const SuccessfulPayment = @import("types/SuccessfulPayment.zig"); 87pub const SuccessfulPayment = @import("types/SuccessfulPayment.zig");
88pub const SuggestedPostApprovalFailed = @import("types/SuggestedPostApprovalFailed.zig");
89pub const SuggestedPostApproved = @import("types/SuggestedPostApproved.zig");
90pub const SuggestedPostDeclined = @import("types/SuggestedPostDeclined.zig");
91pub const SuggestedPostInfo = @import("types/SuggestedPostInfo.zig");
92pub const SuggestedPostPaid = @import("types/SuggestedPostPaid.zig");
93pub const SuggestedPostPrice = @import("types/SuggestedPostPrice.zig");
94pub const SuggestedPostRefunded = @import("types/SuggestedPostRefunded.zig");
80pub const SwitchInlineQueryChosenChat = @import("types/SwitchInlineQueryChosenChat.zig"); 95pub const SwitchInlineQueryChosenChat = @import("types/SwitchInlineQueryChosenChat.zig");
81pub const TextQuote = @import("types/TextQuote.zig"); 96pub const TextQuote = @import("types/TextQuote.zig");
97pub const UniqueGift = @import("types/UniqueGift.zig");
98pub const UniqueGiftBackdrop = @import("types/UniqueGiftBackdrop.zig");
99pub const UniqueGiftBackdropColors = @import("types/UniqueGiftBackdropColors.zig");
100pub const UniqueGiftInfo = @import("types/UniqueGiftInfo.zig");
101pub const UniqueGiftModel = @import("types/UniqueGiftModel.zig");
102pub const UniqueGiftSymbol = @import("types/UniqueGiftSymbol.zig");
82pub const Update = @import("types/Update.zig"); 103pub const Update = @import("types/Update.zig");
83pub const User = @import("types/User.zig"); 104pub const User = @import("types/User.zig");
84pub const UsersShared = @import("types/UsersShared.zig"); 105pub const UsersShared = @import("types/UsersShared.zig");
diff --git a/src/types/ChecklistTask.zig b/src/types/ChecklistTask.zig
new file mode 100644
index 0000000..ada5a94
--- /dev/null
+++ b/src/types/ChecklistTask.zig
@@ -0,0 +1,8 @@
1const MessageEntity = @import("MessageEntity.zig");
2const User = @import("User.zig");
3
4id: u64,
5text: []const u8,
6text_entities: ?[]MessageEntity = null,
7completed_by_user: ?User = null,
8completion_date: ?u64 = null,
diff --git a/src/types/ChecklistTasksAdded.zig b/src/types/ChecklistTasksAdded.zig
new file mode 100644
index 0000000..f1a491a
--- /dev/null
+++ b/src/types/ChecklistTasksAdded.zig
@@ -0,0 +1,5 @@
1const ChecklistTask = @import("ChecklistTask.zig");
2const Message = @import("Message.zig");
3
4checklist_message: ?*Message = null,
5tasks: []ChecklistTask,
diff --git a/src/types/DirectMessagePriceChanged.zig b/src/types/DirectMessagePriceChanged.zig
new file mode 100644
index 0000000..16bb580
--- /dev/null
+++ b/src/types/DirectMessagePriceChanged.zig
@@ -0,0 +1,2 @@
1are_direct_messages_enabled: bool,
2direct_message_star_count: u64 = 0,
diff --git a/src/types/DirectMessagesTopic.zig b/src/types/DirectMessagesTopic.zig
new file mode 100644
index 0000000..586e1c1
--- /dev/null
+++ b/src/types/DirectMessagesTopic.zig
@@ -0,0 +1,4 @@
1const User = @import("User.zig");
2
3topic_id: u64,
4user: ?User = null,
diff --git a/src/types/Gift.zig b/src/types/Gift.zig
new file mode 100644
index 0000000..3b146d5
--- /dev/null
+++ b/src/types/Gift.zig
@@ -0,0 +1,10 @@
1const Chat = @import("Chat.zig");
2const Sticker = @import("Sticker.zig");
3
4id: []const u8,
5sticker: Sticker,
6star_count: u64,
7upgrade_star_count: ?u64 = null,
8total_count: ?u64 = null,
9remaining_count: ?u64 = null,
10publisher_chat: ?Chat = null,
diff --git a/src/types/GiftInfo.zig b/src/types/GiftInfo.zig
new file mode 100644
index 0000000..37b8cc6
--- /dev/null
+++ b/src/types/GiftInfo.zig
@@ -0,0 +1,11 @@
1const Gift = @import("Gift.zig");
2const MessageEntity = @import("MessageEntity.zig");
3
4gift: Gift,
5owned_gift_id: ?[]const u8 = null,
6convert_star_count: ?u64 = null,
7prepaid_upgrade_star_count: ?u64 = null,
8can_be_upgraded: bool = false,
9text: ?[]const u8 = null,
10entities: ?[]MessageEntity = null,
11is_private: bool = false,
diff --git a/src/types/Giveaway.zig b/src/types/Giveaway.zig
index d1cfa7e..5ce208e 100644
--- a/src/types/Giveaway.zig
+++ b/src/types/Giveaway.zig
@@ -6,5 +6,6 @@ winner_count: u64,
6only_new_members: bool = false, 6only_new_members: bool = false,
7has_public_winners: bool = false, 7has_public_winners: bool = false,
8prize_description: ?[]const u8 = null, 8prize_description: ?[]const u8 = null,
9country_codes: ?[]const u8 = null, 9country_codes: ?[][]const u8 = null,
10prize_star_count: ?u64 = null,
10premium_subscription_month_count: ?u64 = null, 11premium_subscription_month_count: ?u64 = null,
diff --git a/src/types/GiveawayCreated.zig b/src/types/GiveawayCreated.zig
index 2f72c10..59c9a33 100644
--- a/src/types/GiveawayCreated.zig
+++ b/src/types/GiveawayCreated.zig
@@ -1 +1 @@
// meant to be empty prize_star_count: ?u64 = null,
diff --git a/src/types/GiveawayWinners.zig b/src/types/GiveawayWinners.zig
index b99a7d2..fefd68b 100644
--- a/src/types/GiveawayWinners.zig
+++ b/src/types/GiveawayWinners.zig
@@ -7,6 +7,7 @@ winners_selection_date: u64,
7winner_count: u64, 7winner_count: u64,
8winners: []User, 8winners: []User,
9additional_chat_count: ?u64 = null, 9additional_chat_count: ?u64 = null,
10prize_star_count: ?u64 = null,
10premium_subscription_month_count: ?u64 = null, 11premium_subscription_month_count: ?u64 = null,
11unclaimed_prize_count: ?u64 = null, 12unclaimed_prize_count: ?u64 = null,
12only_new_members: bool = false, 13only_new_members: bool = false,
diff --git a/src/types/Message.zig b/src/types/Message.zig
index 448ca86..8853747 100644
--- a/src/types/Message.zig
+++ b/src/types/Message.zig
@@ -4,8 +4,11 @@ const Chat = @import("Chat.zig");
4const ChatBackground = @import("ChatBackground.zig"); 4const ChatBackground = @import("ChatBackground.zig");
5const ChatBoostAdded = @import("ChatBoostAdded.zig"); 5const ChatBoostAdded = @import("ChatBoostAdded.zig");
6const ChatShared = @import("ChatShared.zig"); 6const ChatShared = @import("ChatShared.zig");
7const ChecklistTasksAdded = @import("ChecklistTasksAdded.zig");
7const Contact = @import("Contact.zig"); 8const Contact = @import("Contact.zig");
8const Dice = @import("Dice.zig"); 9const Dice = @import("Dice.zig");
10const DirectMessagePriceChanged = @import("DirectMessagePriceChanged.zig");
11const DirectMessagesTopic = @import("DirectMessagesTopic.zig");
9const Document = @import("Document.zig"); 12const Document = @import("Document.zig");
10const ExternalReplyInfo = @import("ExternalReplyInfo.zig"); 13const ExternalReplyInfo = @import("ExternalReplyInfo.zig");
11const ForumTopicClosed = @import("ForumTopicClosed.zig"); 14const ForumTopicClosed = @import("ForumTopicClosed.zig");
@@ -15,6 +18,7 @@ const ForumTopicReopened = @import("ForumTopicReopened.zig");
15const Game = @import("Game.zig"); 18const Game = @import("Game.zig");
16const GeneralForumTopicHidden = @import("GeneralForumTopicHidden.zig"); 19const GeneralForumTopicHidden = @import("GeneralForumTopicHidden.zig");
17const GeneralForumTopicUnhidden = @import("GeneralForumTopicUnhidden.zig"); 20const GeneralForumTopicUnhidden = @import("GeneralForumTopicUnhidden.zig");
21const GiftInfo = @import("GiftInfo.zig");
18const Giveaway = @import("Giveaway.zig"); 22const Giveaway = @import("Giveaway.zig");
19const GiveawayCompleted = @import("GiveawayCompleted.zig"); 23const GiveawayCompleted = @import("GiveawayCompleted.zig");
20const GiveawayCreated = @import("GiveawayCreated.zig"); 24const GiveawayCreated = @import("GiveawayCreated.zig");
@@ -29,6 +33,7 @@ const MessageAutoDeleteTimerChanged = @import("MessageAutoDeleteTimerChanged.zig
29const MessageEntity = @import("MessageEntity.zig"); 33const MessageEntity = @import("MessageEntity.zig");
30const MessageOrigin = @import("message_origin.zig").MessageOrigin; 34const MessageOrigin = @import("message_origin.zig").MessageOrigin;
31const PaidMediaInfo = @import("PaidMediaInfo.zig"); 35const PaidMediaInfo = @import("PaidMediaInfo.zig");
36const PaidMessagePriceChanged = @import("PaidMessagePriceChanged.zig");
32const PassportData = @import("PassportData.zig"); 37const PassportData = @import("PassportData.zig");
33const PhotoSize = @import("PhotoSize.zig"); 38const PhotoSize = @import("PhotoSize.zig");
34const Poll = @import("Poll.zig"); 39const Poll = @import("Poll.zig");
@@ -37,7 +42,14 @@ const RefundedPayment = @import("RefundedPayment.zig");
37const Sticker = @import("Sticker.zig"); 42const Sticker = @import("Sticker.zig");
38const Story = @import("Story.zig"); 43const Story = @import("Story.zig");
39const SuccessfulPayment = @import("SuccessfulPayment.zig"); 44const SuccessfulPayment = @import("SuccessfulPayment.zig");
45const SuggestedPostApprovalFailed = @import("SuggestedPostApprovalFailed.zig");
46const SuggestedPostApproved = @import("SuggestedPostApproved.zig");
47const SuggestedPostDeclined = @import("SuggestedPostDeclined.zig");
48const SuggestedPostInfo = @import("SuggestedPostInfo.zig");
49const SuggestedPostPaid = @import("SuggestedPostPaid.zig");
50const SuggestedPostRefunded = @import("SuggestedPostRefunded.zig");
40const TextQuote = @import("TextQuote.zig"); 51const TextQuote = @import("TextQuote.zig");
52const UniqueGiftInfo = @import("UniqueGiftInfo.zig");
41const User = @import("User.zig"); 53const User = @import("User.zig");
42const UsersShared = @import("UsersShared.zig"); 54const UsersShared = @import("UsersShared.zig");
43const Venue = @import("Venue.zig"); 55const Venue = @import("Venue.zig");
@@ -53,6 +65,7 @@ const WriteAccessAllowed = @import("WriteAccessAllowed.zig");
53 65
54message_id: u64, 66message_id: u64,
55message_thread_id: ?u64 = null, 67message_thread_id: ?u64 = null,
68direct_messages_topic: ?DirectMessagesTopic = null,
56from: ?User = null, 69from: ?User = null,
57sender_chat: ?Chat = null, 70sender_chat: ?Chat = null,
58sender_boost_count: ?u64 = null, 71sender_boost_count: ?u64 = null,
@@ -68,15 +81,19 @@ reply_to_message: ?*Message = null,
68external_reply: ?ExternalReplyInfo = null, 81external_reply: ?ExternalReplyInfo = null,
69quote: ?TextQuote = null, 82quote: ?TextQuote = null,
70reply_to_story: ?Story = null, 83reply_to_story: ?Story = null,
84reply_to_checklist_task_id: ?u64 = null,
71via_bot: ?User = null, 85via_bot: ?User = null,
72edit_date: ?u64 = null, 86edit_date: ?u64 = null,
73has_protected_content: bool = false, 87has_protected_content: bool = false,
74is_from_offline: bool = false, 88is_from_offline: bool = false,
89is_paid_post: bool = false,
75media_group_id: ?[]const u8 = null, 90media_group_id: ?[]const u8 = null,
76author_signature: ?[]const u8 = null, 91author_signature: ?[]const u8 = null,
92paid_star_count: ?u64 = null,
77text: ?[]const u8 = null, 93text: ?[]const u8 = null,
78entities: ?[]MessageEntity = null, 94entities: ?[]MessageEntity = null,
79link_preview_options: ?LinkPreviewOptions = null, 95link_preview_options: ?LinkPreviewOptions = null,
96suggested_post_info: ?SuggestedPostInfo = null,
80effect_id: ?[]const u8 = null, 97effect_id: ?[]const u8 = null,
81animation: ?Animation = null, 98animation: ?Animation = null,
82audio: ?Audio = null, 99audio: ?Audio = null,
@@ -115,12 +132,16 @@ successful_payment: ?SuccessfulPayment = null,
115refunded_payment: ?RefundedPayment = null, 132refunded_payment: ?RefundedPayment = null,
116users_shared: ?UsersShared = null, 133users_shared: ?UsersShared = null,
117chat_shared: ?ChatShared = null, 134chat_shared: ?ChatShared = null,
135gift: ?GiftInfo = null,
136unique_gift: ?UniqueGiftInfo = null,
118connected_website: ?[]const u8 = null, 137connected_website: ?[]const u8 = null,
119write_access_allowed: ?WriteAccessAllowed = null, 138write_access_allowed: ?WriteAccessAllowed = null,
120passport_data: ?PassportData = null, 139passport_data: ?PassportData = null,
121proximity_alert_triggered: ?ProximityAlertTriggered = null, 140proximity_alert_triggered: ?ProximityAlertTriggered = null,
122boost_added: ?ChatBoostAdded = null, 141boost_added: ?ChatBoostAdded = null,
123chat_background_set: ?ChatBackground = null, 142chat_background_set: ?ChatBackground = null,
143checklist_tasks_added: ?ChecklistTasksAdded = null,
144direct_message_price_changed: ?DirectMessagePriceChanged = null,
124forum_topic_created: ?ForumTopicCreated = null, 145forum_topic_created: ?ForumTopicCreated = null,
125forum_topic_edited: ?ForumTopicEdited = null, 146forum_topic_edited: ?ForumTopicEdited = null,
126forum_topic_closed: ?ForumTopicClosed = null, 147forum_topic_closed: ?ForumTopicClosed = null,
@@ -131,6 +152,12 @@ giveaway_created: ?GiveawayCreated = null,
131giveaway: ?Giveaway = null, 152giveaway: ?Giveaway = null,
132giveaway_winners: ?GiveawayWinners = null, 153giveaway_winners: ?GiveawayWinners = null,
133giveaway_completed: ?*GiveawayCompleted = null, 154giveaway_completed: ?*GiveawayCompleted = null,
155paid_message_price_changed: ?PaidMessagePriceChanged = null,
156suggested_post_approved: ?SuggestedPostApproved = null,
157suggested_post_approval_failed: ?SuggestedPostApprovalFailed = null,
158suggested_post_declined: ?SuggestedPostDeclined = null,
159suggested_post_paid: ?SuggestedPostPaid = null,
160suggested_post_refunded: ?SuggestedPostRefunded = null,
134video_chat_scheduled: ?VideoChatScheduled = null, 161video_chat_scheduled: ?VideoChatScheduled = null,
135video_chat_started: ?VideoChatStarted = null, 162video_chat_started: ?VideoChatStarted = null,
136video_chat_ended: ?VideoChatEnded = null, 163video_chat_ended: ?VideoChatEnded = null,
diff --git a/src/types/PaidMessagePriceChanged.zig b/src/types/PaidMessagePriceChanged.zig
new file mode 100644
index 0000000..ee1c598
--- /dev/null
+++ b/src/types/PaidMessagePriceChanged.zig
@@ -0,0 +1 @@
paid_message_star_count: u64,
diff --git a/src/types/StarAmount.zig b/src/types/StarAmount.zig
new file mode 100644
index 0000000..7e2322f
--- /dev/null
+++ b/src/types/StarAmount.zig
@@ -0,0 +1,2 @@
1amount: i64,
2nanostar_amount: i64,
diff --git a/src/types/SuggestedPostApprovalFailed.zig b/src/types/SuggestedPostApprovalFailed.zig
new file mode 100644
index 0000000..0040d6d
--- /dev/null
+++ b/src/types/SuggestedPostApprovalFailed.zig
@@ -0,0 +1,5 @@
1const Message = @import("Message.zig");
2const SuggestedPostPrice = @import("SuggestedPostPrice.zig");
3
4suggested_post_message: ?*Message = null,
5price: SuggestedPostPrice,
diff --git a/src/types/SuggestedPostApproved.zig b/src/types/SuggestedPostApproved.zig
new file mode 100644
index 0000000..8641410
--- /dev/null
+++ b/src/types/SuggestedPostApproved.zig
@@ -0,0 +1,6 @@
1const Message = @import("Message.zig");
2const SuggestedPostPrice = @import("SuggestedPostPrice.zig");
3
4suggested_post_message: ?*Message = null,
5price: ?SuggestedPostPrice = null,
6send_date: u64,
diff --git a/src/types/SuggestedPostDeclined.zig b/src/types/SuggestedPostDeclined.zig
new file mode 100644
index 0000000..e77c6f0
--- /dev/null
+++ b/src/types/SuggestedPostDeclined.zig
@@ -0,0 +1,4 @@
1const Message = @import("Message.zig");
2
3suggested_post_message: ?*Message = null,
4comment: ?[]const u8 = null,
diff --git a/src/types/SuggestedPostInfo.zig b/src/types/SuggestedPostInfo.zig
new file mode 100644
index 0000000..c5a3b9e
--- /dev/null
+++ b/src/types/SuggestedPostInfo.zig
@@ -0,0 +1,6 @@
1const SuggestedPostPrice = @import("SuggestedPostPrice.zig");
2
3// Currently one of pending, approved, declined. TODO: Perhaps make an enum?
4state: []const u8,
5price: ?SuggestedPostPrice = null,
6send_date: ?u64 = null,
diff --git a/src/types/SuggestedPostPaid.zig b/src/types/SuggestedPostPaid.zig
new file mode 100644
index 0000000..94dcea3
--- /dev/null
+++ b/src/types/SuggestedPostPaid.zig
@@ -0,0 +1,7 @@
1const Message = @import("Message.zig");
2const StarAmount = @import("StarAmount.zig");
3
4suggested_post_message: ?*Message = null,
5currency: []const u8,
6amount: ?u64 = null,
7star_amount: ?StarAmount = null,
diff --git a/src/types/SuggestedPostPrice.zig b/src/types/SuggestedPostPrice.zig
new file mode 100644
index 0000000..4397680
--- /dev/null
+++ b/src/types/SuggestedPostPrice.zig
@@ -0,0 +1,2 @@
1currency: []const u8,
2amount: u64,
diff --git a/src/types/SuggestedPostRefunded.zig b/src/types/SuggestedPostRefunded.zig
new file mode 100644
index 0000000..aac4e1e
--- /dev/null
+++ b/src/types/SuggestedPostRefunded.zig
@@ -0,0 +1,5 @@
1const Message = @import("Message.zig");
2
3suggested_post_message: ?*Message = null,
4// Currently either post_deleted or payment_refused. TODO: Enum?
5reason: []const u8,
diff --git a/src/types/UniqueGift.zig b/src/types/UniqueGift.zig
new file mode 100644
index 0000000..0acc516
--- /dev/null
+++ b/src/types/UniqueGift.zig
@@ -0,0 +1,12 @@
1const Chat = @import("Chat.zig");
2const UniqueGiftBackdrop = @import("UniqueGiftBackdrop.zig");
3const UniqueGiftModel = @import("UniqueGiftModel.zig");
4const UniqueGiftSymbol = @import("UniqueGiftSymbol.zig");
5
6base_name: []const u8,
7name: []const u8,
8number: u64,
9model: UniqueGiftModel,
10symbol: UniqueGiftSymbol,
11backdrop: UniqueGiftBackdrop,
12publisher_chat: ?Chat = null,
diff --git a/src/types/UniqueGiftBackdrop.zig b/src/types/UniqueGiftBackdrop.zig
new file mode 100644
index 0000000..79c50e9
--- /dev/null
+++ b/src/types/UniqueGiftBackdrop.zig
@@ -0,0 +1,5 @@
1const UniqueGiftBackdropColors = @import("UniqueGiftBackdropColors.zig");
2
3name: []const u8,
4colors: UniqueGiftBackdropColors,
5rarity_per_mille: u64,
diff --git a/src/types/UniqueGiftBackdropColors.zig b/src/types/UniqueGiftBackdropColors.zig
new file mode 100644
index 0000000..b021183
--- /dev/null
+++ b/src/types/UniqueGiftBackdropColors.zig
@@ -0,0 +1,4 @@
1center_color: u64,
2edge_color: u64,
3symbol_color: u64,
4text_color: u64,
diff --git a/src/types/UniqueGiftInfo.zig b/src/types/UniqueGiftInfo.zig
new file mode 100644
index 0000000..ceb72ac
--- /dev/null
+++ b/src/types/UniqueGiftInfo.zig
@@ -0,0 +1,9 @@
1const UniqueGift = @import("UniqueGift.zig");
2
3gift: UniqueGift,
4// Currently either upgrade, transfer, or resale. TODO: Make an enum?
5origin: []const u8,
6last_resale_star_count: ?u64 = null,
7owned_gift_id: ?[]const u8,
8transfer_star_count: ?u64 = null,
9next_transfer_date: ?u64 = null,
diff --git a/src/types/UniqueGiftModel.zig b/src/types/UniqueGiftModel.zig
new file mode 100644
index 0000000..34887b7
--- /dev/null
+++ b/src/types/UniqueGiftModel.zig
@@ -0,0 +1,5 @@
1const Sticker = @import("Sticker.zig");
2
3name: []const u8,
4sticker: Sticker,
5rarity_per_mille: u64,
diff --git a/src/types/UniqueGiftSymbol.zig b/src/types/UniqueGiftSymbol.zig
new file mode 100644
index 0000000..34887b7
--- /dev/null
+++ b/src/types/UniqueGiftSymbol.zig
@@ -0,0 +1,5 @@
1const Sticker = @import("Sticker.zig");
2
3name: []const u8,
4sticker: Sticker,
5rarity_per_mille: u64,