/* This file is autogenerated. DO NOT CHANGE. All changes will be lost */

#ifndef Q_PROTOBUF_annotation_H
#define Q_PROTOBUF_annotation_H

#include <QtProtobuf/QProtobufMessage>
#include <QtCore/QMetaType>
#include <QtCore/QList>

#include <QtProtobuf/qprotobufobject.h>
#include <QtProtobuf/qprotobuflazymessagepointer.h>

#include <memory>

#include <QByteArray>
#include <QString>


namespace qtprotobufnamespace::tests {
class AnnotatedMessage1;
using AnnotatedMessage1Repeated = QList<std::shared_ptr<AnnotatedMessage1>>;
class AnnotatedMessage2;
using AnnotatedMessage2Repeated = QList<std::shared_ptr<AnnotatedMessage2>>;
class AnnotatedMessage3;
using AnnotatedMessage3Repeated = QList<std::shared_ptr<AnnotatedMessage3>>;
class AnnotatedMessage4;
using AnnotatedMessage4Repeated = QList<std::shared_ptr<AnnotatedMessage4>>;
class AnnotatedMessage5;
using AnnotatedMessage5Repeated = QList<std::shared_ptr<AnnotatedMessage5>>;
class AnnotatedMessage6;
using AnnotatedMessage6Repeated = QList<std::shared_ptr<AnnotatedMessage6>>;
class AnnotatedMessage7;
using AnnotatedMessage7Repeated = QList<std::shared_ptr<AnnotatedMessage7>>;
class AnnotatedMessage8;
using AnnotatedMessage8Repeated = QList<std::shared_ptr<AnnotatedMessage8>>;
class AnnotatedMessage9;
using AnnotatedMessage9Repeated = QList<std::shared_ptr<AnnotatedMessage9>>;

/* test annotation */
class  AnnotatedMessage1 : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(AnnotatedMessage1)
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage1();
    ~AnnotatedMessage1();
    AnnotatedMessage1(const AnnotatedMessage1 &other);
    AnnotatedMessage1 &operator =(const AnnotatedMessage1 &other);
    AnnotatedMessage1(AnnotatedMessage1 &&other) noexcept;
    AnnotatedMessage1 &operator =(AnnotatedMessage1 &&other) noexcept;
    bool operator ==(const AnnotatedMessage1 &other) const;
    bool operator !=(const AnnotatedMessage1 &other) const;

    /**
     * \brief Field annotation
     */
    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField)
            m_testField = testField;
    }

    static void registerTypes();

private:
    QtProtobuf::sint32 m_testField;
};


/* test annotation */
class  AnnotatedMessage2 : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(AnnotatedMessage2)
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage2();
    ~AnnotatedMessage2();
    AnnotatedMessage2(const AnnotatedMessage2 &other);
    AnnotatedMessage2 &operator =(const AnnotatedMessage2 &other);
    AnnotatedMessage2(AnnotatedMessage2 &&other) noexcept;
    AnnotatedMessage2 &operator =(AnnotatedMessage2 &&other) noexcept;
    bool operator ==(const AnnotatedMessage2 &other) const;
    bool operator !=(const AnnotatedMessage2 &other) const;

    /*!
     * \brief Field annotation
     */
    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField)
            m_testField = testField;
    }

    static void registerTypes();

private:
    QtProtobuf::sint32 m_testField;
};


/* test annotation */
class  AnnotatedMessage3 : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(AnnotatedMessage3)
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage3();
    ~AnnotatedMessage3();
    AnnotatedMessage3(const AnnotatedMessage3 &other);
    AnnotatedMessage3 &operator =(const AnnotatedMessage3 &other);
    AnnotatedMessage3(AnnotatedMessage3 &&other) noexcept;
    AnnotatedMessage3 &operator =(AnnotatedMessage3 &&other) noexcept;
    bool operator ==(const AnnotatedMessage3 &other) const;
    bool operator !=(const AnnotatedMessage3 &other) const;

    /*
     * Field annotation
     * Field annotation secondline
     */
    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField)
            m_testField = testField;
    }

    static void registerTypes();

private:
    QtProtobuf::sint32 m_testField;
};


/* test annotation */
class  AnnotatedMessage4 : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(AnnotatedMessage4)
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage4();
    ~AnnotatedMessage4();
    AnnotatedMessage4(const AnnotatedMessage4 &other);
    AnnotatedMessage4 &operator =(const AnnotatedMessage4 &other);
    AnnotatedMessage4(AnnotatedMessage4 &&other) noexcept;
    AnnotatedMessage4 &operator =(AnnotatedMessage4 &&other) noexcept;
    bool operator ==(const AnnotatedMessage4 &other) const;
    bool operator !=(const AnnotatedMessage4 &other) const;

    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField)
            m_testField = testField;
    }

    static void registerTypes();

