Add Surat Keluar

This commit is contained in:
Aditya Siregar
2025-09-20 16:31:22 +07:00
parent 0399c87736
commit e4946d6e05
13 changed files with 1151 additions and 13 deletions
+51 -1
View File
@@ -197,6 +197,14 @@ type processors struct {
recipientProcessor *processor.RecipientProcessorImpl
letterDispositionProcessor *processor.LetterDispositionProcessorImpl
letterDispositionDeptProcessor *processor.LetterDispositionDepartmentProcessorImpl
// Modular processors for letter outgoing
letterValidationProcessor processor.LetterValidationProcessor
letterCreationProcessor processor.LetterCreationProcessor
letterApprovalProcessor processor.LetterApprovalProcessor
letterAttachmentProcessor processor.LetterAttachmentProcessor
letterOutgoingRecipientProcessor processor.LetterOutgoingRecipientProcessor
letterActivityProcessor processor.LetterActivityProcessor
txManager *repository.TxManager
}
func (a *App) initProcessors(cfg *config.Config, repos *repositories) *processors {
@@ -218,6 +226,31 @@ func (a *App) initProcessors(cfg *config.Config, repos *repositories) *processor
letterNumberGen, repos.dispositionRouteRepo,
)
// Create modular processors for letter outgoing
letterValidationProc := processor.NewLetterValidationProcessor()
letterCreationProc := processor.NewLetterCreationProcessor(
repos.letterOutgoingRepo,
repos.approvalFlowRepo,
letterNumberGen,
)
letterApprovalProc := processor.NewLetterApprovalProcessor(
repos.letterOutgoingApprovalRepo,
repos.approvalFlowRepo,
repos.letterOutgoingRepo,
)
letterAttachmentProc := processor.NewLetterAttachmentProcessor(
repos.letterOutgoingAttachmentRepo,
)
letterOutgoingRecipientProc := processor.NewLetterOutgoingRecipientProcessor(
repos.letterOutgoingRecipientRepo,
repos.approvalFlowRepo,
repos.userDeptRepo,
)
letterActivityProc := processor.NewLetterActivityProcessor(
repos.letterOutgoingActivityLogRepo,
)
// Create the main letter outgoing processor for backward compatibility
letterOutgoingProc := processor.NewLetterOutgoingProcessor(
a.db,
repos.letterOutgoingRepo,
@@ -307,6 +340,14 @@ func (a *App) initProcessors(cfg *config.Config, repos *repositories) *processor
recipientProcessor: recipientProc,
letterDispositionProcessor: letterDispositionProc,
letterDispositionDeptProcessor: letterDispositionDeptProc,
// Modular processors
letterValidationProcessor: letterValidationProc,
letterCreationProcessor: letterCreationProc,
letterApprovalProcessor: letterApprovalProc,
letterAttachmentProcessor: letterAttachmentProc,
letterOutgoingRecipientProcessor: letterOutgoingRecipientProc,
letterActivityProcessor: letterActivityProc,
txManager: txMgr,
}
}
@@ -352,7 +393,16 @@ func (a *App) initServices(processors *processors, repos *repositories, cfg *con
processors.activityLogger,
)
dispRouteSvc := service.NewDispositionRouteService(repos.dispositionRouteRepo)
letterOutgoingSvc := service.NewLetterOutgoingService(processors.letterOutgoingProcessor)
letterOutgoingSvc := service.NewLetterOutgoingService(
processors.letterOutgoingProcessor,
processors.txManager,
processors.letterValidationProcessor,
processors.letterCreationProcessor,
processors.letterApprovalProcessor,
processors.letterAttachmentProcessor,
processors.letterOutgoingRecipientProcessor,
processors.letterActivityProcessor,
)
approvalFlowStepRepo := repository.NewApprovalFlowStepRepository(a.db)
approvalFlowSvc := service.NewApprovalFlowService(