diff options
Diffstat (limited to 'Telegram/SourceFiles/payments/ui/payments_panel_data.h')
-rw-r--r-- | Telegram/SourceFiles/payments/ui/payments_panel_data.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/Telegram/SourceFiles/payments/ui/payments_panel_data.h b/Telegram/SourceFiles/payments/ui/payments_panel_data.h new file mode 100644 index 0000000000..7351363500 --- /dev/null +++ b/Telegram/SourceFiles/payments/ui/payments_panel_data.h @@ -0,0 +1,86 @@ +/* +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 + +namespace Payments::Ui { + +struct LabeledPrice { + QString label; + uint64 price = 0; +}; + +struct Invoice { + std::vector<LabeledPrice> prices; + QString currency; + + bool isNameRequested = false; + bool isPhoneRequested = false; + bool isEmailRequested = false; + bool isShippingAddressRequested = false; + bool isFlexible = false; + bool isTest = false; + + bool phoneSentToProvider = false; + bool emailSentToProvider = false; + + [[nodiscard]] bool valid() const { + return !currency.isEmpty() && !prices.empty(); + } + [[nodiscard]] explicit operator bool() const { + return valid(); + } +}; + +struct Address { + QString address1; + QString address2; + QString city; + QString state; + QString countryIso2; + QString postCode; + + [[nodiscard]] bool valid() const { + return !address1.isEmpty() + && !city.isEmpty() + && !countryIso2.isEmpty(); + } + [[nodiscard]] explicit operator bool() const { + return valid(); + } +}; + +struct SavedInformation { + QString name; + QString phone; + QString email; + Address shippingAddress; + + [[nodiscard]] bool empty() const { + return name.isEmpty() + && phone.isEmpty() + && email.isEmpty() + && !shippingAddress; + } + [[nodiscard]] explicit operator bool() const { + return !empty(); + } +}; + +struct SavedCredentials { + QString id; + QString title; + + [[nodiscard]] bool valid() const { + return !id.isEmpty(); + } + [[nodiscard]] explicit operator bool() const { + return valid(); + } +}; + +} // namespace Payments::Ui |