2710c24208cf5343e1522907e4a68e31b3682fbf
[toast/confclerk.git] / src / mvc / room.h
1 /*
2  * Copyright (C) 2010 Ixonos Plc.
3  * Copyright (C) 2011 Philipp Spitzer, gregor herrmann
4  *
5  * This file is part of ConfClerk.
6  *
7  * ConfClerk is free software: you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the Free
9  * Software Foundation, either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * ConfClerk is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
15  * more details.
16  *
17  * You should have received a copy of the GNU General Public License along with
18  * ConfClerk.  If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 #ifndef ROOM_H_
22 #define ROOM_H_
23
24 #include <ormrecord.h>
25
26 class Room : public OrmRecord<Room>
27 {
28 public:
29     static const QSqlRecord sColumns;
30     static QString const sTableName;
31     static const int sTableColCount;
32     static const QString NAME;
33 public:
34     int id() const { return value("id").toInt(); }
35     void setId(int id) { setValue("id", id); }
36     QString name() const { return value("name").toString(); }
37     void setName(const QString & type) { setValue("name", type); }
38     // TODO: make naming consistent - either "picture" or "map"
39     QVariant map() const { return value("picture"); }
40     bool hasMap() const
41     {
42         // empty strings also treasted as NULL,
43         // as storing NULLs requires rewrite of storing code and DB scheme
44         return !isNull("picture") and !value("picture").toString().isEmpty();
45     }
46     int insert();
47 public:
48     static QList<Room> getAll();
49     static Room retrieve(int id);
50     static QString retrieveRoomName(int id);
51     static Room retrieveByName(QString name);
52 };
53
54 #endif /* ROOM_H_ */