package info.ozkan.vipera.business.device;
import info.ozkan.vipera.entities.Device;
/**
* Cihaz işlemleri için kullanılan işletme katmanı arayüzü
*
* @author Ömer Özkan
*
*/
public interface DeviceFacade {
/**
* Sisteme yeni bir cihaz ekler
*
* @param device
* @return
*/
DeviceManagerResult add(Device device);
/**
* Sistemde cihazlar üzerinde arama yapar
*
* @param model
* filtre
* @return
*/
DeviceManagerResult search(DeviceManagerSearchFilter filter);
/**
* Sistemden cihaz siler
*
* @param deviceId
* @return
*/
DeviceManagerResult delete(Long deviceId);
/**
* Sistemde kayıtlı olan bir cihazı ID'sine görer arar
*
* @param id
* @return
*/
DeviceManagerResult getById(Long id);
/**
* Cihazı günceller
*
* @param device
* @return
*/
DeviceManagerResult update(Device device);
/**
* Cihazın anahtarı ve parolasını kontrol eder
*
* @param apiKey
* @param apiPassword
* @return
*/
DeviceManagerResult checkCredential(String apiKey, String apiPassword);
}