59e09d9e77a5d7f7ce710f17591b65b2511ee810
[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     QHash<QString, QString> getTags(qulonglong userId);
24     QByteArray getInterestingPeople(qulonglong userId,
25                                      const GeoCoordinate &southWestCoordinates,
26                                      const GeoCoordinate &northEastCoordinates);
27     QByteArray getInterestingPeopleByTag(qulonglong userId, const QString &tag);
28
29     bool createNotificationTable();
30     bool createTagTable();
31     bool createUserTagTable();
32     bool createUserTable();
33     bool openDatabase();
34     bool removeMessage(qulonglong userId, const QString &id);
35     bool removeTags(qulonglong userId, const QStringList &tags);
36     bool sendMessage(qulonglong senderId, qulonglong receiverId, const QString &message,
37                      const GeoCoordinate &coordinates);
38
39 private:
40     QSqlDatabase m_database;
41     QList<Message*> m_notifications;
42 };
43
44 #endif // DATABASE_H