package es.tatvil.taiageweb.empleo;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class EmpleoMonitorService {
    private final List<FuenteEmpleo> fuentes;
    private final HistoricoRepository historicoRepository;
    private final NotificadorService notificadorService;

    public EmpleoMonitorService(List<FuenteEmpleo> fuentes, HistoricoRepository historicoRepository, NotificadorService notificadorService) {
        this.fuentes = fuentes;
        this.historicoRepository = historicoRepository;
        this.notificadorService = notificadorService;
    }

    @Scheduled(cron = "0 0 8 * * *") // Cada día a las 8:00
    public void monitorizar() {
        for (FuenteEmpleo fuente : fuentes) {
            List<PublicacionEmpleo> nuevas = fuente.obtenerNuevasPublicaciones();
            for (PublicacionEmpleo pub : nuevas) {
                if (!historicoRepository.existe(pub)) {
                    historicoRepository.guardar(pub);
                    notificadorService.notificar(pub);
                }
            }
        }
    }
}
