/* 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 api); void reload(); [[nodiscard]] rpl::producer statusTextValue() const; [[nodiscard]] auto videos() const -> const base::flat_map> &; [[nodiscard]] rpl::producer<> videosUpdated() const; [[nodiscard]] auto stickers() const -> const std::vector> &; [[nodiscard]] rpl::producer<> stickersUpdated() const; [[nodiscard]] int64 monthlyAmount() const; [[nodiscard]] QString monthlyCurrency() const; private: void reloadPromo(); void reloadStickers(); const not_null _session; MTP::Sender _api; mtpRequestId _promoRequestId = 0; std::optional _statusText; rpl::event_stream _statusTextUpdates; base::flat_map> _videos; rpl::event_stream<> _videosUpdated; mtpRequestId _stickersRequestId = 0; uint64 _stickersHash = 0; std::vector> _stickers; rpl::event_stream<> _stickersUpdated; int64 _monthlyAmount = 0; QString _monthlyCurrency; }; } // namespace Api