// 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_TYPE_INPUTGAME_OBJECT
#define LQTG_TYPE_INPUTGAME_OBJECT

#include "telegramtypeqobject.h"
#include "telegram/types/inputgame.h"

#include <QPointer>
#include "inputuserobject.h"

class LIBQTELEGRAMSHARED_EXPORT InputGameObject : public TelegramTypeQObject
{
    Q_OBJECT
    Q_ENUMS(InputGameClassType)
    Q_PROPERTY(qint64 accessHash READ accessHash WRITE setAccessHash NOTIFY accessHashChanged)
    Q_PROPERTY(InputUserObject* botId READ botId WRITE setBotId NOTIFY botIdChanged)
    Q_PROPERTY(qint64 id READ id WRITE setId NOTIFY idChanged)
    Q_PROPERTY(QString shortName READ shortName WRITE setShortName NOTIFY shortNameChanged)
    Q_PROPERTY(InputGame core READ core WRITE setCore NOTIFY coreChanged)
    Q_PROPERTY(quint32 classType READ classType WRITE setClassType NOTIFY classTypeChanged)

public:
    enum InputGameClassType {
        TypeInputGameID,
        TypeInputGameShortName
    };

    InputGameObject(const InputGame &core, QObject *parent = 0);
    InputGameObject(QObject *parent = 0);
    virtual ~InputGameObject();

    void setAccessHash(qint64 accessHash);
    qint64 accessHash() const;

    void setBotId(InputUserObject* botId);
    InputUserObject* botId() const;

    void setId(qint64 id);
    qint64 id() const;

    void setShortName(const QString &shortName);
    QString shortName() const;

    void setClassType(quint32 classType);
    quint32 classType() const;

    void setCore(const InputGame &core);
    InputGame core() const;

    InputGameObject &operator =(const InputGame &b);
    bool operator ==(const InputGame &b) const;

Q_SIGNALS:
    void coreChanged();
    void classTypeChanged();
    void accessHashChanged();
    void botIdChanged();
    void idChanged();
    void shortNameChanged();

private Q_SLOTS:
    void coreBotIdChanged();

private:
    QPointer<InputUserObject> m_botId;
    InputGame m_core;
};

#endif // LQTG_TYPE_INPUTGAME_OBJECT
