package com.ruoyi.system.service;

import com.ruoyi.system.domain.SocketMessage;
import com.ruoyi.system.domain.vo.SocketMessageVo;
import com.ruoyi.system.domain.bo.SocketMessageBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import javax.validation.constraints.NotNull;
import java.util.Collection;
import java.util.List;

/**
 * 对话信息Service接口
 *
 * @author hdka
 * @date 2024-10-27
 */
public interface ISocketMessageService {

    /**
     * 查询对话信息
     */
    SocketMessageVo queryById(Long id);

    /**
     * 查询对话信息列表
     */
    TableDataInfo<SocketMessageVo> queryPageList(SocketMessageBo bo, PageQuery pageQuery);

    /**
     * 查询对话信息列表
     */
    List<SocketMessageVo> queryList(SocketMessageBo bo);

    /**
     * 新增对话信息
     */
    Boolean insertByBo(SocketMessageBo bo);

    /**
     * 修改对话信息
     */
    Boolean updateByBo(SocketMessageBo bo);

    /**
     * 校验并批量删除对话信息信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 根据contactId查询对应的List
     */
    List<SocketMessageVo> queryByContactId(@NotNull(message = "主键不能为空") Long contactId);
}
