package com.om.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.om.entity.dto.AppBaseDTO;
import com.om.entity.dto.AppUserUpdatePwdDTO;
import com.om.entity.dto.UserLoginDTO;
import com.om.entity.dto.UserQueryPageDTO;
import com.om.entity.po.Device;
import com.om.entity.po.User;
import com.om.entity.po.VciInfo;
import com.om.entity.vo.AppBindVO;
import com.om.entity.vo.UserAddVO;
import com.om.entity.vo.UserQueryPageVO;
import com.om.entity.vo.UserVO;
import com.om.utils.Result;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * <p>
 * 应用用户信息表 服务类
 * </p>
 *
 * @author bmmx
 * @since 2024-01-29
 */
public interface IUserService extends IService<User> {

    Result login(UserLoginDTO dto);

    Result add(UserAddVO user);

    Result delete(Integer id);

    Result<UserVO> getByUserId(Integer userId);

    Result getListByUserId(Integer userId);

    Result<UserQueryPageVO> getPageList(UserQueryPageDTO dto);

    Result relieve();

    Result updateState(Integer id, Integer state);

    Result updateType(Integer id, Integer type);

    Result updateUserInfo(UserAddVO user);

    Result password(AppUserUpdatePwdDTO dto);

    Result register(UserLoginDTO userLoginDTO);

    Result updateUserName(AppBaseDTO username);

    Result logout();

    Result updateVci(AppBaseDTO dto);

    Result bindingVci(AppBindVO bindVO);

    Result<List<VciInfo>> getVciByUserId(Integer userId);

    Result relieveVci(AppBindVO bindVO);

    Result updateDefaultVci(Integer userId,Integer vciId, Integer status);

    Result resetPassword(Integer id);

    List<User> listByDevice();

}
