package ru.mcs.diary.student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import ru.mcs.diary.parent.ParentType;
import java.util.List;
import java.util.Optional;
@Repository
public interface StudentParentRepository extends JpaRepository<StudentParent, Long> {
List<StudentParent> findAllByStudentId(Long studentId);
// Старый метод - НЕ ИСПОЛЬЗОВАТЬ для view родителя
List<StudentParent> findAllByParentId(Long parentId);
// НОВЫЙ метод с подгрузкой студента
@Query("SELECT sp FROM StudentParent sp JOIN FETCH sp.student WHERE sp.parent.id = :parentId")
List<StudentParent> findAllByParentIdWithStudent(@Param("parentId") Long parentId);
Optional<StudentParent> findByStudentIdAndParentType(Long studentId, ParentType parentType);
boolean existsByStudentIdAndParentType(Long studentId, ParentType parentType);
@Query("SELECT COUNT(sp) FROM StudentParent sp WHERE sp.parent.id = :parentId")
int countChildrenByParentId(@Param("parentId") Long parentId);
void deleteByStudentIdAndParentId(Long studentId, Long parentId);
}