using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Tnsu.ApprovalRoute.Api.Auth;
using Tnsu.ApprovalRoute.Api.Common;
using Tnsu.ApprovalRoute.Application.Reminders;
namespace Tnsu.ApprovalRoute.Api.Controllers;
///
/// Один вид напоминаний по выбору вызывающей стороны (см. ReminderFeed) — без
/// параметра feed отдаёт просроченные шаги согласования и исполнения, как и до
/// появления ProbationEnding.
///
/// Политика — та же AnyAuth, что и у остальных контроллеров: эндпоинт вызывает
/// Power Automate по расписанию (токен приложения), но и из админки его удобно
/// открыть под пользователем, чтобы посмотреть, что сервис реально отдаёт.
///
[ApiController]
[Authorize(Policy = AuthPolicies.Any)]
[Route("api/reminders")]
[Produces("application/json")]
public sealed class RemindersController(ReminderService service) : ControllerBase
{
[HttpGet]
[ProducesResponseType(typeof(ApiResponse>), StatusCodes.Status200OK)]
public async Task List(
[FromQuery] ReminderFeed feed = ReminderFeed.ApprovalOverdue, CancellationToken ct = default) =>
(await service.GetRemindersAsync(feed, ct)).ToActionResult();
}