// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md #pragma once #include #include namespace gui { class QuoteWidget; } namespace Quotes { class QuotesModel : public app::DatabaseModel, public gui::ListItemProvider, public app::AsyncCallbackReceiver { public: explicit QuotesModel(app::ApplicationCommon *application); [[nodiscard]] auto requestRecordsCount() -> unsigned int final; [[nodiscard]] auto getMinimalItemSpaceRequired() const -> unsigned int final; auto getItem(gui::Order order) -> gui::ListItem * final; void requestRecords(const uint32_t offset, const uint32_t limit) final; bool updateRecords(std::vector records) override; void add(const QuoteRecord &record); void edit(const QuoteRecord &record); void remove(const QuoteRecord &record); auto handleQueryResponse(db::QueryResult *queryResult) -> bool; private: app::ApplicationCommon *app = nullptr; }; } // namespace Quotes