using Application.Abstractions.Data; using Application.Abstractions.Messaging; using Microsoft.EntityFrameworkCore; using SharedKernel.Results; namespace Application.Features.Admin.Store.Game.Options; public sealed class Handler(IAppDbContext db) : IQueryHandler> { public async Task> Handle(Query request, CancellationToken ct) { var genres = await db.GameGenre.AsNoTracking() .Where(g => g.IsActive) .OrderBy(g => g.Order).ThenBy(g => g.KorName) .Select(g => new OptionItem(g.ID, g.KorName)) .ToListAsync(ct); var categories = await db.GameCategory.AsNoTracking() .Where(c => c.IsActive) .OrderBy(c => c.Order).ThenBy(c => c.KorName) .Select(c => new OptionItem(c.ID, c.KorName)) .ToListAsync(ct); var languages = await db.GameLanguage.AsNoTracking() .Where(l => l.IsActive) .OrderBy(l => l.Order).ThenBy(l => l.KorName) .Select(l => new OptionItem(l.ID, l.KorName)) .ToListAsync(ct); return new Response(genres, categories, languages); } }