package com.cpop.system.business.service;

import com.cpop.system.business.bo.RoleBo;
import com.cpop.system.business.bo.RolePageBo;
import com.cpop.system.business.bo.RoleStatusBo;
import com.cpop.system.business.vo.RolePageVo;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.cpop.system.business.entity.Role;

/**
 * 系统角色表 服务层。
 *
 * @author DB
 * @since 2023-10-19
 */
public interface RoleService extends IService<Role> {

    /**
     * 查询角色分页列表
     * @author DB
     * @since 2023/09/10 16:51
     * @param bo 请求参数
     * @return R<PageVo<SysRolePageVo>>
     */
    Page<RolePageVo> getSysRolePage(RolePageBo bo);

    /**
     * 新增角色
     * @author DB
     * @since  2023/10/12 10:48
     * @param bo 请求参数
     */
    void insertSysRole(RoleBo bo);

    /**
     * 修改角色
     * @author DB
     * @since 2023/09/10 17:45
     * @param bo 请求参数
     */
    void updateSysRole(RoleBo bo);

    /**
     * 删除角色
     * @author DB
     * @since 2024/4/17
     * @param id 主键
     */
    void removeSysRole(String id);

    /**
     * 设置角色状态
     * @param bo 请求参数
     * @author DB
     * @since 2023/5/9 14:13
     **/
    void setSysRoleStatus(RoleStatusBo bo);

}
