package service.impl;

import DAO.impl.ProfessorSubjectDAOImpl;
import model.Professor;
import model.Subject;
import service.ProfessorSubjectService;
import java.sql.SQLException;
import java.util.List;

public class ProfessorSubjectServiceImpl implements ProfessorSubjectService {

    private final ProfessorSubjectDAOImpl dao = new ProfessorSubjectDAOImpl();

    @Override
    public void assignProfessorToSubject(Long professor_id, Long subject_id) throws SQLException {
        List<Subject> currentSubjects = dao.getSubjectsByProfessor(professor_id);
        for (Subject s : currentSubjects) {
            if (s.getId().equals(subject_id)) {
                return;
            }
        }
        dao.assign(professor_id, subject_id);
    }

    @Override
    public void removeProfessorFromSubject(Long professor_id, Long subject_id) throws SQLException {
        dao.remove(professor_id, subject_id);
    }

    @Override
    public List<Professor> getProfessorsForSubject(Long subject_id) throws SQLException {
        return dao.getProfessorsBySubject(subject_id);
    }

    @Override
    public List<Subject> getSubjectsForProfessor(Long professor_id) throws SQLException {
        return dao.getSubjectsByProfessor(professor_id);
    }
}