using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using OASystem.Infrastructure.Repositories.CRM;

namespace OASystem.API.Controllers
{
    /// <summary>
    /// 签证客户资料相关
    /// </summary>
    [Route("api/[controller]/[action]")]
    //[ApiController]
    public class CRMController : ControllerBase
    {
        private readonly VisaDeleClientCompanyRepository _clientCompanyRepository;
        private readonly VisaDeleClientRepository _clientRepository;

        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="clientCompanyRepository"></param>
        /// <param name="clientRepository"></param>
        public CRMController(VisaDeleClientCompanyRepository clientCompanyRepository, VisaDeleClientRepository clientRepository)
        {
            this._clientCompanyRepository = clientCompanyRepository;
            this._clientRepository = clientRepository;
        }

        /// <summary>
        /// 获取签证客户公司列表
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        [HttpPost]
        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
        public async Task<IActionResult> GetClientCompanyList(DtoBase dto)
        { 
            var clientCompanyData = await  _clientCompanyRepository.GetCrm_ClientCompanyList(dto);

            if (clientCompanyData.Code != 0)
            {
                return Ok(JsonView(false, clientCompanyData.Msg == null ? "操作失败" : clientCompanyData.Msg));
            }

            return Ok(JsonView(clientCompanyData.Data, clientCompanyData.Data.Count));
        }

        /// <summary>
        /// 获取签证客户列表
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        [HttpPost]
        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
        public async Task<IActionResult> GetClientList(DtoBase dto)
        {
            var clientData = await _clientRepository.GetCrmList(dto);

            if (clientData.Code != 0)
            {
                return Ok(JsonView(false, clientData.Msg == null ? "操作失败" : clientData.Msg));
            }

            return Ok(JsonView(clientData.Data, clientData.Data.Count));
        }

    }
}