add priority ids at outgoing letter

This commit is contained in:
efrilm
2025-10-13 03:33:20 +07:00
parent b81c0be3c4
commit cdc1244efc
5 changed files with 79 additions and 61 deletions
@@ -91,6 +91,7 @@ type ListOutgoingLettersFilter struct {
FromDate *time.Time
ToDate *time.Time
PriorityID *uuid.UUID
PriorityIDs []uuid.UUID
SortBy *string
SortOrder *string
IsArchived *bool
@@ -127,7 +128,7 @@ func (r *LetterOutgoingRepository) List(ctx context.Context, filter ListOutgoing
fmt.Printf("[DEBUG] filter.UserID: %v\n", filter.UserID)
fmt.Printf("[DEBUG] filter.isRead: %v\n", filter.IsRead)
// Tambahkan filter IsRead
if filter.IsRead != nil {
if *filter.IsRead {
@@ -136,17 +137,20 @@ func (r *LetterOutgoingRepository) List(ctx context.Context, filter ListOutgoing
query = query.Where("letter_outgoing_recipients.read_at IS NULL")
}
}
query = query.Distinct()
}
if filter.ReceiverInstitutionID != nil {
query = query.Where("receiver_institution_id = ?", *filter.ReceiverInstitutionID)
}
if filter.PriorityID != nil {
query = query.Where("priority_id = ?", *filter.PriorityID)
}
if len(filter.PriorityIDs) > 0 {
query = query.Where("priority_id IN ?", filter.PriorityIDs)
}
fmt.Printf("Priority %s", filter.PriorityIDs)
if filter.FromDate != nil {
query = query.Where("issue_date >= ?", *filter.FromDate)
}
@@ -351,19 +355,19 @@ func (r *LetterOutgoingAttachmentRepository) ListByLetterIDs(ctx context.Context
if len(letterIDs) == 0 {
return make(map[uuid.UUID][]entities.LetterOutgoingAttachment), nil
}
db := DBFromContext(ctx, r.db)
var attachments []entities.LetterOutgoingAttachment
if err := db.WithContext(ctx).Where("letter_id IN ?", letterIDs).Order("uploaded_at ASC").Find(&attachments).Error; err != nil {
return nil, err
}
// Group attachments by letter ID
result := make(map[uuid.UUID][]entities.LetterOutgoingAttachment)
for _, att := range attachments {
result[att.LetterID] = append(result[att.LetterID], att)
}
return result, nil
}
@@ -441,7 +445,7 @@ func (r *LetterOutgoingRecipientRepository) ListByLetterIDs(ctx context.Context,
if len(letterIDs) == 0 {
return make(map[uuid.UUID][]entities.LetterOutgoingRecipient), nil
}
db := DBFromContext(ctx, r.db)
var recipients []entities.LetterOutgoingRecipient
if err := db.WithContext(ctx).
@@ -453,13 +457,13 @@ func (r *LetterOutgoingRecipientRepository) ListByLetterIDs(ctx context.Context,
Find(&recipients).Error; err != nil {
return nil, err
}
// Group recipients by letter ID
result := make(map[uuid.UUID][]entities.LetterOutgoingRecipient)
for _, rec := range recipients {
result[rec.LetterID] = append(result[rec.LetterID], rec)
}
return result, nil
}