From b38a1f547b53b753e07826374430074372ec236e Mon Sep 17 00:00:00 2001 From: Trey t Date: Fri, 28 Nov 2025 08:50:50 -0600 Subject: [PATCH] Remove embedded completions from task response MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since completions are fetched separately via GetCompletionsByTask, there's no need to embed them in the task JSON response. - Remove Completions field from TaskResponse (keep CompletionCount) - Remove Completions.CompletedBy preloads from task queries This reduces response payload size and improves query performance. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- internal/dto/responses/task.go | 12 +++--------- internal/repositories/task_repo.go | 3 --- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/internal/dto/responses/task.go b/internal/dto/responses/task.go index 968d6ab..8c9f6f5 100644 --- a/internal/dto/responses/task.go +++ b/internal/dto/responses/task.go @@ -90,10 +90,9 @@ type TaskResponse struct { ContractorID *uint `json:"contractor_id"` IsCancelled bool `json:"is_cancelled"` IsArchived bool `json:"is_archived"` - ParentTaskID *uint `json:"parent_task_id"` - CompletionCount int `json:"completion_count"` - Completions []TaskCompletionResponse `json:"completions,omitempty"` - CreatedAt time.Time `json:"created_at"` + ParentTaskID *uint `json:"parent_task_id"` + CompletionCount int `json:"completion_count"` + CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } @@ -252,11 +251,6 @@ func NewTaskResponse(t *models.Task) TaskResponse { resp.Frequency = NewTaskFrequencyResponse(t.Frequency) } - resp.Completions = make([]TaskCompletionResponse, len(t.Completions)) - for i, c := range t.Completions { - resp.Completions[i] = NewTaskCompletionResponse(&c) - } - return resp } diff --git a/internal/repositories/task_repo.go b/internal/repositories/task_repo.go index 79b1c79..98caf9e 100644 --- a/internal/repositories/task_repo.go +++ b/internal/repositories/task_repo.go @@ -31,7 +31,6 @@ func (r *TaskRepository) FindByID(id uint) (*models.Task, error) { Preload("Status"). Preload("Frequency"). Preload("Completions"). - Preload("Completions.CompletedBy"). First(&task, id).Error if err != nil { return nil, err @@ -136,7 +135,6 @@ func (r *TaskRepository) GetKanbanData(residenceID uint, daysThreshold int) (*mo Preload("Status"). Preload("Frequency"). Preload("Completions"). - Preload("Completions.CompletedBy"). Where("residence_id = ? AND is_archived = ?", residenceID, false). Order("due_date ASC NULLS LAST, priority_id DESC, created_at DESC"). Find(&tasks).Error @@ -261,7 +259,6 @@ func (r *TaskRepository) GetKanbanDataForMultipleResidences(residenceIDs []uint, Preload("Status"). Preload("Frequency"). Preload("Completions"). - Preload("Completions.CompletedBy"). Preload("Residence"). Where("residence_id IN ? AND is_archived = ?", residenceIDs, false). Order("due_date ASC NULLS LAST, priority_id DESC, created_at DESC").