#ifndef SESSIONS_MODEL_H #define SESSIONS_MODEL_H #include "base_sql_table_model.h" class SessionsModel : public BaseSqlTableModel { Q_OBJECT public: // Enum for columns enum SessionsColumns { Id, MovieId, HallId, BeginAt, TicketPrice }; public: explicit SessionsModel(QObject *parent, const QSqlDatabase &database); // Initialize the model void initialize(); // Overlooking class BaseSqlTableModel methods QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; inline bool isCompleteDatabaseFiltering() const final { #ifdef NO_DATE_TIME_SEARCH return false; #else return true; #endif }; protected: QString createMultiColumnFilter(const QString &filter) const final; private: bool buildHallIdFilterCondition(const QString &inFilter, QString &outFilter) const; bool buildMovieIdFilterCondition(const QString &inFilter, QString &outFilter) const; }; #endif // SESSIONS_MODEL_H