private:
    QtProtobuf::sint32 m_testField;
};


/*! \brief test annotation */
class  AnnotatedMessage5 : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(AnnotatedMessage5)
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage5();
    ~AnnotatedMessage5();
    AnnotatedMessage5(const AnnotatedMessage5 &other);
    AnnotatedMessage5 &operator =(const AnnotatedMessage5 &other);
    AnnotatedMessage5(AnnotatedMessage5 &&other) noexcept;
    AnnotatedMessage5 &operator =(AnnotatedMessage5 &&other) noexcept;
    bool operator ==(const AnnotatedMessage5 &other) const;
    bool operator !=(const AnnotatedMessage5 &other) const;

    /* Field annotation */
    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField)
            m_testField = testField;
    }

    static void registerTypes();

private:
    QtProtobuf::sint32 m_testField;
};


/** \brief test annotation */
class  AnnotatedMessage6 : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(AnnotatedMessage6)
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage6();
    ~AnnotatedMessage6();
    AnnotatedMessage6(const AnnotatedMessage6 &other);
    AnnotatedMessage6 &operator =(const AnnotatedMessage6 &other);
    AnnotatedMessage6(AnnotatedMessage6 &&other) noexcept;
    AnnotatedMessage6 &operator =(AnnotatedMessage6 &&other) noexcept;
    bool operator ==(const AnnotatedMessage6 &other) const;
    bool operator !=(const AnnotatedMessage6 &other) const;

    /** Field annotation */
    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField)
            m_testField = testField;
    }

    static void registerTypes();

private:
    QtProtobuf::sint32 m_testField;
};


/*!
 * \brief test annotation
 */
class  AnnotatedMessage7 : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(AnnotatedMessage7)
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage7();
    ~AnnotatedMessage7();
    AnnotatedMessage7(const AnnotatedMessage7 &other);
    AnnotatedMessage7 &operator =(const AnnotatedMessage7 &other);
    AnnotatedMessage7(AnnotatedMessage7 &&other) noexcept;
    AnnotatedMessage7 &operator =(AnnotatedMessage7 &&other) noexcept;
    bool operator ==(const AnnotatedMessage7 &other) const;
    bool operator !=(const AnnotatedMessage7 &other) const;

    /*! Field annotation */
    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField)
            m_testField = testField;
    }

    static void registerTypes();

private:
    QtProtobuf::sint32 m_testField;
};


/**
 * \brief test annotation
 */
class  AnnotatedMessage8 : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(AnnotatedMessage8)
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage8();
    ~AnnotatedMessage8();
    AnnotatedMessage8(const AnnotatedMessage8 &other);
    AnnotatedMessage8 &operator =(const AnnotatedMessage8 &other);
    AnnotatedMessage8(AnnotatedMessage8 &&other) noexcept;
    AnnotatedMessage8 &operator =(AnnotatedMessage8 &&other) noexcept;
    bool operator ==(const AnnotatedMessage8 &other) const;
    bool operator !=(const AnnotatedMessage8 &other) const;

    /* Field annotation */
    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField)
            m_testField = testField;
    }

    static void registerTypes();

private:
    QtProtobuf::sint32 m_testField;
};


/*
 * test annotation
 * test annotation secondline
 */
class  AnnotatedMessage9 : public QProtobufMessage
{
    Q_GADGET
    Q_PROTOBUF_OBJECT
    Q_DECLARE_PROTOBUF_SERIALIZERS(AnnotatedMessage9)
    Q_PROPERTY(QtProtobuf::sint32 testField READ testField WRITE setTestField SCRIPTABLE true)

public:
    enum QtProtobufFieldEnum {
        TestFieldProtoFieldNumber = 1,
    };
    Q_ENUM(QtProtobufFieldEnum)

    AnnotatedMessage9();
    ~AnnotatedMessage9();
    AnnotatedMessage9(const AnnotatedMessage9 &other);
    AnnotatedMessage9 &operator =(const AnnotatedMessage9 &other);
    AnnotatedMessage9(AnnotatedMessage9 &&other) noexcept;
    AnnotatedMessage9 &operator =(AnnotatedMessage9 &&other) noexcept;
    bool operator ==(const AnnotatedMessage9 &other) const;
    bool operator !=(const AnnotatedMessage9 &other) const;

    /* Field annotation */
    QtProtobuf::sint32 testField() const {
        return m_testField;
    }

    void setTestField(const QtProtobuf::sint32 &testField) {
        if (m_testField != testField)
            m_testField = testField;
    }

    static void registerTypes();

private:
    QtProtobuf::sint32 m_testField;
};

} // namespace qtprotobufnamespace::tests

Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage1)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage2)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage3)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage4)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage5)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage6)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage7)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage8)
Q_DECLARE_METATYPE(qtprotobufnamespace::tests::AnnotatedMessage9)
#endif // Q_PROTOBUF_annotation_H
