package service.impl; import DAO.impl.StudentSubjectDAOImpl; import model.StudentSubject; import java.sql.SQLException; import java.util.List; public class StudentSubjectServiceImpl { private final StudentSubjectDAOImpl dao = new StudentSubjectDAOImpl(); public void enrollStudent(StudentSubject ss) throws SQLException { // Business Logic: New enrollments should always start with 0 absences ss.setAbsences_count(0); dao.save(ss); } public List getAllEnrollments() throws SQLException { return dao.getAll(); } public void updateResult(StudentSubject ss) throws SQLException { // Business Validation: Ensure grade is valid before calling DB if (ss.getFinal_grade() != null) { if (ss.getFinal_grade() < 5 || ss.getFinal_grade() > 10) { throw new IllegalArgumentException("Grade must be between 5 and 10."); } } dao.update(ss); } public void removeEnrollment(Long ss_id) throws SQLException { dao.delete(ss_id); } public StudentSubject getEnrollment(Long ss_id) throws SQLException { return dao.getById(ss_id); } }