diff --git a/internal/services/task_service.go b/internal/services/task_service.go index 5ef5fa7..9686dc0 100644 --- a/internal/services/task_service.go +++ b/internal/services/task_service.go @@ -490,12 +490,14 @@ func (s *TaskService) CreateCompletion(req *requests.CreateTaskCompletionRequest } // Update next_due_date and status based on frequency - // - If frequency is "Once" (days = nil or 0), set next_due_date to nil + // - If frequency is "Once" (days = nil or 0), set next_due_date to nil and status to "Completed" // - If frequency is recurring, calculate next_due_date = completion_date + frequency_days // and reset status to "Pending" so task shows in correct kanban column if task.Frequency == nil || task.Frequency.Days == nil || *task.Frequency.Days == 0 { - // One-time task - clear next_due_date since it's completed + // One-time task - clear next_due_date and set status to "Completed" (ID=3) task.NextDueDate = nil + completedStatusID := uint(3) + task.StatusID = &completedStatusID } else { // Recurring task - calculate next due date from completion date + frequency nextDue := completedAt.AddDate(0, 0, *task.Frequency.Days)