using AutoMapper; using AIAssistantModule.Core.Dtos.Admin; using AIAssistantModule.Core.Interfaces.API; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using System.Diagnostics; namespace AIAssistantModule.API.Controllers.Public { /// /// AIAssistant Controller /// [Route("rest/v{version:apiVersion}/aiassistants")] [Produces("application/json")] [ApiController] public class AIAssistantController : Controller { private readonly IMapper _mapper; private ILogger _logger; private readonly IAIAssistantService _aiassistantService; /// /// Constructor /// /// /// /// public AIAssistantController( ILogger logger, IMapper mapper, IAIAssistantService aiassistantService) { _mapper = mapper; _logger = logger; _aiassistantService = aiassistantService; } /// /// Prompt /// /// /// [HttpPost("generate")] [ProducesResponseType(StatusCodes.Status200OK)] public async Task GetAIAssistants([FromBody] AIAssistantRequestDto request) { _logger.LogInformation("Start generating code"); var stopwatch = Stopwatch.StartNew(); await _aiassistantService.GenerateCodeAsync(request); stopwatch.Stop(); _logger.LogInformation($"Getting aiassistants done in {stopwatch.ElapsedMilliseconds}"); return Ok(); } } }