File indexing completed on 2024-05-12 16:25:57
0001 /* 0002 SPDX-FileCopyrightText: 2021-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 #include "libruqolacore_export.h" 0009 #include <QDebug> 0010 #include <QJsonObject> 0011 class LIBRUQOLACORE_EXPORT TeamInfo 0012 { 0013 public: 0014 TeamInfo(); 0015 ~TeamInfo() = default; 0016 0017 void parseTeamInfo(const QJsonObject &replyObject); 0018 0019 [[nodiscard]] QString teamId() const; 0020 void setTeamId(const QString &teamId); 0021 0022 [[nodiscard]] bool mainTeam() const; 0023 void setMainTeam(bool mainTeam); 0024 0025 [[nodiscard]] bool hasTeamRoom() const; 0026 0027 static void serialize(const TeamInfo &teams, QJsonObject &obj); 0028 [[nodiscard]] static TeamInfo deserialize(const QJsonObject &o); 0029 0030 [[nodiscard]] bool isValid() const; 0031 0032 [[nodiscard]] bool operator==(const TeamInfo &other) const; 0033 [[nodiscard]] bool operator!=(const TeamInfo &other) const; 0034 0035 [[nodiscard]] bool autoJoin() const; 0036 void setAutoJoin(bool autoJoin); 0037 0038 [[nodiscard]] int roomsCount() const; 0039 void setRoomsCount(int newRoomsCount); 0040 0041 private: 0042 QString mTeamId; 0043 int mRoomsCount = 0; 0044 bool mMainTeam = false; 0045 bool mAutoJoin = false; 0046 }; 0047 0048 Q_DECLARE_METATYPE(TeamInfo) 0049 Q_DECLARE_TYPEINFO(TeamInfo, Q_MOVABLE_TYPE); 0050 LIBRUQOLACORE_EXPORT QDebug operator<<(QDebug d, const TeamInfo &t);