/**
 * Qt6 Common library
 *
 * The Qt6 Common library is auto-generated and available to users under the same license as the Qt which it is used with or built with. See available licenses below. 
 * SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

#ifndef QOAI_ENUM_H
#define QOAI_ENUM_H

#include "qoaiopenapicommoncommonexports.h"

#include <QtCore/qjsonvalue.h>
#include <QtCore/qstring.h>

QT_BEGIN_NAMESPACE

namespace QtOpenApiCommon {

class OPENAPICOMMON_COMMON_EXPORT QOAIEnum {
public:
    QOAIEnum();
    virtual ~QOAIEnum();

    virtual QJsonValue asJsonValue() const = 0;
    virtual QString asJson() const = 0;
    virtual void fromJson(const QString &jsonString) = 0;
    virtual void fromJsonValue(const QJsonValue &jval) = 0;
    virtual bool isSet() const = 0;
    virtual bool isValid() const = 0;

private:
    friend bool operator==(const QOAIEnum &lhs, const QOAIEnum &rhs)
    { return lhs.asJsonValue() == rhs.asJsonValue(); }
    friend bool operator!=(const QOAIEnum &lhs, const QOAIEnum &rhs)
    { return !operator==(lhs, rhs); }

    friend size_t qHash(const QOAIEnum &val, size_t seed)
    { return qHash(val.asJsonValue(), seed); }
    friend size_t qHash(const QOAIEnum &val)
    { return qHash(val, 0); }
};

} // namespace QtOpenApiCommon

QT_END_NAMESPACE

#endif // QOAI_ENUM_H
