package com.gic.haoban.manage.api.service;

import com.gic.haoban.manage.api.dto.StaffDepartmentRelatedDTO;

import java.util.List;
import java.util.Map;


public interface StaffDepartmentRelatedApiService {

    List<StaffDepartmentRelatedDTO> listByDepartmentId(String departmentId);
    
    List<StaffDepartmentRelatedDTO> listByStaffId(String staffId);

    void updateById(StaffDepartmentRelatedDTO dto);


    /**
     * 根据员工与部门的关联关系查询
     *
     * @param staffDepartmentRelatedId
     * @return
     */
    StaffDepartmentRelatedDTO getByStaffDepartmentRelatedId(String staffDepartmentRelatedId);

	Map<String, String> getWxUserIdByClerkId(String clerkId);

	String getPageUrl(int type, String data);

	/**
	 * 发送企微消息，单人发送
	 *
	 * @param clerkId
	 * @param title
	 * @param content
	 * @param pageUrl
	 * @return
	 */
	boolean sendSingleMessage(String clerkId, String title, String content, String pageUrl);

	/**
	 * 发送企微消息，单人消息发送通用方法
	 *
	 * @param clerkId    : 接收人id
	 * @param title      : 通知标题
	 * @param contentMap : 时间集合, key 为类型, value : 内容(例如 接收事件 : 事件内容)
	 * @param pageUrl    : 跳转地址
	 * @return : 返回是否发送成功
	 */
	Boolean sendSingleMessage(String clerkId, String title, Map<String, String> contentMap, String pageUrl);

	//发送消息，带审核理由
	boolean sendAuditMessage(String clerkId, String title, String content, String pageUrl, int auditStatus, String auditReason);

	List<StaffDepartmentRelatedDTO> listByStaffIds(List<String> staffIds);

	void sendClerkAdd(String clerkName, String clerkCode, String storeId, int auditStatus, String auditReason);

	void sendClerkDel(String clerkName, String clerkCode, String storeId, int auditStatus, String auditReason);

    /**
     * 绑定导购
     *
     * @param auditId
     * @param staffId
     * @param clerkId
     * @param reason
     * @param isRefuse
     */
    void sendBindAuditMessage(String auditId, String staffId, String clerkId, String reason, boolean isRefuse);

}
