using System; using MediatR; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using TakeoutSaaS.Application.App.Stores.Dto; using TakeoutSaaS.Application.App.Stores.Queries; using TakeoutSaaS.Shared.Abstractions.Results; using TakeoutSaaS.Shared.Web.Api; namespace TakeoutSaaS.MiniApi.Controllers; /// /// 小程序端自提档期查询。 /// [ApiVersion("1.0")] [Authorize] [Route("api/mini/v{version:apiVersion}/stores/{storeId:long}/pickup-slots")] public sealed class PickupSlotsController(IMediator mediator) : BaseApiController { /// /// 获取指定日期可用档期。 /// [HttpGet] [ProducesResponseType(typeof(ApiResponse>), StatusCodes.Status200OK)] public async Task>> GetSlots(long storeId, [FromQuery] DateTime date, CancellationToken cancellationToken) { var result = await mediator.Send(new GetAvailablePickupSlotsQuery { StoreId = storeId, Date = date }, cancellationToken); return ApiResponse>.Ok(result); } }