Files
Calendink/Provider/main/todo.hpp

31 lines
844 B
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
#include <cstring>
#include "types.hpp"
#include "user.hpp"
enum task_period_t : uint8
{
PERIOD_MORNING = 0x01, // bit 0
PERIOD_AFTERNOON = 0x02, // bit 1
PERIOD_EVENING = 0x04, // bit 2
PERIOD_ALL_DAY = 0x07 // all bits
};
struct task_t
{
char title[64]; // Task description
int64 due_date; // Unix timestamp (seconds) - used when recurrence is 0
uint16 id; // Auto-assigned (165535, 0 = empty slot)
uint8 user_id; // Owner (matches user_t.id)
uint8 recurrence; // Bitmask: bit0=Mon, bit1=Tue, ..., bit6=Sun. 0=none
uint8 period : 3; // Bitmask: bit0=Morning, bit1=Afternoon, bit2=Evening
bool completed : 1; // Done flag
bool active : 1; // Slot in use
};
constexpr int MAX_TASKS = 32;
internal task_t g_Tasks[MAX_TASKS] = {};
internal uint16 g_NextTaskId = 1;