/** * The ObjectMissionPlan class represents a ObjectMissionPlan. It holds the data and offers some conversion methods. * $Id$ * $HeadURL$ * $Author$ * Created by Steve Kemayou, ESZS, 2025-04-08 */ #pragma once #include #include #include #include #include "logger.h" #include namespace ParticipantManagement { namespace UasHandling { class ObjectMissionPlan : public QObject { Q_OBJECT public: explicit ObjectMissionPlan(const std::shared_ptr &ddsHandler, const std::shared_ptr &db, const ParticipantManagement::MissionPlan &missionPlan, QObject *parent = nullptr); int32_t id() const; int32_t participantId() const; static Database::PpmMissionPlan toDbMissionPlan(const ParticipantManagement::ModifyMissionPlanRequest &mp); static MissionPlan fillMissionPlanData(const ModifyMissionPlanRequest &in); MissionPlan getMissionPlanData() const; void setDbMissionItems( const QMap &dbItems, const QMap &dbActions); const ParticipantManagement::MissionPlan &missionPlan() const; Core::FunctionReplyObject createMissionPlan(Database::PpmMissionPlan newMissionPlan, const std::vector &missionItems); Core::FunctionReplyObject updateMissionPlan(Database::PpmMissionPlan newMissionPlan, const std::vector &missionItems); Core::FunctionReplyObject removeMissionPlan(int id); Core::FunctionReplyObject setMissionActionFulfilled(SetMissionActionFulfilledRequest req, qint64 currentTimeMSec); Core::FunctionReplyObject setMissionPlanAborted(bool state); private: std::shared_ptr m_ddsHandler; std::shared_ptr m_db; ParticipantManagement::MissionPlan m_missionplan; QHash m_mapMissionItems; /// key:dbItemId | Value MissionItem std::vector > m_dbMissionActions; /// [ItemNumber][ActionNumber] LOGGER_T m_logger; }; } // namespace UasHandling } // namespace ParticipantManagement