using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Purrse.Core.DTOs; using Purrse.Core.Interfaces.Services; using System.Security.Claims; namespace Purrse.Api.Controllers; [Authorize] [ApiController] [Route("api/ai-categorization")] public class AiCategorizationController : ControllerBase { private readonly IAiCategorizationService _aiService; private Guid UserId => Guid.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier)!); public AiCategorizationController(IAiCategorizationService aiService) => _aiService = aiService; [HttpGet("settings")] public async Task> GetSettings() => Ok(await _aiService.GetSettingsAsync(UserId)); [HttpPut("settings")] public async Task> UpdateSettings(UpdateAiCategorizationSettingsRequest request) => Ok(await _aiService.UpdateSettingsAsync(UserId, request)); [HttpPost("test-connection")] public async Task> TestConnection() => Ok(await _aiService.TestConnectionAsync(UserId)); [HttpPost("classify")] public async Task> ClassifyUncategorized(ClassifyUncategorizedRequest request) => Ok(await _aiService.ClassifyUncategorizedAsync(UserId, request)); }