package com.qiaoba.api.system.service;

import com.qiaoba.api.system.entity.SysRole;
import com.qiaoba.api.system.entity.dto.DataScopeDto;
import com.qiaoba.api.system.entity.dto.SysRoleDto;
import com.qiaoba.api.system.entity.param.SysRoleParam;

import java.util.List;

/**
 * 角色对外暴露接口
 *
 * @author ailanyin
 * @version 1.0
 * @since 2023-04-23 20:33:43
 */
public interface SysRoleApiService {

    /**
     * 新增角色
     *
     * @param roleDto roleDto
     * @return > 0 = success
     */
    int insert(SysRoleDto roleDto);

    /**
     * 更新角色
     *
     * @param roleDto roleDto
     * @return > 0 = success
     */
    int updateById(SysRoleDto roleDto);

    /**
     * 查询列表
     *
     * @param param 条件
     * @return 角色列表
     */
    List<SysRole> selectList(SysRoleParam param);

    /**
     * 查询详细
     *
     * @param roleId 角色Id
     * @return 角色信息
     */
    SysRole selectById(String roleId);

    /**
     * 删除角色
     *
     * @param roleId 角色Id
     * @return > 0 = success
     */
    int deleteById(String roleId);

    /**
     * 批量删除
     *
     * @param ids 角色ID列表
     * @return > 0 = success
     */
    int deleteByIds(List<String> ids);

    /**
     * 修改数据权限信息
     *
     * @param dto 角色ID + deptIds
     * @return 结果
     */
    int authDataScope(DataScopeDto dto);

    /**
     * 更改状态
     *
     * @param roleId roleId
     * @param status status
     * @return 结果
     */
    int changeStatus(String roleId, String status);

}
