using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using SeaHaven.Services.Interfaces; namespace Api.SeaHavenIndustries.Controllers { [ApiController] [Authorize(Roles = "Admin")] [Route("api/admin/work-order-reconciliation")] public sealed class WorkOrderReconciliationController : ControllerBase { private readonly IWorkOrderReconciliationService _service; public WorkOrderReconciliationController(IWorkOrderReconciliationService service) { _service = service; } [HttpPost] public async Task Trigger(CancellationToken cancellationToken) { var result = await _service.TriggerAsync(User, "admin", cancellationToken); if (!result.Queued && result.RunId == Guid.Empty) return StatusCode(StatusCodes.Status503ServiceUnavailable, new { error = "disabled" }); return Accepted(new { run_id = result.RunId, queued = result.Queued }); } [HttpGet] public async Task Status(CancellationToken cancellationToken) => Ok(await _service.GetStatusAsync(User, cancellationToken)); } }