From 9296d6e1b86f3dfa5d9955ee9f0351b43c511a75 Mon Sep 17 00:00:00 2001 From: Mo Tarbin Date: Fri, 17 Jan 2025 00:53:31 -0500 Subject: [PATCH] Add description field to ChoreDetail model and repository methods --- internal/chore/model/model.go | 1 + internal/chore/repo/repository.go | 20 +++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/internal/chore/model/model.go b/internal/chore/model/model.go index c1a9827..c801f55 100644 --- a/internal/chore/model/model.go +++ b/internal/chore/model/model.go @@ -120,6 +120,7 @@ type Tag struct { type ChoreDetail struct { ID int `json:"id" gorm:"column:id"` Name string `json:"name" gorm:"column:name"` + Description *string `json:"description" gorm:"column:description"` FrequencyType string `json:"frequencyType" gorm:"column:frequency_type"` NextDueDate *time.Time `json:"nextDueDate" gorm:"column:next_due_date"` AssignedTo int `json:"assignedTo" gorm:"column:assigned_to"` diff --git a/internal/chore/repo/repository.go b/internal/chore/repo/repository.go index 3b6d124..014674e 100644 --- a/internal/chore/repo/repository.go +++ b/internal/chore/repo/repository.go @@ -70,8 +70,18 @@ func (r *ChoreRepository) GetArchivedChores(c context.Context, circleID int, use return chores, nil } func (r *ChoreRepository) DeleteChore(c context.Context, id int) error { - r.db.WithContext(c).Where("chore_id = ?", id).Delete(&chModel.ChoreAssignees{}) - return r.db.WithContext(c).Delete(&chModel.Chore{}, id).Error + return r.db.WithContext(c).Transaction(func(tx *gorm.DB) error { + if err := tx.Where("chore_id = ?", id).Delete(&chModel.ChoreAssignees{}).Error; err != nil { + return err + } + if err := tx.Delete(&chModel.ChoreHistory{}, "chore_id = ?", id).Error; err != nil { + return err + } + if err := tx.Delete(&chModel.Chore{}, id).Error; err != nil { + return err + } + return nil + }) } func (r *ChoreRepository) SoftDelete(c context.Context, id int, userID int) error { @@ -154,6 +164,9 @@ func (r *ChoreRepository) UpdateChoreHistory(c context.Context, history *chModel func (r *ChoreRepository) DeleteChoreHistory(c context.Context, historyID int) error { return r.db.WithContext(c).Delete(&chModel.ChoreHistory{}, historyID).Error } +func (r *ChoreRepository) DeleteChoreHistoryByChoreID(c context.Context, tx, choreID int) error { + return r.db.WithContext(c).Delete(&chModel.ChoreHistory{}, "chore_id = ?", choreID).Error +} func (r *ChoreRepository) UpdateChoreAssignees(c context.Context, assignees []*chModel.ChoreAssignees) error { return r.db.WithContext(c).Save(&assignees).Error @@ -264,7 +277,8 @@ func (r *ChoreRepository) GetChoreDetailByID(c context.Context, choreID int, cir Table("chores"). Select(` chores.id, - chores.name, + chores.name, + chores.description, chores.frequency_type, chores.next_due_date, chores.assigned_to,