package de.accso.flexinale.security.infrastructure;

import de.accso.flexinale.security.infrastructure.persistence.BenutzerDao;
import de.accso.flexinale.security.infrastructure.services.BenutzerUploadService;
import de.accso.flexinale.security.infrastructure.persistence.BenutzerJpaRepository;
import de.accso.flexinale.security.infrastructure.persistence.BenutzerJpaRepositoryDelegate;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@EnableJpaRepositories({"de.accso.flexinale.security.infrastructure.persistence"})
@EnableTransactionManagement
@EntityScan(basePackages={"de.accso.flexinale.security.infrastructure.persistence"})
public class FlexinaleSecuritySpringFactory {
    // ------------------------------------------------------------------------------------------------

    @Bean
    public BenutzerUploadService createBenutzerUploadService(final BenutzerDao benutzerDao) {
        return new BenutzerUploadService(benutzerDao);
    }

    @Bean
    public BenutzerDao createBenutzerDao(final BenutzerJpaRepository benutzerJpaRepository) {
        return new BenutzerJpaRepositoryDelegate(benutzerJpaRepository);
    }
}
