Modified TagsDialog.
[situare] / src / situareservice / database.h
1 #ifndef DATABASE_H
2 #define DATABASE_H
3
4 #include <QObject>
5
6 #include <QtSql/QSqlDatabase>
7 #include <QtSql/QSqlError>
8 #include <QFile>
9 #include <QStringList>
10
11 #include "coordinates/geocoordinate.h"
12 #include "message.h"
13
14 class Database : public QObject
15 {
16     Q_OBJECT
17 public:
18     Database(QObject *parent = 0);
19     ~Database();
20
21     bool addTag(qulonglong userId, const QString &tag);
22     QByteArray getNotifications(qulonglong userId);
23     QByteArray getPopularTags();
24     QHash<QString, QString> getTags(qulonglong userId);
25     QByteArray getInterestingPeople(qulonglong userId,
26                                      const GeoCoordinate &southWestCoordinates,
27                                      const GeoCoordinate &northEastCoordinates);
28     QByteArray getInterestingPeopleByTag(qulonglong userId, const QString &tag);
29
30     bool createNotificationTable();
31     bool createTagTable();
32     bool createUserTagTable();
33     bool createUserTable();
34     bool openDatabase();
35     bool removeMessage(qulonglong userId, const QString &id);
36     bool removeTags(qulonglong userId, const QStringList &tags);
37     bool sendMessage(qulonglong senderId, qulonglong receiverId, const QString &message,
38                      const GeoCoordinate &coordinates);
39
40 private:
41     QSqlDatabase m_database;
42     QList<Message*> m_notifications;
43 };
44
45 #endif // DATABASE_H