package com.ssyf.module.robot.service;

import com.github.pagehelper.PageInfo;
import com.ssyf.module.robot.domain.entity.RRobotAccount;
import com.ssyf.module.robot.domain.entity.RRobotRunningInfo;
import com.ssyf.module.robot.domain.query.RRobotRunningInfoQuery;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author ELSA
* @description 针对表【r_robot_running_info(机器人运行信息表)】的数据库操作Service
* @createDate 2025-12-12 10:19:24
*/
public interface RRobotRunningInfoService extends IService<RRobotRunningInfo> {

    /**
     * 新增机器人运行信息
     * @param query 查询参数
     * @return 新增的机器人运行信息
     */
    RRobotRunningInfo addOne(RRobotRunningInfoQuery query);

    /**
     * 根据uuid删除机器人运行信息
     * @param uid uuid
     */
    void removeByUid(String uid);

    /**
     * 批量删除机器人运行信息
     * @param uids uuid列表
     */
    void removeBatchByUids(List<String> uids);

    /**
     * 根据uuid更新机器人运行信息
     * @param uid uuid
     * @param query 查询参数
     */
    void updateByUid(String uid, RRobotRunningInfoQuery query);

    /**
     * 根据uuid查询单个机器人运行信息
     * @param uid uuid
     * @return 机器人运行信息
     */
    RRobotRunningInfo getOneByUid(String uid);

    /**
     * 分页查询机器人运行信息
     * @param query 查询参数
     * @return 分页结果
     */
    PageInfo<RRobotRunningInfo> getPage(RRobotRunningInfoQuery query);

    /**
     * 查询机器人运行信息列表
     * @param query 查询参数
     * @return 列表结果
     */
    List<RRobotRunningInfo> getList(RRobotRunningInfoQuery query);

    /**
     * 检查机器人运行信息是否存在并返回
     * @param uid uuid
     * @return 机器人运行信息
     */
    RRobotRunningInfo checkedExistAndGet(String uid);

    /**
     * 统计机器人运行信息数量
     * @param query 查询参数
     * @return 数量
     */
    Integer countBy(RRobotRunningInfoQuery query);

    RRobotRunningInfo getOrCreated(RRobotAccount robotAccount);

    RRobotRunningInfo getOneByRobotUuid(String uuid);
}
