TraceAttachmentServiceConfig.java

package fr.avenirsesr.portfolio.file.infrastructure.service;

import fr.avenirsesr.portfolio.file.domain.port.input.TraceAttachmentService;
import fr.avenirsesr.portfolio.file.domain.port.output.service.FileStorageService;
import fr.avenirsesr.portfolio.file.domain.service.TraceAttachmentServiceImpl;
import fr.avenirsesr.portfolio.file.infrastructure.adapter.repository.TraceAttachmentDatabaseRepository;
import fr.avenirsesr.portfolio.trace.domain.port.input.TraceService;
import fr.avenirsesr.portfolio.trace.infrastructure.adapter.repository.TraceDatabaseRepository;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TraceAttachmentServiceConfig {
  private final TraceAttachmentDatabaseRepository traceAttachmentRepository;
  private final TraceDatabaseRepository traceRepository;
  private final FileStorageService fileStorageService;
  private final TraceService traceService;

  public TraceAttachmentServiceConfig(
      TraceAttachmentDatabaseRepository traceAttachmentRepository,
      TraceDatabaseRepository traceRepository,
      FileStorageService fileStorageService,
      TraceService traceService) {
    this.traceAttachmentRepository = traceAttachmentRepository;
    this.traceRepository = traceRepository;
    this.fileStorageService = fileStorageService;
    this.traceService = traceService;
  }

  @Bean
  public TraceAttachmentService traceAttachmentService() {
    return new TraceAttachmentServiceImpl(
        traceAttachmentRepository, traceRepository, fileStorageService, traceService);
  }
}