package cn.ey.biz.module.system.api.appuser;

import cn.ey.biz.common.pojo.PageResult;
import cn.ey.biz.common.pojo.R;
import cn.ey.biz.module.system.api.appuser.dto.AppUserCreateReqDTO;
import cn.ey.biz.module.system.api.appuser.dto.AppUserDTO;
import cn.ey.biz.module.system.api.appuser.dto.AppUserPageReqDTO;
import cn.ey.biz.module.system.api.appuser.dto.AppUserRespDTO;
import cn.ey.biz.module.system.enums.ApiConstants;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(name = ApiConstants.NAME)
@Api(tags = "RPC 服务 - 应用用户信息管理")
public interface AppUserApi {

    String PREFIX = ApiConstants.PREFIX + "/app-user";

    @PostMapping(PREFIX + "/page")
    @ApiOperation("应用用户信息分页查询")
    R<PageResult<AppUserDTO>> getAppUserPage(@RequestBody AppUserPageReqDTO appUserPageReqDTO);

    @PostMapping(PREFIX + "/create")
    @ApiOperation("创建应用用户信息")
    R<Long> createAppUser(@RequestBody AppUserCreateReqDTO createReqDTO);

    @PostMapping(PREFIX + "/status")
    @ApiOperation("删除应用用户信息")
    R<Boolean> updateAppUserStatus(@RequestBody AppUserCreateReqDTO createReqDTO);

    @GetMapping(PREFIX + "/get")
    @ApiOperation("应用用户信息")
    R<AppUserRespDTO> getAppUser(@RequestParam("id") Long id);

}
