update api incoming letter

This commit is contained in:
efrilm
2025-10-17 00:04:21 +07:00
parent 58128495a6
commit 92440953cb
5 changed files with 128 additions and 59 deletions
+19 -1
View File
@@ -7,7 +7,7 @@ import (
"github.com/google/uuid"
)
func LetterEntityToContract(e *entities.LetterIncoming, attachments []entities.LetterIncomingAttachment, refs ...interface{}) *contract.IncomingLetterResponse {
func LetterEntityToContract(e *entities.LetterIncoming, attachments []entities.LetterIncomingAttachment, dispositions []entities.LetterIncomingDisposition, refs ...interface{}) *contract.IncomingLetterResponse {
resp := &contract.IncomingLetterResponse{
ID: e.ID,
LetterNumber: e.LetterNumber,
@@ -24,6 +24,7 @@ func LetterEntityToContract(e *entities.LetterIncoming, attachments []entities.L
CreatedAt: e.CreatedAt,
UpdatedAt: e.UpdatedAt,
Attachments: make([]contract.IncomingLetterAttachmentResponse, 0, len(attachments)),
Dispositions: make([]contract.EnhancedDispositionResponse, 0, len(dispositions)),
}
// optional refs: allow passing already-fetched related objects
@@ -65,6 +66,23 @@ func LetterEntityToContract(e *entities.LetterIncoming, attachments []entities.L
UploadedAt: a.UploadedAt,
})
}
for _, d := range dispositions {
resp.Dispositions = append(resp.Dispositions, contract.EnhancedDispositionResponse{
ID: d.ID,
LetterID: d.LetterID,
DepartmentID: d.DepartmentID,
Notes: d.Notes,
ReadAt: d.ReadAt,
CreatedBy: d.CreatedBy,
CreatedAt: d.CreatedAt,
UpdatedAt: d.UpdatedAt,
Departments: DispositionDepartmentsWithDetailsToContract(d.Departments),
Actions: DispositionActionSelectionsWithDetailsToContract(d.ActionSelections),
DispositionNotes: DispositionNotesWithDetailsToContract(d.DispositionNotes),
Department: DepartmentToContract(d.Department),
})
}
return resp
}