File indexing completed on 2024-05-12 05:01:59

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 
0009 #include "libruqolacore_export.h"
0010 #include <QDateTime>
0011 #include <QDebug>
0012 
0013 class LIBRUQOLACORE_EXPORT InviteInfo
0014 {
0015 public:
0016     InviteInfo();
0017     ~InviteInfo() = default;
0018     void parseInviteInfo(const QJsonObject &replyObject);
0019     const QString &identifier() const;
0020     void setIdentifier(const QString &newIdentifier);
0021 
0022     [[nodiscard]] int maxUses() const;
0023     void setMaxUses(int newMaxUses);
0024 
0025     [[nodiscard]] const QString &userIdentifier() const;
0026     void setUserIdentifier(const QString &newUserIdentifier);
0027 
0028     [[nodiscard]] const QString &roomId() const;
0029     void setRoomId(const QString &newRoomId);
0030 
0031     [[nodiscard]] int uses() const;
0032     void setUses(int newUses);
0033 
0034     [[nodiscard]] const QDateTime &expireDateTime() const;
0035     void setExpireDateTime(const QDateTime &newExpireDateTime);
0036 
0037     [[nodiscard]] const QDateTime &createDateTime() const;
0038     void setCreateDateTime(const QDateTime &newCreateDateTime);
0039 
0040     [[nodiscard]] bool operator==(const InviteInfo &other) const;
0041 
0042 private:
0043     QString mUserIdentifier;
0044     QString mIdentifier;
0045     QString mRoomId;
0046     QDateTime mExpireDateTime;
0047     QDateTime mCreateDateTime;
0048     int mUses = 0;
0049     int mMaxUses = 0;
0050 };
0051 
0052 Q_DECLARE_METATYPE(InviteInfo)
0053 Q_DECLARE_TYPEINFO(InviteInfo, Q_RELOCATABLE_TYPE);
0054 LIBRUQOLACORE_EXPORT QDebug operator<<(QDebug d, const InviteInfo &t);