1 /*
2  *   SPDX-FileCopyrightText: 2011 Jonathan Thomas <echidnaman@kubuntu.org>
3  *
4  *   SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
5  */
6 
7 #ifndef REVIEW_H
8 #define REVIEW_H
9 
10 #include <QDateTime>
11 #include <QVariant>
12 
13 #include "ReviewsModel.h"
14 #include "discovercommon_export.h"
15 
16 class DISCOVERCOMMON_EXPORT Review
17 {
18 public:
19     Review(QString name,
20            QString pkgName,
21            QString language,
22            QString summary,
23            QString reviewText,
24            QString userName,
25            const QDateTime &date,
26            bool show,
27            quint64 id,
28            int rating,
29            int usefulTotal,
30            int usefulFavorable,
31            QString packageVersion);
32     ~Review();
33 
34     // Creation date determines greater than/less than
35     bool operator<(const Review &rhs) const;
36     bool operator>(const Review &rhs) const;
37 
38     QString applicationName() const;
39     QString packageName() const;
40     QString packageVersion() const;
41     QString language() const;
42     QString summary() const;
43     QString reviewText() const;
44     QString reviewer() const;
45     QDateTime creationDate() const;
46     bool shouldShow() const;
47     quint64 id() const;
48     int rating() const;
49     int usefulnessTotal() const;
50     int usefulnessFavorable() const;
51     ReviewsModel::UserChoice usefulChoice() const;
52     void setUsefulChoice(ReviewsModel::UserChoice useful);
53     void addMetadata(const QString &key, const QVariant &value);
54     QVariant getMetadata(const QString &key);
55 
56 private:
57     QString m_appName;
58     QDateTime m_creationDate;
59     bool m_shouldShow;
60     quint64 m_id;
61     QString m_language;
62     QString m_packageName;
63     int m_rating;
64     QString m_reviewText;
65     QString m_reviewer;
66     int m_usefulnessTotal;
67     int m_usefulnessFavorable;
68     ReviewsModel::UserChoice m_usefulChoice;
69     QString m_summary;
70     QString m_packageVersion;
71     QVariantMap m_metadata;
72 };
73 
74 #endif
75