Timesheets-Server
Timesheets server
Načítám...
Vyhledávám...
Nebylo nic nalezeno
database.h
Zobrazit dokumentaci tohoto souboru.
1
6#ifndef _Database_H_
7#define _Database_H_
8
9#include <QObject>
10#include <QVariant>
11#include <QStringList>
12#include "authenticateduser.h"
13#include "dbt.h"
14#include "database_plugin.h"
15
16
17namespace Db {
18
20 QString name;
21 QString description;
22 PluginDescription(const QString& n, const QString& d) { name=n; description=d; }
23};
24
28class Database : public QObject {
29 Q_OBJECT
31
32 public:
33
34 ~Database();
35 static Database *instance(QObject *parent = nullptr);
36 static Database *create(QObject *parent);
37 static Database *create(QObject *parent, const AuthenticatedUser *u);
38 bool isOpen() const { return m_isOpen; }
39 QString connectionName() const;
40
41 void changePassword(const QString& login, const QString& oldpassword, const QString& newpassword);
42 QList<Dbt::Users> authenticate(const QString& user, const QString& password);
43 QList<Dbt::Users> users(int id = -1);
44 QList<Dbt::Categories> categories(const QString& id = QString());
45 QList<Dbt::Categories> categoriesToRoot(const QString& id);
46 QList<Dbt::Categories> subcategories(const QString& parent = QString());
47 QList<Dbt::Categories> siblingcategories(const QString& parent = QString());
48 QList<Dbt::UsersCategories> usersCategories(int id = -1, int user = -1, const QString& category = QString());
49 QList<Dbt::CategoriesOverview> categoriesOverview(const QStringList& statuses);
50 QList<Dbt::StatusOrder> statusOrder(const QString& id = QString());
51 QList<Dbt::Statuses> statuses(const QString& id = QString());
52 QList<Dbt::Statuses> statuses(const QString& category, const QString& prevStatus);
53 QList<Dbt::Statuses> statuses(const QString& category, const QStringList& prevStatuses);
54
55 QList<Dbt::StatusTemplates> statusTemplates(int id = -1);
56
57 QList<Dbt::Tickets> tickets(bool all = false);
58 QList<Dbt::Tickets> tickets(int ticket = -1, bool all = false);
59 QList<Dbt::Tickets> tickets(const Dbt::Categories& category, bool all = false);
60
61 QList<Dbt::TicketsVw> ticketsVw(bool all = false);
62 QList<Dbt::TicketsVw> ticketsVw(int ticket = -1, bool all = false);
63 QList<Dbt::TicketsVw> ticketsVw(const Dbt::Categories& category, bool all = false);
64
65 QList<Dbt::TicketStatus> ticketStatus(int id);
66 QList<Dbt::TicketStatus> ticketStatus(bool all = false);
67 QList<Dbt::TicketStatus> ticketStatus(int ticket, bool all);
68
69 QList<Dbt::TicketValues> ticketValues(int id);
70 QList<Dbt::TicketValues> ticketValues(bool all = false);
71 QList<Dbt::TicketValues> ticketValues(int ticket, bool all);
72
73 QList<Dbt::TicketFiles> ticketFiles(int id);
74 QList<Dbt::TicketFiles> ticketFiles(bool all = false);
75 QList<Dbt::TicketFiles> ticketFiles(int ticket, bool all);
76
77 QList<Dbt::TicketTimesheets> ticketTimesheets(int id);
78 QList<Dbt::TicketTimesheets> ticketTimesheets(bool all = false);
79 QList<Dbt::TicketTimesheets> ticketTimesheets(int ticket, bool all);
80 QList<Dbt::TicketTimesheets> runningTimesheets(int ticket = -1);
81 QList<Dbt::TicketTimesheets> startTimesheet(int ticket);
82 QList<Dbt::TicketTimesheets> stopTimesheet(int ticket);
83 QList<Dbt::TicketTimesheets> toggleTimesheet(int ticket);
84
85 QList<Dbt::ClientSettings> clientSettings();
86 QList<Dbt::Overview> overview(const QString& category, const QStringList& statuses);
87 QList<Dbt::Overview> overview(const QString& overviewId);
88 QList<Dbt::OverviewList> overviewList();
89 QList<Dbt::ServerInfo> serverInfo();
90
91
92 template<typename T> QVariant save(const T& id) { return m_dbplugin->save(id); }
93 template<typename T> void remove(const T& id) { m_dbplugin->remove(id); }
94
95 void begin();
96 void commit();
97
98 signals:
99 void opened(bool);
100
101 public slots:
102 bool open();
103 void close();
104
105 private slots:
106
107 private:
108 static Database *m_instance;
109 Database(QObject *parent);
110 bool m_isOpen;
111
112};
113
114}
115
116#endif
117