using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Tnsu.ApprovalRoute.Api.Common;
using Tnsu.ApprovalRoute.Application.TemplateRouteSteps;
namespace Tnsu.ApprovalRoute.Api.Controllers;
///
/// Поиск шагов шаблонов маршрутов НЕ по конкретному маршруту, а сквозной, по всем
/// маршрутам разом — отдельный top-level контроллер, а не вложенный под
/// /api/template-routes/{routeId}/steps (тот же приём, что RequestTypeListsController
/// отдельно от RequestTypesController).
///
[ApiController]
[Authorize]
[Route("api/template-route-steps")]
[Produces("application/json")]
public sealed class TemplateRouteStepSearchController(TemplateRouteStepService service) : ControllerBase
{
/// Шаги ВСЕХ маршрутов с данным ExecutorEmail — для экрана «заменить согласующего everywhere».
[HttpGet]
[ProducesResponseType(typeof(ApiResponse>), StatusCodes.Status200OK)]
public async Task List([FromQuery] string executorEmail, CancellationToken ct) =>
(await service.ListByExecutorEmailAsync(executorEmail, ct)).ToActionResult();
}