File indexing completed on 2024-05-12 17:24:09

0001 // SPDX-FileCopyrightText: 2023 Mathis <mbb@kaidan.im>
0002 // SPDX-License-Identifier: LGPL-2.0-or-later
0003 
0004 #pragma once
0005 
0006 #include <QAbstractListModel>
0007 #include "database.h"
0008 
0009 class HealthHistoryModel: public QAbstractListModel
0010 {
0011     Q_OBJECT;
0012     Q_PROPERTY(int plantId READ plantId WRITE setPlantId NOTIFY plantIdChanged)
0013 
0014     enum Role {
0015         HealthDateRole = Qt::UserRole +1,
0016         HealthRole
0017     };
0018 public:
0019     explicit HealthHistoryModel(QObject *parent = nullptr);
0020 
0021     DB::Plant::Id plantId() const;
0022     void setPlantId(const DB::Plant::Id plantId);
0023 
0024     int rowCount(const QModelIndex &parent)const override;
0025     QHash<int, QByteArray> roleNames()const override;
0026     QVariant data(const QModelIndex& index, int role) const override;
0027     Q_INVOKABLE void addHealthEvent(const int health);
0028 
0029 Q_SIGNALS:
0030     void plantIdChanged();
0031 
0032 private:
0033     std::vector<DB::HealthEvent> m_data;
0034     int m_plantId;
0035 };