package com.qmth.sop.business.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.sop.business.bean.dto.UserDto;
import com.qmth.sop.business.bean.params.ServiceRegionParam;
import com.qmth.sop.business.bean.result.ServiceRegionResult;
import com.qmth.sop.business.bean.result.SysUserBriefResult;
import com.qmth.sop.business.entity.SysUser;
import com.qmth.sop.business.entity.TBServiceRegion;

import java.util.List;

/**
 * <p>
 * 服务区域规划表 服务类
 * </p>
 *
 * @author wangliang
 * @since 2023-08-01
 */
public interface TBServiceRegionService extends IService<TBServiceRegion> {

    /**
     * 根据条件分页查询服务区域规划结果
     *
     * @param serviceUnitId 服务单元id
     * @param regionName    大区名称
     * @param leadId        领导人id
     * @param city          城市
     * @param pageNumber    分页页数
     * @param pageSize      分页容量
     * @return 分页查询结果
     */
    IPage<ServiceRegionResult> findServiceRegionPage(Long serviceUnitId, String regionName, Long leadId, String city, Integer pageNumber, Integer pageSize);

    /**
     * 服务区域规划编辑
     *
     * @param serviceRegionParam 服务区域规划参数
     * @return 服务区域规划id
     */
    Long editServiceRegion(ServiceRegionParam serviceRegionParam);

    /**
     * 删除大区规划
     *
     * @param serviceRegionIdList 删除服务区域规划
     */
    void removeServiceRegion(List<Long> serviceRegionIdList);

    /**
     * 根据服务单元id查询可以被选择的大区经理
     *
     * @param serviceUnitId 服务单元id
     * @return 大区经理用户信息
     */
    List<SysUserBriefResult> findCanChooseLeader(Long serviceUnitId);
}
