#ifndef MOVIES_MODEL_H #define MOVIES_MODEL_H #include "base_sql_table_model.h" class MoviesModel : public BaseSqlTableModel { Q_OBJECT public: // Enum for columns enum MoviesColumns { Id, Title, GenreId, Duration }; public: explicit MoviesModel(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 { return true; }; protected: QString createMultiColumnFilter(const QString &filter) const final; private: bool buildGenreIdFilterCondition(const QString &inFilter, QString &outFilter) const; }; #endif // MOVIES_MODEL_H