package com.yanzuoguang.mq.service;

import com.yanzuoguang.mq.vo.req.MessageLogRemoveReqVo;
import com.yanzuoguang.mq.vo.req.MessageLogReqVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.amqp.core.Message;

/**
 * 消息日志服务
 *
 * @author
 */
public interface MessageLogService {
    /**
     * 写入当前对象
     *
     * @param message 当前消息的内容
     * @return
     */
    @ApiOperation(value = "写入当前对象")
    void logCurrent(Message message);

    /**
     * 删除当前对象
     *
     * @return
     */
    @ApiOperation(value = "写入当前对象")
    void logCurrentRemove();

    /**
     * 记录一个消息已完成
     *
     * @return
     */
    @ApiOperation(value = "记录一个消息已完成,重复时抛出CodeException异常")
    String log();

    /**
     * 记录一个消息已完成
     *
     * @param req 消息的内容
     * @return
     */
    @ApiOperation(value = "记录一个消息已完成,重复时抛出CodeException异常")
    String log(MessageLogReqVo req);

    /**
     * 删除一个消息
     *
     * @param req 消息的内容
     * @return
     */
    @ApiOperation(value = "删除一个消息")
    String logRemove(MessageLogRemoveReqVo req);

    /**
     * 删除历史日志
     *
     * @param day
     */
    @ApiOperation(value = "删除历史日志")
    void logClear(String day);
}