diff options
Diffstat (limited to 'internal/handlers/timeline_logic.go')
| -rw-r--r-- | internal/handlers/timeline_logic.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/internal/handlers/timeline_logic.go b/internal/handlers/timeline_logic.go index 8430ee9..c9510bf 100644 --- a/internal/handlers/timeline_logic.go +++ b/internal/handlers/timeline_logic.go @@ -172,6 +172,51 @@ func BuildTimeline(ctx context.Context, s *store.Store, start, end time.Time) ([ } } + // 6. Fetch native (doot-owned) tasks + nativeDated, err := s.GetNativeTasksByDateRange(start, end) + if err != nil { + log.Printf("Warning: failed to read native tasks: %v", err) + } else { + for _, task := range nativeDated { + if task.DueDate == nil { + continue + } + item := models.TimelineItem{ + ID: task.ID, + Type: models.TimelineItemTypeTask, + Title: task.Content, + Time: *task.DueDate, + Description: task.Description, + OriginalItem: task, + IsCompleted: task.Completed, + Source: "doot", + } + item.ComputeDaySection(now) + items = append(items, item) + } + } + + nativeUndated, err := s.GetUndatedNativeTasks() + if err != nil { + log.Printf("Warning: failed to read undated native tasks: %v", err) + } else { + for _, task := range nativeUndated { + item := models.TimelineItem{ + ID: task.ID, + Type: models.TimelineItemTypeTask, + Title: task.Content, + Time: now, + Description: task.Description, + OriginalItem: task, + IsCompleted: task.Completed, + Source: "doot", + IsAllDay: true, + } + item.ComputeDaySection(now) + items = append(items, item) + } + } + // Sort items by Time sort.Slice(items, func(i, j int) bool { return items[i].Time.Before(items[j].Time) |
