package info.ozkan.vipera.business.device;
import info.ozkan.vipera.entities.Device;
/**
* Cihazlar üzerinde CRUD işlemi gerçekleştiren işletme arayüzü
*
* @author Ömer Özkan
*
*/
public interface DeviceManager {
/**
* Sisteme yeni bir cihaz ekler
*
* @param device
* @return
*/
DeviceManagerResult add(Device device);
/**
* Cihazlar üzerinde arama yapar
*
* @param filter
* @return
*/
DeviceManagerResult search(DeviceManagerSearchFilter filter);
/**
* Sistemde kayıtlı olan bir cihazı siler
*
* @param deviceId
* @return
*/
DeviceManagerResult delete(Long deviceId);
/**
* Sistemde kayıtlı olan bir cihazı dönderir
*
* @param id
* Cihaz ID
* @return
*/
DeviceManagerResult getById(Long id);
/**
* Sistemde kayıtlı olan bir cihazı günceller
*
* @param device
* @return
*/
DeviceManagerResult update(Device device);
/**
* Sistemde kayıtlı olan bir cihazı anahtar ve parola ile sorgular
*
* @param apiKey
* api anahtarı
* @param apiPassword
* api parolası
* @return
*/
DeviceManagerResult checkCredential(String apiKey, String apiPassword);
}