package jnpf.memberLog.service;

import jnpf.model.memberLog.dto.LogAgentAlertDto;
import jnpf.model.memberLog.dto.LogMemberLogDto;
import jnpf.model.memberLog.po.LogMemberAssociation;
import jnpf.model.memberLog.vo.LogMemberLogVo;
import jnpf.model.memberLog.vo.LogTemplateVo;
import jnpf.model.memberLog.vo.ReceiveRangeVo;

import java.util.List;

/**
 * 日志服务
 *
 * @author HuangLinPan
 * @date 2023/08/07
 */

public interface LogService {
    /**
     * 获取模板列表
     * @return jnpf.model.memberLog.vo.LogTemplateVo
     */
    List<LogTemplateVo> getTemplateList();

    /**
     * 新增日志信息
     * @param logMemberLogDto 日志信息
     * @return 返回值
     */
    void addLog(LogMemberLogDto logMemberLogDto);

    /**
     * 获取日志详情
     * @param logId 日志id
     * @return 返回值
     */
    LogMemberLogVo getLogDetail(String logId);

    /**
     * 点击日志接收人出现的列表--接收范围
     * @param logId 日志id
     * @return 返回值
     */
    ReceiveRangeVo getReceiveRange(String logId);

    /**
     * 点击日志接收人出现的列表--已读
     * @param logId 日志id
     * @return 返回值
     */
    List<LogMemberAssociation> getReadList(String logId);

    /**
     * 点击日志接收人出现的列表--未读
     * @param logId 日志id
     * @return 返回值
     */
    List<LogMemberAssociation> getUnReadList(String logId);

    /**
     * 获取日志点赞列表
     * @param logId 日志id
     * @return 返回值
     */
    List<LogMemberAssociation> getLikeList(String logId);

    /**
     * 修改日志
     * @param logMemberLogDto 日志信息
     * @return 返回值
     */
    void updateLog(LogMemberLogDto logMemberLogDto);

    List<LogTemplateVo>  getTemplateNameList();

    /**
     * 删除指定日志
     * @param logId 日志id
     * @return 状态
     */
    Integer deleteLog(String logId);

    /**
     * 给工作日志相关人员发im消息
     * @param dto
     */
    void agentAlert(LogAgentAlertDto dto);
}
