package com.ssyf.module.robot.service;

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

import java.util.List;
import java.util.Set;

/**
* @author ELSA
* @description 针对表【r_robot_account(机器人账号表)】的数据库操作Service
* @createDate 2025-12-12 10:19:24
*/
public interface RRobotAccountService extends IService<RRobotAccount> {
    /**
     * 创建角色
     * @param query
     * @return
     */
    RRobotAccount addOne(RRobotAccountQuery query);

    /**
     * 删除指定角色
     * @param uid
     */
    void removeByUid(String uid);
    void removeBatchByUids(List<String> uids);
    /**
     * 更新指定角色
     * @param uid
     * @param query
     */
    void updateByUid(String uid, RRobotAccountQuery query);

    /**
     * 获取指定角色
     * @param uid
     * @return
     */
    RRobotAccount getOneByUid(String uid);

    /**
     * 分页获取数据
     * @param query
     * @return
     */
    PageInfo<RRobotAccount> getPage(RRobotAccountQuery query);

    /**
     * 获取数据
     * @param query
     * @return
     */
    List<RRobotAccount> getList(RRobotAccountQuery query);

    RRobotAccount checkedExistAndGet(String uid);

    /**
     * 总数统计
     * @param query
     * @return
     */
    Integer countBy(RRobotAccountQuery query);

    void addBatchByImport(List<RRobotAccount> rRobotAccountList);

    List<RRobotAccount> getEnabledRobotAccountsBy(Set<String> robotUuids, Set<String> robotGroupUuids);

    void isValid(String uid);

    void isValidNot();

    void isValidAll();

    /**
     * 通过导入的方式批量更新机器人账号信息
     * @param rRobotAccountList 要更新的机器人账号列表
     */
    void batchUpdateByImport(List<RRobotAccount> rRobotAccountList);

    void updateByUids(List<String> uids, RRobotAccountQuery query);
}
