feat(ai): DB-only config + runtime provider selection via factory

This commit is contained in:
Chris Chen
2026-06-25 13:23:13 -07:00
parent ece9938bfb
commit 120240ad0c
8 changed files with 132 additions and 57 deletions
@@ -11,8 +11,8 @@ namespace ROLAC.API.Controllers;
// member filing a reimbursement can reach. The endpoint only reads the category catalog.
public class ExpenseAiController : ControllerBase
{
private readonly IExpenseAiService _svc;
public ExpenseAiController(IExpenseAiService svc) => _svc = svc;
private readonly IExpenseAiServiceFactory _factory;
public ExpenseAiController(IExpenseAiServiceFactory factory) => _factory = factory;
[HttpPost("assist")]
public async Task<IActionResult> Assist([FromBody] ExpenseAiAssistRequest request, CancellationToken ct)
@@ -20,7 +20,8 @@ public class ExpenseAiController : ControllerBase
if (string.IsNullOrWhiteSpace(request.Text))
return BadRequest("Text is required.");
var suggestion = await _svc.SuggestAsync(request.Text, request.Amount, ct);
var svc = await _factory.ResolveAsync(ct);
var suggestion = await svc.SuggestAsync(request.Text, request.Amount, ct);
return Ok(suggestion);
}
}