| 
									
										
										
										
											2022-05-31 21:11:59 +04:00
										 |  |  | /*
 | 
					
						
							|  |  |  | This file is part of Telegram Desktop, | 
					
						
							|  |  |  | the official desktop application for the Telegram messaging service. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | For license and copyright information please follow this link: | 
					
						
							|  |  |  | https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "mtproto/sender.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ApiWrap; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace Main { | 
					
						
							|  |  |  | class Session; | 
					
						
							|  |  |  | } // namespace Main
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace Api { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Premium final { | 
					
						
							|  |  |  | public: | 
					
						
							|  |  |  | 	explicit Premium(not_null<ApiWrap*> api); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	void reload(); | 
					
						
							|  |  |  | 	[[nodiscard]] rpl::producer<TextWithEntities> statusTextValue() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-10 12:03:47 +04:00
										 |  |  | 	[[nodiscard]] auto videos() const | 
					
						
							|  |  |  | 		-> const base::flat_map<QString, not_null<DocumentData*>> &; | 
					
						
							|  |  |  | 	[[nodiscard]] rpl::producer<> videosUpdated() const; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	[[nodiscard]] auto stickers() const | 
					
						
							|  |  |  | 		-> const std::vector<not_null<DocumentData*>> &; | 
					
						
							|  |  |  | 	[[nodiscard]] rpl::producer<> stickersUpdated() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-03 15:57:06 +04:00
										 |  |  | 	[[nodiscard]] int64 monthlyAmount() const; | 
					
						
							|  |  |  | 	[[nodiscard]] QString monthlyCurrency() const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-31 21:11:59 +04:00
										 |  |  | private: | 
					
						
							| 
									
										
										
										
											2022-06-10 12:03:47 +04:00
										 |  |  | 	void reloadPromo(); | 
					
						
							|  |  |  | 	void reloadStickers(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-31 21:11:59 +04:00
										 |  |  | 	const not_null<Main::Session*> _session; | 
					
						
							|  |  |  | 	MTP::Sender _api; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-10 12:03:47 +04:00
										 |  |  | 	mtpRequestId _promoRequestId = 0; | 
					
						
							| 
									
										
										
										
											2022-05-31 21:11:59 +04:00
										 |  |  | 	std::optional<TextWithEntities> _statusText; | 
					
						
							|  |  |  | 	rpl::event_stream<TextWithEntities> _statusTextUpdates; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-10 12:03:47 +04:00
										 |  |  | 	base::flat_map<QString, not_null<DocumentData*>> _videos; | 
					
						
							|  |  |  | 	rpl::event_stream<> _videosUpdated; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	mtpRequestId _stickersRequestId = 0; | 
					
						
							|  |  |  | 	uint64 _stickersHash = 0; | 
					
						
							|  |  |  | 	std::vector<not_null<DocumentData*>> _stickers; | 
					
						
							|  |  |  | 	rpl::event_stream<> _stickersUpdated; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-03 15:57:06 +04:00
										 |  |  | 	int64 _monthlyAmount = 0; | 
					
						
							|  |  |  | 	QString _monthlyCurrency; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-31 21:11:59 +04:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // namespace Api
 |