package com.escolapios.fctmongo.repository;

import com.escolapios.fctmongo.entity.Convenio;

import java.util.List;
import java.util.Optional;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.stereotype.Repository;

@Repository
public interface ConvenioRepository extends MongoRepository<Convenio, String> {

    Optional<Convenio> findByNumeroAcuerdo(String numeroAcuerdo);
    // Aquí puedes añadir consultas personalizadas si lo necesitas en el futuro
     // 🟢 Traemos solo los números de acuerdo de la base de datos de forma optimizada
    
     @Query(value = "{}", fields = "{ 'numeroAcuerdo' : 1, '_id' : 0 }")
    List<Convenio> findAllNumeroAcuerdoOnly();
    
    Optional<Convenio> findFirstByOrderByIdDesc();   
    boolean existsByNumeroAcuerdo(String numeroAcuerdo);
    
    Page<Convenio> findByNumeroAcuerdoContainingIgnoreCase(String numeroAcuerdo, Pageable pageable);
    Page<Convenio> findByEmpresaNombreContainingIgnoreCase(String nombreEmpresa, Pageable pageable);
    Page<Convenio> findByCursoAcademicoContainingIgnoreCase(String curso, Pageable pageable);

}
