// 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_BOT_TYPE_BOTINLINEQUERYRESULT
#define LQTG_BOT_TYPE_BOTINLINEQUERYRESULT

#include "telegrambottypeobject.h"

#include <QMetaType>
#include <QVariant>
#include "../coretypes.h"

#include <QDataStream>
#include <QDebug>

#include <QString>
#include <QtGlobal>
#include "botinputmessagecontent.h"
#include "botinlinekeyboardmarkup.h"

class LIBQTELEGRAMSHARED_EXPORT BotInlineQueryResult : public TelegramBotTypeObject
{
public:
    enum BotInlineQueryResultClassType {
        typeTypeInlineQueryResultArticle = 0xffa800,
        typeTypeInlineQueryResultPhoto = 0xffa800,
        typeTypeInlineQueryResultGif = 0xffa800,
        typeTypeInlineQueryResultMpeg4Gif = 0xffa800,
        typeTypeInlineQueryResultVideo = 0xffa800,
        typeTypeInlineQueryResultAudio = 0xffa800,
        typeTypeInlineQueryResultVoice = 0xffa800,
        typeTypeInlineQueryResultDocument = 0xffa800,
        typeTypeInlineQueryResultLocation = 0xffa800,
        typeTypeInlineQueryResultVenue = 0xffa800,
        typeTypeInlineQueryResultContact = 0xffa800,
        typeTypeInlineQueryResultGame = 0xffa800,
        typeTypeInlineQueryResultCachedPhoto = 0xffa800,
        typeTypeInlineQueryResultCachedGif = 0xffa800,
        typeTypeInlineQueryResultCachedMpeg4Gif = 0xffa800,
        typeTypeInlineQueryResultCachedSticker = 0xffa800,
        typeTypeInlineQueryResultCachedDocument = 0xffa800,
        typeTypeInlineQueryResultCachedVideo = 0xffa800,
        typeTypeInlineQueryResultCachedVoice = 0xffa800,
        typeTypeInlineQueryResultCachedAudio = 0xffa800
    };

    BotInlineQueryResult(const QMap<QString, QVariant> &map);
    BotInlineQueryResult(const Null &_null = TelegramBotTypeObject::null);
    BotInlineQueryResult(const BotInlineQueryResult &another);
    virtual ~BotInlineQueryResult();

    void setAddress(const QString &address);
    QString address() const;

    void setAudioDuration(qint32 audioDuration);
    qint32 audioDuration() const;

    void setAudioFileId(const QString &audioFileId);
    QString audioFileId() const;

    void setAudioUrl(const QString &audioUrl);
    QString audioUrl() const;

    void setCaption(const QString &caption);
    QString caption() const;

    void setDescription(const QString &description);
    QString description() const;

    void setDocumentFileId(const QString &documentFileId);
    QString documentFileId() const;

    void setDocumentUrl(const QString &documentUrl);
    QString documentUrl() const;

    void setFirstName(const QString &firstName);
    QString firstName() const;

    void setFoursquareId(const QString &foursquareId);
    QString foursquareId() const;

    void setGameShortName(const QString &gameShortName);
    QString gameShortName() const;

    void setGifFileId(const QString &gifFileId);
    QString gifFileId() const;

    void setGifHeight(qint32 gifHeight);
    qint32 gifHeight() const;

    void setGifUrl(const QString &gifUrl);
    QString gifUrl() const;

    void setGifWidth(qint32 gifWidth);
    qint32 gifWidth() const;

    void setHideUrl(bool hideUrl);
    bool hideUrl() const;

    void setId(const QString &id);
    QString id() const;

    void setInputMessageContent(const BotInputMessageContent &inputMessageContent);
    BotInputMessageContent inputMessageContent() const;

    void setLangitude(qreal langitude);
    qreal langitude() const;

    void setLastName(const QString &lastName);
    QString lastName() const;

    void setLatitude(qreal latitude);
    qreal latitude() const;

    void setMimeType(const QString &mimeType);
    QString mimeType() const;

    void setMpef4FileId(const QString &mpef4FileId);
    QString mpef4FileId() const;

    void setMpeg4Height(qint32 mpeg4Height);
    qint32 mpeg4Height() const;

    void setMpeg4Url(const QString &mpeg4Url);
    QString mpeg4Url() const;

    void setMpeg4Width(qint32 mpeg4Width);
    qint32 mpeg4Width() const;

    void setPerformer(const QString &performer);
    QString performer() const;

    void setPhoneNumber(const QString &phoneNumber);
    QString phoneNumber() const;

