package com.jkcredit.invoice.hub.service.user;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jkcredit.invoice.hub.model.dto.user.UserDto;
import com.jkcredit.invoice.hub.model.dto.userBalance.UserBalanceForMailDto;
import com.jkcredit.invoice.hub.model.po.user.UserPo;
import com.jkcredit.invoice.hub.model.vo.user.UserVO;

import java.util.List;
import java.util.Optional;

public interface UserService {
    Optional<UserPo> getUserByUserName(String userName);

    UserVO getUserById(Long id);

    IPage<UserVO> getAllUsers(Page page, UserDto userDto);

    void saveUser(UserDto userDto);

    Boolean updateUser(UserDto userDto);

    void deleteUser(Long id);

    UserPo getUserByAppKey(String appKey);

    UserDto getUser(Long id);

    List<UserBalanceForMailDto> getUserBalance();
}
