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

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