File indexing completed on 2024-05-12 05:22:26

0001 /*
0002  * SPDX-FileCopyrightText: 2021 Daniel Vrátil <dvratil@kde.org>
0003  * SPDX-FileCopyrightText: 2022 Claudio Cambra <claudio.cambra@kde.org>
0004  *
0005  * SPDX-License-Identifier: LGPL-2.1-only
0006  * SPDX-License-Identifier: LGPL-3.0-only
0007  * SPDX-License-Identifier: LicenseRef-KDE-Accepted-LGPL
0008  */
0009 
0010 #pragma once
0011 
0012 #include <QSharedDataPointer>
0013 #include "kgapipeople_export.h"
0014 
0015 #include <optional>
0016 
0017 class QJsonObject;
0018 class QJsonValue;
0019 class QJsonArray;
0020 
0021 namespace KGAPI2::People
0022 {
0023 /**
0024  * A Google Workspace Domain membership.
0025  *
0026  * @see https://developers.google.com/people/api/rest/v1/people#domainmembership
0027  * @since 5.23.0
0028  **/
0029 class KGAPIPEOPLE_EXPORT DomainMembership
0030 {
0031 public:
0032     /** Constructs a new DomainMembership **/
0033     explicit DomainMembership();
0034     DomainMembership(const DomainMembership &);
0035     DomainMembership(DomainMembership &&) noexcept;
0036     DomainMembership &operator=(const DomainMembership &);
0037     DomainMembership &operator=(DomainMembership &&) noexcept;
0038     /** Destructor. **/
0039     ~DomainMembership();
0040 
0041     bool operator==(const DomainMembership &) const;
0042     bool operator!=(const DomainMembership &) const;
0043 
0044     [[nodiscard]] static DomainMembership fromJSON(const QJsonObject &);
0045     [[nodiscard]] QJsonValue toJSON() const;
0046 
0047     /** True if the person is in the viewer's Google Workspace domain. **/
0048     [[nodiscard]] bool inViewerDomain() const;
0049     /** Sets value of the inViewerDomain property. **/
0050     void setInViewerDomain(bool value);
0051 
0052 private:
0053     class Private;
0054     QSharedDataPointer<Private> d;
0055 }; // DomainMembership
0056 
0057 } // namespace KGAPI2::People