package com.magamochi.ingestion.service; import static java.util.Objects.nonNull; import com.magamochi.ingestion.model.dto.ProviderListDTO; import com.magamochi.ingestion.model.entity.Provider; import com.magamochi.ingestion.model.enumeration.ProviderStatus; import com.magamochi.ingestion.model.repository.ProviderRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @Service @RequiredArgsConstructor public class ProviderService { private final ProviderRepository providerRepository; public ProviderListDTO getProviders(Boolean manualImport) { var providers = providerRepository.findAll(); if (nonNull(manualImport) && manualImport) { providers = providers.stream().filter(Provider::getManualImport).toList(); } return ProviderListDTO.from(providers); } public Provider getOrCreateProvider(String providerName) { return getOrCreateProvider(providerName, true); } public Provider getOrCreateProvider(String providerName, Boolean supportsChapterFetch) { return providerRepository .findByNameIgnoreCase(providerName) .orElseGet( () -> providerRepository.save( Provider.builder() .name(providerName) .status(ProviderStatus.ACTIVE) .supportsChapterFetch(supportsChapterFetch) .build())); } }