fix archived
This commit is contained in:
@@ -77,6 +77,17 @@ func (r *LetterOutgoingRepository) Archive(ctx context.Context, letterID uuid.UU
|
||||
}).Error
|
||||
}
|
||||
|
||||
func (r *LetterOutgoingRepository) BulkArchiveForUser(ctx context.Context, letterIDs []uuid.UUID, userID uuid.UUID) (int64, error) {
|
||||
db := DBFromContext(ctx, r.db)
|
||||
// Archive only the recipient records for the specific user
|
||||
// Note: letter_incoming_recipients uses recipient_user_id column
|
||||
result := db.WithContext(ctx).
|
||||
Model(&entities.LetterOutgoingRecipient{}).
|
||||
Where("letter_id IN ? AND user_id = ?", letterIDs, userID).
|
||||
Update("is_archived", true)
|
||||
return result.RowsAffected, result.Error
|
||||
}
|
||||
|
||||
func (r *LetterOutgoingRepository) GetWithRelations(ctx context.Context, id uuid.UUID, relations []string) (*entities.LetterOutgoing, error) {
|
||||
db := DBFromContext(ctx, r.db)
|
||||
query := db.WithContext(ctx).Where("id = ? AND deleted_at IS NULL", id)
|
||||
@@ -120,7 +131,11 @@ func (r *LetterOutgoingRepository) List(ctx context.Context, filter ListOutgoing
|
||||
|
||||
// Apply is_archived filter
|
||||
if filter.IsArchived != nil {
|
||||
query = query.Where("letters_outgoing.is_archived = ?", *filter.IsArchived)
|
||||
if *filter.IsArchived {
|
||||
query = query.Where("letter_outgoing_recipients.is_archived = ?", true)
|
||||
} else {
|
||||
query = query.Where("letter_outgoing_recipients.is_archived = ? OR letter_outgoing_recipients.is_archived IS NULL", false)
|
||||
}
|
||||
}
|
||||
|
||||
if filter.Status != nil {
|
||||
|
||||
@@ -136,9 +136,9 @@ func (r *LetterIncomingRepository) List(ctx context.Context, filter ListIncoming
|
||||
|
||||
if filter.IsArchived != nil {
|
||||
if *filter.IsArchived {
|
||||
query = query.Where("letters_incoming.is_archived = ?", true)
|
||||
query = query.Where("letter_incoming_recipients.is_archived = ?", true)
|
||||
} else {
|
||||
query = query.Where("letters_incoming.is_archived = ? OR letters_incoming.is_archived IS NULL", false)
|
||||
query = query.Where("letter_incoming_recipients.is_archived = ? OR letter_incoming_recipients.is_archived IS NULL", false)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,9 +206,9 @@ func (r *LetterIncomingRepository) List(ctx context.Context, filter ListIncoming
|
||||
//}
|
||||
if filter.IsArchived != nil {
|
||||
if *filter.IsArchived {
|
||||
dataQuery = dataQuery.Where("letters_incoming.is_archived = ?", true)
|
||||
dataQuery = dataQuery.Where("letter_incoming_recipients.is_archived = ?", true)
|
||||
} else {
|
||||
dataQuery = dataQuery.Where("letters_incoming.is_archived = ? OR letters_incoming.is_archived IS NULL", false)
|
||||
dataQuery = dataQuery.Where("letter_incoming_recipients.is_archived = ? OR letter_incoming_recipients.is_archived IS NULL", false)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user