## libimagtodo The library for the todo module which provides functionality to implement/implements a todomanager in imag. ### Implementation details One todo entry is stored as one imag entry. The ID of the imag entry is generated by appending a unique ID (UUID) to "todo/". The unique ID identifies the todo entry. #### Stored data A todo entry stores the following information: * The (UU)ID of the todo entry * A status of the todo entry. Valid values are: "deleted", "done", "pending" * An optional "scheduled" date/datetime * An optional "hidden" value, which specifies a date in the future where this todo entry should show up. * An optional "due" date/datetime * A "priority"-level, either "h", "m", "l" The description of the todo entry is stored as plain text. #### Data not stored Some data is explicitely _not_ stored by the library because there are other libraries fullfilling that purpose. These are: * Related todos, which can be done via libimagentrylink * Tags, which can be done with libimagentrytag * Category, which can be done with libimagentrycategory * Project belonging, which can be done with libimagentrylink (by linking to a project file - note that "project" is a domain not yet implemented by imag) * Annotations, which can be stored with libimagentryannotation #### Header format The header partial for libimagtodo is as follows: ``` [todo] uuid = "string" status = "enum { 'deleted', 'done', 'pending' }" scheduled = "" // optional hidden = "" // optional due = "" // optional priority = "enum { 'h', 'm', 'l' }" // optional ``` #### Functionality The provided functionality of this library includes, but is not limited to: * Creating * Deleting * Get/Retrieving * Getting data about the todo * Reading metadata: scheduled, due, waiting, prio, uuid, status,... * Related (via libimagentrylink) todo entries