using ChatServerSpace.Models; using ChatServerSpace.Services; using Microsoft.AspNetCore.Mvc; namespace ChatServerSpace.Controllers { [ApiController] [Route("api/[controller]")] public class ChatController : ControllerBase { private readonly IChatService _chatService; private readonly ILogger _logger; public ChatController(IChatService chatService, ILogger logger) { _chatService = chatService; _logger = logger; } [HttpPost] public async Task> Chat([FromBody] ChatRequest request) { if (string.IsNullOrWhiteSpace(request.SessionId)) { return BadRequest("SessionId is required"); } if (string.IsNullOrWhiteSpace(request.Message)) { return BadRequest("Message is required"); } try { var response = await _chatService.ProcessMessageAsync(request); return Ok(response); } catch (Exception ex) { _logger.LogError(ex, "Error processing chat message"); return StatusCode(500, "An error occurred while processing your message"); } } } }