package info.ozkan.vipera.dao.doctor;
import info.ozkan.vipera.entities.Doctor;
import java.util.List;
/**
* Hekimler üzerinde işlem yapan veri katmanı sınıfı
*
* @author Ömer Özkan
*
*/
public interface DoctorDao {
/**
* Veritabanına hekim ekler
*
* @param doctor
* @return
*/
DoctorDaoResult add(Doctor doctor);
/**
*
* Veritabanından TCKN'ye ait hekimi sorgular
*
* @param tckn
* TC Kimlik No
* @return Doctor nesnesi
*
* @param tckn
* @return
*/
DoctorDaoResult getByTckn(Long tckn);
/**
* Veritabanından girilen kriterlere göre hekim arama işlemi yapar
*
* @param filter
* @return
*/
List<Doctor> find(DoctorBrowseFilter filter);
/**
* Veritabanından ID'e ait hekimi dönderir
*
* @param id
* @return
*/
DoctorDaoResult getById(Long id);
/**
* Hekimi günceller
*
* @param doctor
* @return
*/
DoctorDaoResult update(Doctor doctor);
/**
* Hekimi siler
*
* @param doctor
* @return
*/
DoctorDaoResult delete(Doctor doctor);
/**
* Veritabanında kayıtlı bir hekimi api anahtarına göre sorgular
*
* @param apiKey
* @return
*/
DoctorDaoResult getByApi(String apiKey);
}