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);