File indexing completed on 2024-05-12 16:25:55

0001 /*
0002    SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "libruqolacore_export.h"
0010 #include "ownuserpreferences.h"
0011 #include "servicepassword.h"
0012 #include "user.h"
0013 
0014 class LIBRUQOLACORE_EXPORT OwnUser
0015 {
0016 public:
0017     OwnUser();
0018     ~OwnUser();
0019     void parseOwnUserInfo(const QJsonObject &replyObject);
0020 
0021     [[nodiscard]] QString userId() const;
0022     void setUserId(const QString &userId);
0023 
0024     [[nodiscard]] QString userName() const;
0025     void setUserName(const QString &userName);
0026 
0027     [[nodiscard]] QString status() const;
0028     void setStatus(const QString &status);
0029 
0030     [[nodiscard]] bool operator==(const OwnUser &other) const;
0031 
0032     [[nodiscard]] QString email() const;
0033     void setEmail(const QString &email);
0034 
0035     [[nodiscard]] QString statusText() const;
0036     void setStatusText(const QString &statusText);
0037 
0038     [[nodiscard]] QString name() const;
0039     void setName(const QString &name);
0040 
0041     [[nodiscard]] QString avatarUrl() const;
0042     void setAvatarUrl(const QString &avatarUrl);
0043 
0044     [[nodiscard]] double utcOffset() const;
0045     void setUtcOffset(double utcOffset);
0046 
0047     [[nodiscard]] QString statusDefault() const;
0048     void setStatusDefault(const QString &statusDefault);
0049 
0050     [[nodiscard]] User user() const;
0051 
0052     [[nodiscard]] QString nickName() const;
0053     void setNickName(const QString &nickName);
0054 
0055     [[nodiscard]] QStringList roles() const;
0056     void setRoles(const QStringList &roles);
0057 
0058     [[nodiscard]] bool isAdministrator() const;
0059 
0060     [[nodiscard]] ServicePassword servicePassword() const;
0061     void setServicePassword(const ServicePassword &servicePassword);
0062 
0063     [[nodiscard]] OwnUserPreferences ownUserPreferences() const;
0064     void setOwnUserPreferences(const OwnUserPreferences &ownUserPreferences);
0065 
0066 private:
0067     QString mUserId;
0068     QString mUserName;
0069     QString mStatus;
0070     QString mEmail;
0071     QString mStatusText;
0072     QString mName;
0073     QString mAvatarUrl;
0074     QString mStatusDefault;
0075     QString mNickName;
0076     QStringList mRoles;
0077     ServicePassword mServicePassword;
0078     OwnUserPreferences mOwnUserPreferences;
0079     double mUtcOffset = 0.0;
0080 };
0081 Q_DECLARE_METATYPE(OwnUser)
0082 Q_DECLARE_TYPEINFO(OwnUser, Q_MOVABLE_TYPE);
0083 LIBRUQOLACORE_EXPORT QDebug operator<<(QDebug d, const OwnUser &t);