using langguanApi.Model;
using langguanApi.Model.Dto;
using langguanApi.Model.Dto.SystemConfigurationDto;
using langguanApi.Service;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace langguanApi.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class UserController : ControllerBase
    {
        private UserService _userService;
        public UserController(UserService userService)
        {
            _userService = userService;
        }
        /// 
        /// 登陆
        /// 
        /// 
        /// 
        [HttpPost("login")]
        public async Task Login([FromBody] UserLogin user)
        {
            var result = _userService.login(user.Username, user.Password);
            if (result != null)
            {
                return Ok(result);
            }
            else
            {
                return BadRequest(result);
            }
        }
        /// 
        /// 注册
        /// 
        /// 
        /// 
        [HttpPost("Add")]
        public async Task Register([FromBody] UserAdd input)
        {
            var result = await _userService.AddUser(input);
            return Ok(result);
        }
        /// 
        /// get user list
        /// 
        /// 
        /// 
        [HttpGet("List")]
        public async Task List([FromQuery] reqpage input)
        {
            var result = await _userService.GetPage(input);
            return Ok(result);
        }
        #region  用户管理相关接口
        /// 
        ///新增用户
        /// 
        /// 
        /// 
        [HttpPost("AddUser")]
        public async Task AddUser([FromBody] UserDto input)
        {
            var result = await _userService.AddUser(input);
            return Ok(result);
        }
        //获取用户列表
        /// 
        /// 获取用户列表
        /// 
        /// 
        /// 
        [HttpGet("GetUserList")]
        public async Task GetUserList([FromQuery] UserQueryDto input)
        {
            var result = await _userService.GetUserList(input);
            return Ok(result);
        }
        //根据用户Id获取用户信息
        /// 
        /// 根据用户Id获取用户信息
        /// 
        /// 
        /// 
        [HttpGet("GetUserById")]
        public async Task GetUserById(string userId)
        {
            var result = await _userService.GetUserById(userId);
            return Ok(result);
        }
        //修改用户信息
        /// 
        /// 修改用户信息
        /// 
        /// 
        /// 
        [HttpPost("UpdateUser")]
        public async Task UpdateUser([FromBody] UserDto input)
        {
            var result = await _userService.UpdateUser(input);
            return Ok(result);
        }
        //删除用户
        /// 
        /// 删除用户
        /// 
        /// 
        /// 
        [HttpPost("DeleteUser")]
        public async Task DeleteUser(string userId)
        {
            var result = await _userService.DeleteUser(userId);
            return Ok(result);
        }
        #endregion
    }
}