using Application.Abstractions.Data; using Application.Abstractions.Messaging; using Microsoft.EntityFrameworkCore; namespace Application.Features.Admin.Channel.ExpConfig.Get; internal sealed class Handler(IAppDbContext db) : IQueryHandler { public async Task Handle(Query request, CancellationToken ct) { var entity = await db.Config.AsNoTracking() .OrderByDescending(x => x.ID) .FirstOrDefaultAsync(ct); var cfg = entity?.ChatExp ?? new Domain.Entities.Common.ChatExpConfig(); return new Response( cfg.ChatXpPerMessage, cfg.DonationXpPerAmount, cfg.ChatXpSessionLimit, cfg.MinContentLength, cfg.RateLimitSec, cfg.LeaderboardSize, cfg.CrownTopN, cfg.UxShowLeaderboard, cfg.UxShowMyXpBadge ); } }