diff --git a/src/model/status.c b/src/model/status.c index 75f41ba..4a4fceb 100644 --- a/src/model/status.c +++ b/src/model/status.c @@ -11,6 +11,7 @@ #include "model/emoji.h" #include "model/media.h" #include "model/fetch.h" +#include "model/status/poll.h" // Submodules #include "json/json.h" diff --git a/src/model/status.h b/src/model/status.h index 22cbced..1cfb7d3 100644 --- a/src/model/status.h +++ b/src/model/status.h @@ -7,6 +7,7 @@ struct account; struct emoji; struct media; +struct status_poll; enum { @@ -90,6 +91,8 @@ struct status char** items; int count; } tags; + + struct status_poll* poll; }; void status_model_init(); diff --git a/src/model/status/poll.h b/src/model/status/poll.h new file mode 100644 index 0000000..be772fd --- /dev/null +++ b/src/model/status/poll.h @@ -0,0 +1,33 @@ +#pragma once + +#include + +struct emoji; + +struct status_poll_option +{ + char* title; + + struct { + int* items; + int count; + } votes; +}; + +struct status_poll +{ + time_t expires_at; + bool multiple_choice; + int votes_seen; + bool voted; + struct { + struct status_poll_option* items; + int count; + } options; + + struct { + struct emoji** items; + int count; + } emoji; +}; +