package com.yuchen.saas.park.service.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuchen.saas.park.api.entity.device.PmgBatSmartEquipment;
import com.yuchen.saas.park.api.entity.park.PmgBatParkCompany;
import com.yuchen.saas.park.api.entity.park.PmgBatParkPeople;
import com.yuchen.saas.park.api.entity.park.PmgBatParkVisitor;
import com.yuchen.saas.park.api.entity.park.PmgBtnDeviceOther;
import com.yuchen.saas.park.api.vo.park.DeviceAndOtherVo;
import com.yuchen.saas.park.api.vo.park.PmgBatParkCompanyVo;
import com.yuchen.saas.park.api.vo.park.PmgBatSmartEquipmentVo;
import org.nest.springwrap.core.datascope.annotation.DataAuth;
import org.nest.springwrap.core.datascope.enums.DataScopeEnum;

import java.util.List;

/**
 * @author 刘通
 * @date 2020/12/31 10:44
 */
public interface PmgBtnDeviceOtherMapper extends BaseMapper<PmgBtnDeviceOther> {
    // 园内人员
    @DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
    List<DeviceAndOtherVo> getParkPeopleList(String deviceId);
    @DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
    List<PmgBatParkPeople> getParkPeopleListV2(String deviceId);
    @DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
    List<PmgBatSmartEquipment> getParkPeopleListV3(String peopleId);
    // 访客
    @DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
    List<DeviceAndOtherVo> getParkVisitorList(String deviceId);
    @DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
    List<PmgBatParkVisitor> getParkVisitorListV2(String deviceId);
    @DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
    List<PmgBatSmartEquipment> getParkVisitorListV3(String peopleId);
    // 公司
    @DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
    List<DeviceAndOtherVo> getParkCompanyList(String deviceId);
    @DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
    List<PmgBatParkCompany> getParkCompanyListV2(String deviceId);
    @DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
    List<PmgBatParkCompanyVo> getParkCompanyListV3(String productKey, String deviceName);
    // 设备
    @DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
    List<DeviceAndOtherVo> getParkDeviceList(String deviceId);
    @DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
    List<PmgBatSmartEquipmentVo> getParkDeviceListV2(String deviceId);
    // 公共方法
    @DataAuth(type = DataScopeEnum.OWN_DEPT_CHILD)
    List<PmgBatSmartEquipmentVo> getDeviceListByOtherId(String productKey, String otherId);

}
