diff --git a/internal/contract/letter_outgoing_contract.go b/internal/contract/letter_outgoing_contract.go index 1df1961..504df92 100644 --- a/internal/contract/letter_outgoing_contract.go +++ b/internal/contract/letter_outgoing_contract.go @@ -114,6 +114,7 @@ type OutgoingLetterResponse struct { IsRead bool `json:"is_read"` Recipients []OutgoingLetterRecipientResponse `json:"recipients,omitempty"` Attachments []OutgoingLetterAttachmentResponse `json:"attachments,omitempty"` + FinalAttachments []OutgoingLetterAttachmentResponse `json:"final_attachments,omitempty"` Approvals []OutgoingLetterApprovalResponse `json:"approvals,omitempty"` } diff --git a/internal/repository/letter_outgoing_repository.go b/internal/repository/letter_outgoing_repository.go index bc12703..91294a0 100644 --- a/internal/repository/letter_outgoing_repository.go +++ b/internal/repository/letter_outgoing_repository.go @@ -32,6 +32,7 @@ func (r *LetterOutgoingRepository) Get(ctx context.Context, id uuid.UUID) (*enti Preload("ApprovalFlow"). Preload("Recipients"). Preload("Attachments"). + Preload("FinalAttachments"). Preload("Approvals.Step"). Preload("Approvals.Approver"). Where("id = ? AND deleted_at IS NULL", id). @@ -51,6 +52,7 @@ func (r *LetterOutgoingRepository) GetByReferenceNumber(ctx context.Context, ref Preload("ApprovalFlow"). Preload("Recipients"). Preload("Attachments"). + Preload("FinalAttachments"). Preload("Approvals.Step"). Preload("Approvals.Approver"). Where("reference_number = ? AND deleted_at IS NULL", refNumber). @@ -259,6 +261,7 @@ func (r *LetterOutgoingRepository) List(ctx context.Context, filter ListOutgoing Preload("Recipients.User"). Preload("Recipients.Department"). Preload("Attachments"). + Preload("FinalAttachments"). Preload("Approvals.Step"). Preload("Approvals.Approver"). Order(orderBy). @@ -359,6 +362,7 @@ func (r *LetterOutgoingRepository) ListAll(ctx context.Context, filter ListOutgo Preload("Recipients.User"). Preload("Recipients.Department"). Preload("Attachments"). + Preload("FinalAttachments"). Preload("Approvals"). Preload("Approvals.Step"). Preload("Approvals.Approver"). diff --git a/internal/service/letter_outgoing_service.go b/internal/service/letter_outgoing_service.go index e775502..1701729 100644 --- a/internal/service/letter_outgoing_service.go +++ b/internal/service/letter_outgoing_service.go @@ -1635,6 +1635,19 @@ func transformLetterToResponse(letter *entities.LetterOutgoing) *contract.Outgoi } } + if len(letter.FinalAttachments) > 0 { + resp.FinalAttachments = make([]contract.OutgoingLetterAttachmentResponse, len(letter.FinalAttachments)) + for i, attachment := range letter.FinalAttachments { + resp.FinalAttachments[i] = contract.OutgoingLetterAttachmentResponse{ + ID: attachment.ID, + FileURL: attachment.FileURL, + FileName: attachment.FileName, + FileType: attachment.FileType, + UploadedAt: attachment.UploadedAt, + } + } + } + if len(letter.Approvals) > 0 { resp.Approvals = make([]contract.OutgoingLetterApprovalResponse, len(letter.Approvals)) for i, approval := range letter.Approvals {