using Application.Abstractions.Messaging; using Application.Abstractions.Data; using SharedKernel.Results; using Microsoft.EntityFrameworkCore; namespace Application.Features.Admin.Member.List.Approve; public sealed class GetHandler(IAppDbContext db) : IQueryHandler> { public async Task> Handle(Query request, CancellationToken ct) { var member = await db.Member.AsNoTracking().Include(x => x.MemberApprove).FirstOrDefaultAsync(x => x.ID == request.MemberID, ct); if (member is null) { return Result.Failure(Error.NotFound("Member.NotFound", "회원을 찾을 수 없습니다.")); } var approve = member.MemberApprove; return Result.Success(new Response { MemberID = member.ID, IsReceiveSMS = approve.IsReceiveSMS, ReceiveSMSConsentAt = approve.ReceiveSMSConsentAt, IsReceiveEmail = approve.IsReceiveEmail, ReceiveEmailConsentAt = approve.ReceiveEmailConsentAt, IsReceiveNote = approve.IsReceiveNote, ReceiveNoteConsentAt = approve.ReceiveNoteConsentAt, IsDisclosureInvest = approve.IsDisclosureInvest, DisclosureInvestConsentAt = approve.DisclosureInvestConsentAt }); } }