package com.securitycontrol.background.service;

import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.entity.background.dto.ParamDto;
import com.securitycontrol.entity.background.vo.HumanManageVo;
import com.securitycontrol.entity.background.vo.TeamManageVo;

import java.util.List;

/**
 * @author 10488
 * 班组-业务层
 */
public interface TeamService {
    /**
     * 获取班组列表
     *
     * @param dto
     * @return List<TeamManageVo>
     * @description
     * @author cwchen
     * @date 2024/3/21 9:40
     */
    List<TeamManageVo> getTeamLists(ParamDto dto);

    /**
     * 删除班组
     *
     * @param vo
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/3/21 10:45
     */
    AjaxResult delTeam(ParamDto vo);

    /**
     * 新增/修改班组
     *
     * @param vo
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/3/21 10:10
     */
    AjaxResult addOrUpdateTeam(TeamManageVo vo);

    /**
     * 班组详情
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/3/21 10:40
     */
    AjaxResult getTeamDetailById(ParamDto dto);

    /**
     * 获取班组人员列表
     *
     * @param dto
     * @return List<HumanManageVo>
     * @description
     * @author cwchen
     * @date 2024/3/22 10:02
     */
    List<HumanManageVo> getTeamUserLists(ParamDto dto);

    /**
     * 移出班组人员
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/3/22 10:10
     */
    AjaxResult removeTeamUser(ParamDto dto);

    /**
     * 获取班组组员和未加入班组人员
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/3/22 10:31
     */
    AjaxResult getTeamUserAndNoBandingUser(ParamDto dto);

    /**
     * 添加班组人员
     * @param dto
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/3/22 10:44
     */
    AjaxResult addTeamUser(ParamDto dto);
}
