package com.zcloud.personnel.positioning.api;

import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.personnel.positioning.dto.FenceAddCmd;
import com.zcloud.personnel.positioning.dto.FenceCompanyAreaSaveCmd;
import com.zcloud.personnel.positioning.dto.FenceCompanyPageQry;
import com.zcloud.personnel.positioning.dto.FencePageQry;
import com.zcloud.personnel.positioning.dto.FenceSyncCmd;
import com.zcloud.personnel.positioning.dto.FenceUpdateCmd;
import com.zcloud.personnel.positioning.dto.clientobject.FenceCO;
import com.zcloud.personnel.positioning.dto.clientobject.FenceCompanyAreaCO;
import com.zcloud.personnel.positioning.dto.clientobject.FenceCompanyStatCO;
import com.zcloud.personnel.positioning.dto.clientobject.FenceSyncCO;
import com.zcloud.personnel.positioning.dto.clientobject.OptionCO;

import java.util.List;

public interface FenceServiceI {
    PageResponse<FenceCompanyStatCO> listCompanyStats(FenceCompanyPageQry qry);

    List<OptionCO> listCompanyOptions(String keyword);

    PageResponse<FenceCO> listPage(FencePageQry qry);

    List<FenceCO> listAll();

    FenceCO queryById(Long id);

    FenceCompanyAreaCO queryCompanyArea(String corpinfoId, String corpinfoName);

    SingleResponse<FenceCO> add(FenceAddCmd cmd);

    FenceCompanyAreaCO saveCompanyArea(FenceCompanyAreaSaveCmd cmd);

    FenceSyncCO syncFromFinds(FenceSyncCmd cmd);

    void edit(FenceUpdateCmd cmd);

    void enable(Long id);

    void disable(Long id);

    void remove(Long id);

    void removeBatch(Long[] ids);
}
