#ifndef DIRECTORIES_MANAGEMENT_WIDGET_H #define DIRECTORIES_MANAGEMENT_WIDGET_H #include "ui_directories_management_widget.h" #include // Forward declaration class HallsModel; class MoviesModel; class GenresModel; class HallsRepositoryInterface; class MoviesRepositoryInterface; class GenresRepositoryInterface; class DirectoriesManagementWidget : public QWidget, private Ui::DirectoriesManagementWidget { Q_OBJECT private: GenresModel *genresModel_; GenresRepositoryInterface *genresRepository_; HallsModel *hallsModel_; HallsRepositoryInterface *hallsRepository_; MoviesModel *moviesModel_; MoviesRepositoryInterface *moviesRepository_; qint32 selectedGenreId_; qint32 selectedHallId_; qint32 selectedMovieId_; public: explicit DirectoriesManagementWidget(QWidget *parent = nullptr); private: void initializeModels(); void initializeRepositories(); void setupConnections(); void setupGenreFinder(); void setupTableViews(); private slots: void onGenreFieldRetrieved(const QSqlField &field); void onPushButtonAddGenreClicked(); void onPushButtonAddHallClicked(); void onPushButtonAddMovieClicked(); }; #endif // DIRECTORIES_MANAGEMENT_WIDGET_H