#pragma once #include "apactor.h" #include "apbase.h" #include "apobject.h" #include "../types.h" #include enum struct APActivityType {CREATE, ANNOUNCE, UNKNOWN}; struct APActivityFields { QString by_actor; QStringList to_actors; QStringList cc_actors; QString object_url; // maps to "id", represents the Activity, *not* the URL of the object it contains QString published; APObject* object; // will generally be a APPost or APReblog StatusType visibility; APActivityType type = APActivityType::UNKNOWN; }; class APActivity : APBase { public: APActivity(); // An Activity that can easily be constructed from an ActivityStreams JSON Activity. Make sure to pass the APObject. APActivity(APActivityFields fields); ~APActivity(); APObject* object = nullptr; // the object that's manipulated by this Activity, use APPost for something useful and "manually" create it QString get_html_render(HtmlRenderDetails render_info); private: APActorList to_actors; APActorList cc_actors; APActor by_actor; // the Actor who did this Activity, maps to "actor" APActivityType type; StatusType visibility; //QString object_url; // activity's URL, maps to "id" QDateTime published; };