#ifndef LICENSEMANAGER_EDITCLIENTDIALOG_H
#define LICENSEMANAGER_EDITCLIENTDIALOG_H

// Qt
#include <QDebug>
#include <QDialog>
#include <QDragEnterEvent>
#include <QLabel>

#include "LicenseModel/LicenseModel.h"
class QLineEdit;
class QTabWidget;
class QTextEdit;

// Self
class LicenseModel;

class EditClientDialog : public QDialog
{
    Q_OBJECT
public:

    enum class Type
    {
        None = 0,
        Add,
        Edit,
    };

    EditClientDialog(LicenseModel* model, QWidget *parent = nullptr);
    ~EditClientDialog();

    void setType(Type type);
    Type getType() const;
    LicenseModel::LicenseItem getLicenseItem() const;
    void clear();
    void setClientInfo(int index);
private slots:
    void onFilesChanged(const QStringList &paths);
private:
    void loadSettings();
    void saveSettings();
    QLabel* makeLabel(const QString &text);
private:
    LicenseModel* m_model{nullptr};
    QTabWidget* m_tabWidget{nullptr};
    QLabel* m_configPathLabel{nullptr};
    QWidget* m_manualWidget{nullptr};
    QLineEdit* m_firstNameLineEdit{nullptr};          //!< Поле ввода имени пользователя.
    QLineEdit* m_lastNameLineEdit{nullptr};           //!< Поле ввода фамилии пользователя.
    QLineEdit* m_patronymicLineEdit{nullptr};         //!< Поле ввода отчества пользователя.
    QLineEdit* m_emailLineEdit{nullptr};              //!< Поле ввода электронной почты.
    QLineEdit* m_phoneLineEdit{nullptr};              //!< Поле ввода номера телефона.
    QLineEdit* m_yourCompanyNameTextEdit{nullptr};    //!< Поле ввода названия компании пользователя.
    QLineEdit* m_sellerNameTextEdit{nullptr};         //!< Поле ввода названия продавца (если используется).
    QLineEdit* m_cityLineEdit{nullptr};               //!< Поле ввода города.
    QLineEdit* m_hardwareHashLineEdit{nullptr};       //!< Поле для отображения хеша оборудования.
    QTextEdit* m_commentTextEdit{nullptr};            //!<
    QPushButton* m_saveButton{nullptr};               //!<
    QString m_createdAtUtc;
    QString m_filesPath;
    Type m_type = Type::None;
};

#endif //LICENSEMANAGER_EDITCLIENTDIALOG_H
