using Microsoft.AspNetCore.Mvc; using uWine.Core.Domain.Entities; using uWine.Core.Infrastructure.Services; namespace uWine.Api.Controllers { [ApiController] [Route("/[controller]")] public class AreaController : Controller { private readonly IConfiguration _configuration; private readonly CoordinatesService _coordinatesService; public AreaController(IConfiguration configuration, CoordinatesService coordinatesService) { _configuration = configuration; _coordinatesService = coordinatesService; } [HttpPost("save-area")] public IActionResult SaveArea([FromBody] Dictionary coordinates, int vineyardId) { if (coordinates == null) return BadRequest("Invalid coordinates"); try { _coordinatesService.SaveArea(vineyardId, coordinates); return Ok(new { status = "Area set successfully" }); } catch (Exception ex) { return StatusCode(500, new { error = ex.Message }); } } [HttpGet("get-area")] [ProducesResponseType(typeof(Dictionary), StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] public IActionResult GetArea(int vineyardId) { try { var area = _coordinatesService.GetArea(vineyardId); if (area == null || area.Count == 0) return NotFound(); return Ok(area); } catch (Exception ex) { return StatusCode(500, new { error = ex.Message }); } } } }