package com.ghy.worker.service;

import com.ghy.worker.domain.Worker;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

public interface WorkerService {

    /**
     * @param worker 师傅
     * @return 师傅集合
     */
    List<Worker> getWorkList(Worker worker);

    /**
     * @param worker 微信唯一id
     * @return worker师傅
     */
    Worker selectByOpenId(Worker worker);

    /**
     * @param worker 师傅信息
     * @return 新增成功条数
     */
    int insertWorker(Worker worker);

    /**
     * @param worker 师傅信息
     * @return 更新成功条数
     */
    int updateWorker(Worker worker);

    List<Worker> getWorkByPhoneAndPwd(Worker worker);

    /**
     * 用师傅ID查询
     *
     * @param workerId 师傅ID
     */
    Worker selectById(Long workerId);

    /**
     * 校验成员与leader是否在同一个团队
     *
     * @param leaderId leaderId
     * @param workerId workerId
     */
    boolean checkInTeam(Long leaderId, Long workerId);

    /**
     * 根据师傅id集合信息进行查询封装成为map数据，
     *
     * @param workUserIdList 师傅Id集合信息数据
     * @return 键值队列数据， key-> 师傅Id value-> 师傅实体信息
     */
    Map<Long, Worker> byWorkUserIdInMap(List<Long> workUserIdList);

    List<Worker> selectByIds(Set<Long> workerIds);

    /**
     * 删除师傅（软删除）
     *
     * @param ids 师傅ID字符串，多个ID用逗号分隔
     * @return 删除成功条数
     */
    int deleteWorkerByIds(String ids);
}
