#ifndef WPLANITEM_H
#define WPLANITEM_H

#include <QWidget>
#include <QListWidgetItem>
#include <QJsonValue>
#include <QJsonArray>
#include <QJsonObject>
#include <QJsonDocument>

namespace Ui {
class wPlanItem;
}

class wPlanItem : public QWidget
{
    Q_OBJECT

public:
    explicit wPlanItem(QListWidgetItem *item, QWidget *parent = nullptr);
    explicit wPlanItem(const QJsonObject &oRoot, QListWidgetItem *item, QWidget *parent = nullptr);
    ~wPlanItem();

    void setNum(int n);
    void setPlan(const QJsonObject &oRoot);
    QJsonObject planJson() const;

private:
    void initBegin();
    void initEnd();

signals:
    void sigItemChanged(QListWidgetItem *);
    void sigDelete(QListWidgetItem *);

protected slots:
    void onItemChanged();
    void onDelete(bool);

private:
    Ui::wPlanItem *ui;
    QListWidgetItem *m_item;
};

#endif // WPLANITEM_H