File indexing completed on 2024-05-19 09:21:26

0001 /*
0002  *   SPDX-FileCopyrightText: 2011 Jonathan Thomas <echidnaman@kubuntu.org>
0003  *
0004  *   SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 #pragma once
0008 
0009 #include <QDateTime>
0010 #include <QVariant>
0011 
0012 #include "ReviewsModel.h"
0013 #include "discovercommon_export.h"
0014 
0015 class DISCOVERCOMMON_EXPORT Review
0016 {
0017 public:
0018     Review(QString name,
0019            QString pkgName,
0020            QString language,
0021            QString summary,
0022            QString reviewText,
0023            QString userName,
0024            const QDateTime &date,
0025            bool show,
0026            quint64 id,
0027            int rating,
0028            int usefulTotal,
0029            int usefulFavorable,
0030            qreal wilsonScore,
0031            QString packageVersion);
0032     ~Review();
0033 
0034     // Creation date determines greater than/less than
0035     bool operator<(const Review &rhs) const;
0036     bool operator>(const Review &rhs) const;
0037 
0038     QString applicationName() const;
0039     QString packageName() const;
0040     QString packageVersion() const;
0041     QString language() const;
0042     QString summary() const;
0043     QString reviewText() const;
0044     QString reviewer() const;
0045     QDateTime creationDate() const;
0046     bool shouldShow() const;
0047     quint64 id() const;
0048     int rating() const;
0049     int usefulnessTotal() const;
0050     int usefulnessFavorable() const;
0051     qreal wilsonScore() const;
0052     ReviewsModel::UserChoice usefulChoice() const;
0053     void setUsefulChoice(ReviewsModel::UserChoice useful);
0054     void addMetadata(const QString &key, const QVariant &value);
0055     QVariant getMetadata(const QString &key);
0056 
0057 private:
0058     QString m_appName;
0059     QDateTime m_creationDate;
0060     bool m_shouldShow;
0061     quint64 m_id;
0062     QString m_language;
0063     QString m_packageName;
0064     int m_rating;
0065     QString m_reviewText;
0066     QString m_reviewer;
0067     int m_usefulnessTotal;
0068     int m_usefulnessFavorable;
0069     qreal m_wilsonScore;
0070     ReviewsModel::UserChoice m_usefulChoice;
0071     QString m_summary;
0072     QString m_packageVersion;
0073     QVariantMap m_metadata;
0074 };