data_premium_limits.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /*
  2. This file is part of Telegram Desktop,
  3. the official desktop application for the Telegram messaging service.
  4. For license and copyright information please follow this link:
  5. https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
  6. */
  7. #pragma once
  8. namespace Main {
  9. class Session;
  10. } // namespace Main
  11. namespace Data {
  12. class PremiumLimits final {
  13. public:
  14. PremiumLimits(not_null<Main::Session*> session);
  15. [[nodiscard]] int channelsDefault() const;
  16. [[nodiscard]] int channelsPremium() const;
  17. [[nodiscard]] int channelsCurrent() const;
  18. [[nodiscard]] int similarChannelsDefault() const;
  19. [[nodiscard]] int similarChannelsPremium() const;
  20. [[nodiscard]] int similarChannelsCurrent() const;
  21. [[nodiscard]] int gifsDefault() const;
  22. [[nodiscard]] int gifsPremium() const;
  23. [[nodiscard]] int gifsCurrent() const;
  24. [[nodiscard]] int stickersFavedDefault() const;
  25. [[nodiscard]] int stickersFavedPremium() const;
  26. [[nodiscard]] int stickersFavedCurrent() const;
  27. [[nodiscard]] int dialogFiltersDefault() const;
  28. [[nodiscard]] int dialogFiltersPremium() const;
  29. [[nodiscard]] int dialogFiltersCurrent() const;
  30. [[nodiscard]] int dialogShareableFiltersDefault() const;
  31. [[nodiscard]] int dialogShareableFiltersPremium() const;
  32. [[nodiscard]] int dialogShareableFiltersCurrent() const;
  33. [[nodiscard]] int dialogFiltersChatsDefault() const;
  34. [[nodiscard]] int dialogFiltersChatsPremium() const;
  35. [[nodiscard]] int dialogFiltersChatsCurrent() const;
  36. [[nodiscard]] int dialogFiltersLinksDefault() const;
  37. [[nodiscard]] int dialogFiltersLinksPremium() const;
  38. [[nodiscard]] int dialogFiltersLinksCurrent() const;
  39. [[nodiscard]] int dialogsPinnedDefault() const;
  40. [[nodiscard]] int dialogsPinnedPremium() const;
  41. [[nodiscard]] int dialogsPinnedCurrent() const;
  42. [[nodiscard]] int dialogsFolderPinnedDefault() const;
  43. [[nodiscard]] int dialogsFolderPinnedPremium() const;
  44. [[nodiscard]] int dialogsFolderPinnedCurrent() const;
  45. [[nodiscard]] int topicsPinnedCurrent() const;
  46. [[nodiscard]] int savedSublistsPinnedDefault() const;
  47. [[nodiscard]] int savedSublistsPinnedPremium() const;
  48. [[nodiscard]] int savedSublistsPinnedCurrent() const;
  49. [[nodiscard]] int channelsPublicDefault() const;
  50. [[nodiscard]] int channelsPublicPremium() const;
  51. [[nodiscard]] int channelsPublicCurrent() const;
  52. [[nodiscard]] int captionLengthDefault() const;
  53. [[nodiscard]] int captionLengthPremium() const;
  54. [[nodiscard]] int captionLengthCurrent() const;
  55. [[nodiscard]] int uploadMaxDefault() const;
  56. [[nodiscard]] int uploadMaxPremium() const;
  57. [[nodiscard]] int uploadMaxCurrent() const;
  58. [[nodiscard]] int aboutLengthDefault() const;
  59. [[nodiscard]] int aboutLengthPremium() const;
  60. [[nodiscard]] int aboutLengthCurrent() const;
  61. [[nodiscard]] int maxBoostLevel() const;
  62. private:
  63. [[nodiscard]] int appConfigLimit(
  64. const QString &key,
  65. int fallback) const;
  66. [[nodiscard]] bool isPremium() const;
  67. const not_null<Main::Session*> _session;
  68. };
  69. class LevelLimits final {
  70. public:
  71. LevelLimits(not_null<Main::Session*> session);
  72. [[nodiscard]] int channelColorLevelMin() const;
  73. [[nodiscard]] int channelBgIconLevelMin() const;
  74. [[nodiscard]] int channelProfileBgIconLevelMin() const;
  75. [[nodiscard]] int channelEmojiStatusLevelMin() const;
  76. [[nodiscard]] int channelWallpaperLevelMin() const;
  77. [[nodiscard]] int channelCustomWallpaperLevelMin() const;
  78. [[nodiscard]] int channelRestrictSponsoredLevelMin() const;
  79. [[nodiscard]] int groupTranscribeLevelMin() const;
  80. [[nodiscard]] int groupEmojiStickersLevelMin() const;
  81. [[nodiscard]] int groupProfileBgIconLevelMin() const;
  82. [[nodiscard]] int groupEmojiStatusLevelMin() const;
  83. [[nodiscard]] int groupWallpaperLevelMin() const;
  84. [[nodiscard]] int groupCustomWallpaperLevelMin() const;
  85. private:
  86. const not_null<Main::Session*> _session;
  87. };
  88. } // namespace Data