/**
 * OpenAPI Generated Petstore Client
 *
 * This is a sample of Petstore application.
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

/*
 * user.h
 *
 * A User who is purchasing from the pet store
 */

#ifndef USER_H
#define USER_H

#include "cmakegeneratedclientexports.h"
#include "qoaiobject.h"


#include <QString>

namespace QtOpenAPI {

class CMAKEGENERATEDCLIENT_EXPORT User : public QtOpenApiCommon::QOAIObject {
    Q_GADGET

    Q_PROPERTY(qint64 id READ getId WRITE setId)
    Q_PROPERTY(QString username READ getUsername WRITE setUsername)
    Q_PROPERTY(QString firstName READ getFirstName WRITE setFirstName)
    Q_PROPERTY(QString lastName READ getLastName WRITE setLastName)
    Q_PROPERTY(QString email READ getEmail WRITE setEmail)
    Q_PROPERTY(QString password READ getPassword WRITE setPassword)
    Q_PROPERTY(QString phone READ getPhone WRITE setPhone)
    Q_PROPERTY(qint32 userStatus READ getUserStatus WRITE setUserStatus)
public:
    User();
    Q_IMPLICIT User(const QString &json);
    ~User() override;

    QString asJson() const override;
    QJsonValue asJsonValue() const override;
    void fromJsonValue(const QJsonValue &json) override;
    void fromJson(const QString &jsonString) override;

    qint64 getId() const;
    void setId(const qint64 &id);
    bool isIdValueSet() const;
    bool isIdValueValid() const;

    QString getUsername() const;
    void setUsername(const QString &username);
    bool isUsernameValueSet() const;
    bool isUsernameValueValid() const;

    QString getFirstName() const;
    void setFirstName(const QString &firstName);
    bool isFirstNameValueSet() const;
    bool isFirstNameValueValid() const;

    QString getLastName() const;
    void setLastName(const QString &lastName);
    bool isLastNameValueSet() const;
    bool isLastNameValueValid() const;

    QString getEmail() const;
    void setEmail(const QString &email);
    bool isEmailValueSet() const;
    bool isEmailValueValid() const;

    QString getPassword() const;
    void setPassword(const QString &password);
    bool isPasswordValueSet() const;
    bool isPasswordValueValid() const;

    QString getPhone() const;
    void setPhone(const QString &phone);
    bool isPhoneValueSet() const;
    bool isPhoneValueValid() const;

    qint32 getUserStatus() const;
    void setUserStatus(const qint32 &userStatus);
    bool isUserStatusValueSet() const;
    bool isUserStatusValueValid() const;

    bool isSet() const override;
    bool isValid() const override;

private:
    void initializeModel();
    qint64 m_id;
    bool m_idIsSet;
    bool m_idIsValid;
    QString m_username;
    bool m_usernameIsSet;
    bool m_usernameIsValid;
    QString m_firstName;
    bool m_firstNameIsSet;
    bool m_firstNameIsValid;
    QString m_lastName;
    bool m_lastNameIsSet;
    bool m_lastNameIsValid;
    QString m_email;
    bool m_emailIsSet;
    bool m_emailIsValid;
    QString m_password;
    bool m_passwordIsSet;
    bool m_passwordIsValid;
    QString m_phone;
    bool m_phoneIsSet;
    bool m_phoneIsValid;
    qint32 m_userStatus;
    bool m_userStatusIsSet;
    bool m_userStatusIsValid;
};

} // namespace QtOpenAPI

Q_DECLARE_METATYPE(QtOpenAPI::User)

#endif // USER_H
