using System.Security.Claims; using Application.Abstractions.Messaging; using Web.Api.Common; using Web.Api.Extensions; namespace Web.Api.Endpoints.Note; /// 쪽지 수신자 검색 — 본인이 팔로우한 회원/채널만 결과 노출 internal sealed class SearchRecipient : IEndpoint { public void MapEndpoint(IEndpointRouteBuilder app) { app.MapGet("api/note/search-recipient", async ( string? q, int? offset, int? limit, ClaimsPrincipal user, ISender sender, CancellationToken ct ) => { var memberID = user.GetRequiredMemberID(); var query = new Application.Features.Api.Note.SearchRecipient.Query( memberID, q ?? string.Empty, offset ?? 0, limit ?? 20 ); var data = await sender.Send(query, ct); return ApiResponse.Ok(data); }) .WithTags("Note") .RequireAuthorization(); } }