#ifndef PAGINATIONBAR_H
#define PAGINATIONBAR_H

#include <QHBoxLayout>
#include <QLineEdit>
#include <QPushButton>
#include <QWidget>

class PaginationBar : public QWidget
{
    Q_OBJECT

public:
    explicit PaginationBar(int totalPages, QWidget *parent = nullptr);

public:
    void setTotalPages(int newTotalPages);

signals:
    void pageChanged(int page);

private slots:
    void onPageButtonClicked(int page);
    void goToPreviousPage();
    void goToNextPage();
    void onEllipsisClicked(QPushButton *ellipsisButton);

private:
    QLineEdit *activeLineEdit = nullptr;
    QPushButton *previousEllipsisButton = nullptr;

private:
    int totalPages;  // Общее количество страниц
    int currentPage; // Текущая страница

    QPushButton *leftArrow;           // Кнопка влево
    QPushButton *rightArrow;          // Кнопка вправо
    QHBoxLayout *layout;              // Макет для размещения кнопок
    QList<QPushButton *> pageButtons; // Список кнопок страниц

    void updateButtons();         // Обновление кнопок в зависимости от состояния
    void addPageButton(int page); // Добавить кнопку страницы
    void addEllipsisButton();     // Добавить кнопку с троеточием
};

#endif // PAGINATIONBAR_H
