// // Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2022 // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // #pragma once #include "td/telegram/DialogId.h" #include "td/telegram/FullMessageId.h" #include "td/telegram/LabeledPricePart.h" #include "td/telegram/td_api.h" #include "td/telegram/telegram_api.h" #include "td/utils/common.h" #include "td/utils/Promise.h" #include "td/utils/Slice.h" #include "td/utils/Status.h" #include "td/utils/StringBuilder.h" namespace td { class Td; struct ShippingOption { string id; string title; vector price_parts; }; bool operator==(const ShippingOption &lhs, const ShippingOption &rhs); bool operator!=(const ShippingOption &lhs, const ShippingOption &rhs); StringBuilder &operator<<(StringBuilder &string_builder, const ShippingOption &shipping_option); tl_object_ptr get_product_description_object(const string &description); void answer_shipping_query(Td *td, int64 shipping_query_id, vector> &&shipping_options, const string &error_message, Promise &&promise); void answer_pre_checkout_query(Td *td, int64 pre_checkout_query_id, const string &error_message, Promise &&promise); void get_payment_form(Td *td, td_api::object_ptr &&input_invoice, const td_api::object_ptr &theme, Promise> &&promise); void validate_order_info(Td *td, td_api::object_ptr &&input_invoice, td_api::object_ptr &&order_info, bool allow_save, Promise> &&promise); void send_payment_form(Td *td, td_api::object_ptr &&input_invoice, int64 payment_form_id, const string &order_info_id, const string &shipping_option_id, const td_api::object_ptr &credentials, int64 tip_amount, Promise> &&promise); void get_payment_receipt(Td *td, FullMessageId full_message_id, Promise> &&promise); void get_saved_order_info(Td *td, Promise> &&promise); void delete_saved_order_info(Td *td, Promise &&promise); void delete_saved_credentials(Td *td, Promise &&promise); void export_invoice(Td *td, td_api::object_ptr &&invoice, Promise &&promise); void get_bank_card_info(Td *td, const string &bank_card_number, Promise> &&promise); } // namespace td