package com.dcsoft.system.uniubi.service;


import com.alibaba.fastjson.JSONObject;
import com.dcsoft.system.domain.SysEquipment;
import com.dcsoft.system.domain.SysPeople;
import com.dcsoft.system.domain.SysPeopleRecord;
import com.dcsoft.system.domain.SysRule;
import com.dcsoft.system.uniubi.domain.Person;
import com.dcsoft.system.visitor.domain.Visitor;

import java.util.List;

/**
 * Uface 服务层
 *
 * @author nichun
 */
public interface ISysSdkService {

    //人员接口-人员注册
    String personCreate(Person person, String ip, String pass);

    //人员接口-人员删除（若删除多个人员，id 用英文逗号拼接,传入-1 则删除所有人员）
    String personDelete(String id, String ip, String pass);

    //人员接口-人员更新
    String personUpdate(Person person, String ip, String pass);

    //人员接口-人员查询（若删除多个人员，id 用英文逗号拼接,传入-1 则删除所有人员）
    String personFind(String id, String ip, String pass);

    //人员接口-人员卡号注册
    String icCardRegist(String id, String ip, String pass);

    //人员接口-时间段权限设置
    String createPasstime(JSONObject object, String ip, String pass);

    //人员接口-时间段权限设置(安卓设备不支持)
    String passtime(JSONObject object, String ip, String pass);

    //人员接口-时间段权限批量删除（传入-1 可清除所有人员的passtime）
    String deletePasstime(String id, String ip, String pass);

    //人员接口-人员有效期设置(2017-07-15 12:05:00) 仅支持单个人员
    String permissionsCreate(String id, String time, String ip, String pass);

    //人员有效期批量设置(安卓设备不支持)
    //2017-07-15 12:05:00
    //传入-1 则选择为所有人员进行设置权限时间
    String permissionTime(String id, String startTime, String endTime, String ip, String pass);

    //人员接口-人员有效期批量删除(传入-1，可清除所有人员的权限时间)
    String permissionsDelete(String id, String ip, String pass);

    //照片管理-照片注册册（base64）（不推荐使用）图片像素大于112*112、分辨率小于1080p、文件大小小于2M
    String imageCreate64(String id, String imgBase64, String ip, String pass);

    //照片管理-照片注册册（url）（不推荐使用）图片像素大于112*112、分辨率小于1080p、文件大小小于2M
    String imageCreateUrl(String id,String faceId, String imgUrl, String ip, String pass);

    String imageCreateUrl(String id,String imgUrl, String ip, String pass);

    //照片管理-照片删除
    String imageDeletel(String faceId, String ip, String pass);

    //照片管理-照片更新（base64）
    String imageUpdate64(String id, String faceId, String imgBase64, String ip, String pass);

    //照片管理-拍照注册
    String takeImg(String id, String ip, String pass);

    //照片管理-清空人员注册照片
    String deletePerson(String id, String ip, String pass);

    //设备管理-识别回调
    String setIdentifyCallBack(String callbackUrl, String ip, String pass);

    //远程控制输出--默认远程开门
    String openDoorControl(String ip, String pass);

    //远程控制输出--设备重启
    String restartDevice(String ip, String pass);

    //远程控制输出--设备重置
    String resetDevice(String ip, String pass);

    String authDevice(SysRule rule, SysPeople people);

    String authDevice(SysRule rule, SysPeople people, SysEquipment equipment);

    void insertKqxx(SysPeopleRecord peopleRecord);

    String authDeviceExamine(Visitor visitor);

    String authDeviceRevoke(Visitor visitor);

    //设备管理-二维码回调
    String setQRCodeCallback(String callbackUrl, String ip, String pass);


    //设备管理-心跳回调
    String setDeviceHeartBeat(String callbackUrl, String ip, String pass);

    //设备管理-指纹采集
    String fingerRegist(String id, String ip, String pass);


    //设备管理-指纹特征值查询
    String featureInfo(String id, String ip, String pass);

    //设备管理-照片查询
    String faceFind(String id, String ip, String pass);


    //设备管理-指纹特征值注册
    String featureReg(String id,String fingerprint, String ip, String pass);

    String authDeviceNew(SysRule rule, SysPeople sysPeople);

    String authDeviceNews(SysRule rule, SysPeople sysPeople);

    String authDevices(SysPeople people, SysEquipment equipment);
}
