package com.zhentao.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhentao.entity.AdminUser;
import com.zhentao.entity.Role;

import java.util.List;

/**
 * 用户服务接口
 */
public interface UserService {
    
    /**
     * 注册新用户（仅超级管理员可用）
     */
    AdminUser register(AdminUser user, Integer roleId);
    
    /**
     * 分页查询用户列表
     */
    Page<AdminUser> getUserList(Integer pageNum, Integer pageSize, String keyword);
    
    /**
     * 根据ID查询用户
     */
    AdminUser getUserById(Integer userId);
    
    /**
     * 更新用户信息
     */
    boolean updateUser(AdminUser user);
    
    /**
     * 删除用户
     */
    boolean deleteUser(Integer userId);
    
    /**
     * 根据用户ID查询角色列表
     */
    List<Role> getUserRoles(Integer userId);
    
    /**
     * 为用户分配角色
     */
    boolean assignRoles(Integer userId, List<Integer> roleIds);
    
    /**
     * 检查用户是否有某个角色
     */
    boolean hasRole(Integer userId, String roleCode);
    
    /**
     * 检查用户是否是超级管理员
     */
    boolean isSuperAdmin(Integer userId);
}

