package net.shyshkin.study.fullstack.supportportal.backend.service;

import net.shyshkin.study.fullstack.supportportal.backend.domain.Professor;
import net.shyshkin.study.fullstack.supportportal.backend.domain.dto.ProfessorDto;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;

import java.util.UUID;

public interface ProfessorService {

    Professor register(String firstName, String lastName, String email, String department, String position);

    Page<Professor> findAll(Pageable pageable);

    Professor findByEmail(String email);

    Professor findByProfessorId(UUID professorId);

    Professor addNewProfessor(ProfessorDto professorDto);

    Professor updateProfessor(UUID professorId, ProfessorDto professorDto);

    void deleteProfessor(UUID professorId);

    Professor updateProfileImage(UUID professorId, MultipartFile profileImage);

    byte[] getImageByProfessorId(UUID professorId, String filename);

    byte[] getDefaultProfileImage(UUID professorId);
}