    void setPhotoFileId(const QString &photoFileId);
    QString photoFileId() const;

    void setPhotoHeight(qint32 photoHeight);
    qint32 photoHeight() const;

    void setPhotoUrl(const QString &photoUrl);
    QString photoUrl() const;

    void setPhotoWidth(qint32 photoWidth);
    qint32 photoWidth() const;

    void setReplyMarkup(const BotInlineKeyboardMarkup &replyMarkup);
    BotInlineKeyboardMarkup replyMarkup() const;

    void setStickerFileId(const QString &stickerFileId);
    QString stickerFileId() const;

    void setThumbHeight(qint32 thumbHeight);
    qint32 thumbHeight() const;

    void setThumbUrl(const QString &thumbUrl);
    QString thumbUrl() const;

    void setThumbWidth(qint32 thumbWidth);
    qint32 thumbWidth() const;

    void setTitle(const QString &title);
    QString title() const;

    void setType(const QString &type);
    QString type() const;

    void setUrl(const QString &url);
    QString url() const;

    void setVideoDuration(qint32 videoDuration);
    qint32 videoDuration() const;

    void setVideoHeight(qint32 videoHeight);
    qint32 videoHeight() const;

    void setVideoUrl(const QString &videoUrl);
    QString videoUrl() const;

    void setVideoUrlId(const QString &videoUrlId);
    QString videoUrlId() const;

    void setVideoWidth(qint32 videoWidth);
    qint32 videoWidth() const;

    void setVoiceDuration(qint32 voiceDuration);
    qint32 voiceDuration() const;

    void setVoiceFileId(const QString &voiceFileId);
    QString voiceFileId() const;

    void setVoiceUrl(const QString &voiceUrl);
    QString voiceUrl() const;

    void setClassType(BotInlineQueryResultClassType classType);
    BotInlineQueryResultClassType classType() const;

    QMap<QString, QVariant> toMap() const;
    void fromMap(const QMap<QString, QVariant> &map);
    bool operator ==(const BotInlineQueryResult &b) const;
    BotInlineQueryResult &operator =(const BotInlineQueryResult &b);

    bool operator==(bool stt) const { return isNull() != stt; }
    bool operator!=(bool stt) const { return !operator ==(stt); }

    QByteArray getHash(QCryptographicHash::Algorithm alg = QCryptographicHash::Md5) const;

private:
    QString m_address;
    qint32 m_audioDuration;
    QString m_audioFileId;
    QString m_audioUrl;
    QString m_caption;
    QString m_description;
    QString m_documentFileId;
    QString m_documentUrl;
    QString m_firstName;
    QString m_foursquareId;
    QString m_gameShortName;
    QString m_gifFileId;
    qint32 m_gifHeight;
    QString m_gifUrl;
    qint32 m_gifWidth;
    bool m_hideUrl;
    QString m_id;
    BotInputMessageContent m_inputMessageContent;
    qreal m_langitude;
    QString m_lastName;
    qreal m_latitude;
    QString m_mimeType;
    QString m_mpef4FileId;
    qint32 m_mpeg4Height;
    QString m_mpeg4Url;
    qint32 m_mpeg4Width;
    QString m_performer;
    QString m_phoneNumber;
    QString m_photoFileId;
    qint32 m_photoHeight;
    QString m_photoUrl;
    qint32 m_photoWidth;
    BotInlineKeyboardMarkup m_replyMarkup;
    QString m_stickerFileId;
    qint32 m_thumbHeight;
    QString m_thumbUrl;
    qint32 m_thumbWidth;
    QString m_title;
    QString m_type;
    QString m_url;
    qint32 m_videoDuration;
    qint32 m_videoHeight;
    QString m_videoUrl;
    QString m_videoUrlId;
    qint32 m_videoWidth;
    qint32 m_voiceDuration;
    QString m_voiceFileId;
    QString m_voiceUrl;
    BotInlineQueryResultClassType m_classType;
};

Q_DECLARE_METATYPE(BotInlineQueryResult)

QDataStream LIBQTELEGRAMSHARED_EXPORT &operator<<(QDataStream &stream, const BotInlineQueryResult &item);
QDataStream LIBQTELEGRAMSHARED_EXPORT &operator>>(QDataStream &stream, BotInlineQueryResult &item);

QDebug LIBQTELEGRAMSHARED_EXPORT operator<<(QDebug debug,  const BotInlineQueryResult &item);

#endif // LQTG_BOT_TYPE_BOTINLINEQUERYRESULT
