From 37c323481d2e124e75bf3480dbc3bf53cad915e0 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Wed, 15 Jul 2026 18:30:16 +0000 Subject: feat(tasks): thread project color from BuildTimeline to WidgetItem Projects are fetched once per BuildTimeline call into a color lookup map, not queried per-task -- same pattern as RecurringEventID's existing TimelineItem->WidgetItem threading. --- internal/models/timeline.go | 1 + internal/models/widget.go | 1 + 2 files changed, 2 insertions(+) (limited to 'internal/models') diff --git a/internal/models/timeline.go b/internal/models/timeline.go index 6e48f91..1313712 100644 --- a/internal/models/timeline.go +++ b/internal/models/timeline.go @@ -44,6 +44,7 @@ type TimelineItem struct { // Source-specific metadata ListID string `json:"list_id,omitempty"` // For Google Tasks RecurringEventID string `json:"recurring_event_id,omitempty"` // For calendar events + ProjectColor string `json:"project_color,omitempty"` // For doot-native tasks with a project assigned } // ComputeDaySection sets the DaySection, IsOverdue, and IsAllDay based on the item's time diff --git a/internal/models/widget.go b/internal/models/widget.go index cbaf19c..da13008 100644 --- a/internal/models/widget.go +++ b/internal/models/widget.go @@ -18,6 +18,7 @@ type WidgetItem struct { URL string `json:"url,omitempty"` Completable bool `json:"completable"` // true = doot task (checkbox shown) RecurringEventID string `json:"recurring_event_id,omitempty"` + ProjectColor *string `json:"project_color,omitempty"` } // WidgetResponse is the full /api/widget response body. -- cgit v1.2.3