File indexing completed on 2024-05-12 05:22:25
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 #include <QJsonArray> 0015 #include <QJsonObject> 0016 0017 #include <optional> 0018 0019 class QJsonValue; 0020 0021 namespace KGAPI2::People 0022 { 0023 class FieldMetadata; 0024 0025 /** 0026 * A person's age range. 0027 * 0028 * @see https://developers.google.com/people/api/rest/v1/people#agerangetype 0029 * @since 5.23.0 0030 **/ 0031 class KGAPIPEOPLE_EXPORT AgeRangeType 0032 { 0033 public: 0034 enum class AgeRange { 0035 AGE_RANGE_UNSPECIFIED, ///< Unspecified. 0036 LESS_THAN_EIGHTEEN, ///< Younger than eighteen. 0037 EIGHTEEN_TO_TWENTY, ///< Between eighteen and twenty. 0038 TWENTY_ONE_OR_OLDER, ///< Twenty-one and older. 0039 }; 0040 0041 /** Constructs a new AgeRangeType **/ 0042 explicit AgeRangeType(); 0043 AgeRangeType(const AgeRangeType &); 0044 AgeRangeType(AgeRangeType &&) noexcept; 0045 AgeRangeType &operator=(const AgeRangeType &); 0046 AgeRangeType &operator=(AgeRangeType &&) noexcept; 0047 /** Destructor. **/ 0048 ~AgeRangeType(); 0049 0050 bool operator==(const AgeRangeType &) const; 0051 bool operator!=(const AgeRangeType &) const; 0052 0053 [[nodiscard]] static AgeRangeType fromJSON(const QJsonObject &obj); 0054 [[nodiscard]] static QList<AgeRangeType> fromJSONArray(const QJsonArray &data); 0055 [[nodiscard]] QJsonValue toJSON() const; 0056 0057 /** The age range. **/ 0058 [[nodiscard]] AgeRangeType::AgeRange ageRange() const; 0059 /** Sets value of the ageRange property. **/ 0060 void setAgeRange(AgeRangeType::AgeRange value); 0061 0062 /** Metadata about the age range. **/ 0063 [[nodiscard]] FieldMetadata metadata() const; 0064 /** Sets value of the metadata property. **/ 0065 void setMetadata(const FieldMetadata &value); 0066 0067 private: 0068 class Private; 0069 QSharedDataPointer<Private> d; 0070 }; // AgeRangeType 0071 0072 } // namespace KGAPI2::People