1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
/*
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
*/
#include "api/api_premium_option.h"
#include "ui/text/format_values.h"
namespace Api {
constexpr auto kDiscountDivider = 1.;
Data::SubscriptionOption CreateSubscriptionOption(
int months,
int monthlyAmount,
int64 amount,
const QString ¤cy,
const QString &botUrl) {
const auto discount = [&] {
const auto percent = 1. - float64(amount) / (monthlyAmount * months);
return std::round(percent * 100. / kDiscountDivider)
* kDiscountDivider;
}();
return {
.duration = Ui::FormatTTL(months * 86400 * 31),
.discount = discount
? QString::fromUtf8("\xe2\x88\x92%1%").arg(discount)
: QString(),
.costPerMonth = Ui::FillAmountAndCurrency(
amount / float64(months),
currency),
.costTotal = Ui::FillAmountAndCurrency(amount, currency),
.botUrl = botUrl,
};
}
} // namespace Api
|