using Amazon.Runtime.Internal.Auth;
using langguanApi.Model;
using langguanApi.Model.Dto;
using langguanApi.Service;
using Microsoft.AspNetCore.Mvc;
namespace langguanApi.Controllers
{
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class DeviceController : ControllerBase
    {
        private readonly DeviceService _deviceService;
        /// 
        /// 
        /// 
        /// 
        public DeviceController(DeviceService deviceService)
        {
            _deviceService = deviceService;
        }
        /// 
        /// 列表
        /// 
        /// 
        /// 
        [HttpGet]
        public async Task Getpage([FromQuery] reqpage input)
        {
            var result = await _deviceService.GetPage(input);
            return Ok(result);
        }
        /// 
        ///新加
        /// 
        /// 
        /// 
        [HttpPost]
        public async Task Addd([FromBody] DeviceAddDto input)
        {
            var result = await _deviceService.Add(input);
            return Ok(result);
        }
        /// 
        /// 删除
        /// 
        /// 
        /// 
        [HttpDelete]
        public async Task Remove(IEnumerable ids)
        {
            var result = await _deviceService.remove(ids);
            return Ok(result);
        }
        /// 
        /// 更新
        /// 
        /// 
        /// 
        [HttpPut]
        public async Task update([FromBody] DeviceUpdateDto input)
        {
            var result = await _deviceService.update(input);
            return Ok(result);
        }
        /// 
        /// 取单条
        /// 
        /// 
        /// 
        [HttpGet]
        public async Task FindOne(string Id)
        {
            var result = await _deviceService.FindeById(Id);
            return Ok(new ApiResult() { code = 0, data = result });
        }
        /// 
        /// 取设备及数据
        /// 
        /// 
        /// 
        [HttpGet]
        public async Task GetDeviceAndData(string Id)
        {
            var result = await _deviceService.GetDeviceAndData(Id);
            return Ok(result);
        }
        /// 
        /// 取设备类型集合
        /// 
        /// 
        [HttpGet]
        public async Task GetDeviceTypes()
        {
            var result = await _deviceService.GetDeviceTypes();
            return Ok(new ApiResult() { code = 0, data = result });
        }
        /// 
        /// 按设备类型取设备列表 //1 voc,2 cems,3,tsp,4 video
        /// 
        /// key
        /// 
        /// 
        /// 
        /// 
        [HttpGet]
        public async Task GetListByDeviceType(string key = "", int pageSize = 10, int current = 1, int deviceType = 1)
        {
            var result = await _deviceService.GetDeviceListByTypes(key, pageSize, current, deviceType);
            return Ok(result);
        }
    }
}