package com.innovation.platform.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.innovation.platform.controller.UserController.CreateUserRequest;
import com.innovation.platform.controller.UserController.UpdateProfileRequest;
import com.innovation.platform.controller.UserController.UpdateUserRequest;
import com.innovation.platform.dto.LoginRequest;
import com.innovation.platform.dto.LoginResponse;
import com.innovation.platform.dto.RegisterRequest;
import com.innovation.platform.entity.SysUser;

import java.util.List;

/**
 * 用户服务接口
 */
public interface SysUserService {
    
    /**
     * 用户登录
     */
    LoginResponse login(LoginRequest request);
    
    /**
     * 用户注册
     */
    void register(RegisterRequest request);
    
    /**
     * 用户登出
     */
    void logout();
    
    /**
     * 根据用户名查询用户
     */
    SysUser getByUsername(String username);
    
    /**
     * 根据 ID 查询用户
     */
    SysUser getById(Long id);
    
    /**
     * 获取用户列表（分页）
     */
    Page<SysUser> getUserList(Integer page, Integer size, String keyword, Integer roleType, Integer status);
    
    /**
     * 创建用户
     */
    SysUser createUser(CreateUserRequest request);
    
    /**
     * 更新用户
     */
    SysUser updateUser(Long id, UpdateUserRequest request);
    
    /**
     * 删除用户
     */
    void deleteUser(Long id);
    
    /**
     * 获取教师列表
     */
    List<SysUser> getTeacherList();
    
    /**
     * 修改密码
     */
    void changePassword(String oldPassword, String newPassword);
    
    /**
     * 更新个人资料
     */
    SysUser updateProfile(UpdateProfileRequest request);
}
