package com.zd.base.message.service;

import com.zd.common.core.template.TemplateResult;

import java.util.Date;
import java.util.List;

public interface IWechatMsgSendService {

    /**
     * 资格申请、用气申请通知发送
     *
     * @param userId 目标用户ID
     * @param checkType   审核类型 1：资格申请 2：用气申请
     * @param checkStatus 审核状态
     * @param checkTime   审核时间
     * @param taskId 任务ID
     * @return TemplateResult 通知发送结果
     */
    TemplateResult sendCheckResult(Long userId, Integer checkType, Integer checkStatus, Date checkTime, Long taskId);

    /**
     * 根据小程序端传回的code，获取openId
     * @param code 小程序端传回的code
     * @return openId
     */
    String getOpenId(String code);

    /**
     * 出库确认通知
     *
     * @param userId 目标用户ID
     * @param outType 出库类型
     * @param outTime 出库时间
     * @return TemplateResult 通知发送结果
     */
    TemplateResult sendStorageOutResult(Long userId, String outType, Date outTime);

    /**
     * 资格申请、用气申请待审核通知发送
     *
     * @param userId 目标用户ID
     * @param checkType 审核类型 1：资格申请 2：用气申请
     * @param name      申请人
     * @param applyTime 申请时间
     * @return TemplateResult 通知发送结果
     */
    TemplateResult sendWaitCheckResult(Long userId, Integer checkType, String name, Date applyTime);

    /**
     * 待办事项通知发送
     *
     * @param userId 目标用户ID
     * @param backlogName 待办事项名称
     * @param remark      备注
     * @return TemplateResult 通知发送结果
     */
    TemplateResult sendBacklogResult(Long userId, String backlogName, String remark);

    List<String> getList();

    TemplateResult sendStuCheckResult(Long userId, Integer checkType, Integer checkStatus, Date checkTime, Long taskId);

    TemplateResult sendAlarm(List<Long> userIds,String address);
}
