package com.ssyf.module.robot.service;

import com.github.pagehelper.PageInfo;
import com.ssyf.module.robot.domain.entity.ChatInfo;
import com.ssyf.module.robot.domain.entity.ChatInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ssyf.module.robot.domain.query.ChatInfoQuery;

import java.util.List;

/**
* @author ELSA
* @description 针对表【chat_info(聊天信息表)】的数据库操作Service
* @createDate 2026-02-26 13:35:11
*/
public interface ChatInfoService extends IService<ChatInfo> {
    /**
     * 新增一条数据
     *
     * @param query 查询对象
     * @return 实体对象
     */
    ChatInfo addOne(ChatInfoQuery query);

    /**
     * 根据UUID删除一条数据
     *
     * @param uuid UUID
     */
    void removeByUid(String uuid);

    /**
     * 根据UUID列表批量删除数据
     *
     * @param uuids UUID列表
     */
    void removeBatchByUids(List<String> uuids);

    /**
     * 根据UUID更新一条数据
     *
     * @param uuid UUID
     * @param query 查询对象
     */
    void updateByUid(String uuid, ChatInfoQuery query);

    /**
     * 根据UUID查询一条数据
     *
     * @param uuid UUID
     * @return 实体对象
     */
    ChatInfo getOneByUid(String uuid);

    /**
     * 分页查询数据
     *
     * @param query 查询条件
     * @return 分页结果
     */
    PageInfo<ChatInfo> getPage(ChatInfoQuery query);

    /**
     * 查询列表数据
     *
     * @param query 查询条件
     * @return 列表结果
     */
    List<ChatInfo> getList(ChatInfoQuery query);

    /**
     * 检查数据是否存在并返回实体
     *
     * @param uuid UUID
     * @return 实体对象
     */
    ChatInfo checkedExistAndGet(String uuid);

    /**
     * 根据条件统计数量
     *
     * @param query 查询条件
     * @return 数量
     */
    Integer countBy(ChatInfoQuery query);
}
