package com.op.system.service;

import com.op.system.api.domain.SysUser;
import com.op.system.domain.SysDatasource;

import java.util.List;

/**
 * 工厂数据库Service接口
 *
 * @author sf
 * @date 2023-05-18
 */
public interface ISysDatasourceService
{
    /**
     * 查询工厂数据库
     *
     * @param id 工厂数据库主键
     * @return 工厂数据库
     */
    public SysDatasource selectSysDatasourceById(String id);

    /**
     * 查询工厂数据库列表
     *
     * @param sysDatasource 工厂数据库
     * @return 工厂数据库集合
     */
    public List<SysDatasource> selectSysDatasourceList(SysDatasource sysDatasource);

    /**
     * 新增工厂数据库
     *
     * @param sysDatasource 工厂数据库
     * @return 结果
     */
    public int insertSysDatasource(SysDatasource sysDatasource);

    /**
     * 修改工厂数据库
     *
     * @param sysDatasource 工厂数据库
     * @return 结果
     */
    public int updateSysDatasource(SysDatasource sysDatasource);

    /**
     * 批量删除工厂数据库
     *
     * @param ids 需要删除的工厂数据库主键集合
     * @return 结果
     */
    public int deleteSysDatasourceByIds(String[] ids);

    /**
     * 删除工厂数据库信息
     *
     * @param id 工厂数据库主键
     * @return 结果
     */
    public int deleteSysDatasourceById(String id);

    List<SysDatasource> selectAllocatedList(SysDatasource sysDatasource);

    List<SysUser> selectUnallocatedList(SysUser user);

    void checkRoleDataScope(String datasourceId);

    int insertAuthUsers(String datasourceId, Long[] userIds);

    int deleteAuthUser(SysDatasource sysDatasource);

    int deleteAuthUsers(String datasourceId, Long[] userIds);

    String changeDBStatus(SysDatasource sysDatasource);
}
