// This file generated by libqtelegram-code-generator.
// You can download it from: https://github.com/Aseman-Land/libqtelegram-code-generator
// DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

#ifndef LQTG_FNC_PAYMENTS
#define LQTG_FNC_PAYMENTS

#include "telegramfunctionobject.h"
#include "telegram/types/paymentspaymentform.h"
#include <QtGlobal>
#include "telegram/types/paymentspaymentreceipt.h"
#include "telegram/types/paymentsvalidatedrequestedinfo.h"
#include "telegram/types/paymentrequestedinfo.h"
#include "telegram/types/paymentspaymentresult.h"
#include <QString>
#include "telegram/types/inputpaymentcredentials.h"
#include "telegram/types/paymentssavedinfo.h"

namespace Tg {
namespace Functions {

class LIBQTELEGRAMSHARED_EXPORT Payments : public TelegramFunctionObject
{
public:
    enum PaymentsFunction {
        fncPaymentsGetPaymentForm = 0x99f09745,
        fncPaymentsGetPaymentReceipt = 0xa092a980,
        fncPaymentsValidateRequestedInfo = 0x770a8e74,
        fncPaymentsSendPaymentForm = 0x2b8879b3,
        fncPaymentsGetSavedInfo = 0x227d824b,
        fncPaymentsClearSavedInfo = 0xd83d70c1
    };

    Payments();
    virtual ~Payments();

    static bool getPaymentForm(OutboundPkt *out, qint32 msgId);
    static PaymentsPaymentForm getPaymentFormResult(InboundPkt *in);

    static bool getPaymentReceipt(OutboundPkt *out, qint32 msgId);
    static PaymentsPaymentReceipt getPaymentReceiptResult(InboundPkt *in);

    static bool validateRequestedInfo(OutboundPkt *out, bool save, qint32 msgId, const PaymentRequestedInfo &info);
    static PaymentsValidatedRequestedInfo validateRequestedInfoResult(InboundPkt *in);

    static bool sendPaymentForm(OutboundPkt *out, qint32 msgId, const QString &requestedInfoId, const QString &shippingOptionId, const InputPaymentCredentials &credentials);
    static PaymentsPaymentResult sendPaymentFormResult(InboundPkt *in);

    static bool getSavedInfo(OutboundPkt *out);
    static PaymentsSavedInfo getSavedInfoResult(InboundPkt *in);

    static bool clearSavedInfo(OutboundPkt *out, bool credentials, bool info);
    static bool clearSavedInfoResult(InboundPkt *in);

};

}
}

#endif // LQTG_FNC_PAYMENTS
