#ifndef TICKET_SALE_WIDGET_H #define TICKET_SALE_WIDGET_H #include "ui_ticket_sale_widget.h" #include #include // Forward declaration class TicketsModel; class TicketsRepositoryInterface; class TicketSaleWidget : public QWidget, Ui::TicketSaleWidget { Q_OBJECT private: TicketsModel *ticketsModel_; TicketsRepositoryInterface *ticketsRepository_; qint32 selectedSessionId_; public: explicit TicketSaleWidget(QWidget *parent = nullptr); private: void initializeRepositories(); void initializeModels(); void setupConnections(); void setupSessionFinder(); void setupTableView(); void validateSessionValues(const std::initializer_list &valuesList); private slots: void onPushButtonSellTicketClicked(); void onFieldRetrieved(const QSqlField &field); }; #endif // TICKET_SALE_WIDGET_H