using InboxIntel.Application.Abstractions;
using InboxIntel.Application.DTOs;
using Microsoft.AspNetCore.Mvc;
namespace InboxIntel.Api.Controllers;
public class CleanupController : ApiControllerBase
{
private readonly ICleanupService _cleanup;
public CleanupController(ICleanupService cleanup) => _cleanup = cleanup;
/// Preview which emails a cleanup action would affect. Always call before execute.
[HttpPost("preview")]
public async Task Preview([FromBody] CleanupRequestDto request, CancellationToken ct)
=> Ok(await _cleanup.PreviewAsync(UserId, request, ct));
/// Execute a cleanup action. Destructive actions require Confirmed = true.
[HttpPost("execute")]
public async Task Execute([FromBody] CleanupRequestDto request, CancellationToken ct)
{
var result = await _cleanup.ExecuteAsync(UserId, request, ct);
return result.Succeeded ? Ok(result.Value) : BadRequest(new { error = result.Error });
}
}