using SharedKernel.Results; using Application.Abstractions.Data; using MediatR; using Microsoft.EntityFrameworkCore; namespace Application.Features.Auth.GetProfile; internal sealed class Handler(IAppDbContext db) : IRequestHandler> { public async Task> Handle(Query request, CancellationToken ct) { var member = await db.Member .AsNoTracking() .Include(m => m.MemberGrade) .Where(m => m.ID == request.MemberID) .Select(m => new Response( m.ID, m.SID, m.Email, m.Name, m.Thumb, m.Summary, m.MemberGrade != null ? m.MemberGrade.KorName : null, m.IsEmailVerified, m.IsCreator, m.CreatedAt)) .FirstOrDefaultAsync(ct); if (member is null) { return Result.Failure(Error.NotFound("Auth.MemberNotFound", "회원 정보를 찾을 수 없습니다.")); } return Result.Success(member); } }