package com.escolapios.fctmongo.service;

import com.escolapios.fctmongo.entity.Empresa;
import com.escolapios.fctmongo.repository.EmpresaRepository;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class EmpresaService {
    private final EmpresaRepository empresaRepository;

    public EmpresaService(EmpresaRepository empresaRepository) {
        this.empresaRepository = empresaRepository;
    }

    public Empresa guardar(Empresa empresa) { return empresaRepository.save(empresa); }

    public List<Empresa> obtenerTodas() { return empresaRepository.findAll(); }

    public Empresa obtenerPorId(String id) { return empresaRepository.findById(id).orElseThrow(); }

    public void eliminar(String id) { empresaRepository.deleteById(id); }

    public Page<Empresa> obtenerEmpresasPaginadas(int page) {
        // 1. Configuramos la paginación: número de página (empieza en 0) y tamaño (10 elementos por página)
        Pageable pageable = PageRequest.of(page, 10);
        
        // 2. Ejecutamos la consulta paginada nativa en MongoDB a través del repositorio
        return empresaRepository.findAll(pageable);
    }
// En la implementación EmpresaServiceImpl.java:
    public boolean existePorCif(String cif) {
        return empresaRepository.existsByCif(cif);
    }
}
