using Application.Abstractions.Cache;
using Application.Abstractions.Data;
using Domain.Entities.Common;
using Microsoft.EntityFrameworkCore;
namespace Application.Helpers;
///
/// Config 엔티티 내 ChatExp 그룹 로더. Redis 캐시 → MSSQL 폴백.
/// 관리자 수정 시 CacheKeys.Config 를 무효화하면 자동 갱신됨.
///
public static class ChatExpConfigLoader
{
public static async Task GetAsync(ICacheService cache, IAppDbContext db, CancellationToken ct)
{
// 현재 Config 캐시는 AccountConfig 중심이라 여기서는 DB 폴백 우선 (필요 시 추후 캐시 계층 공유).
var entity = await db.Config.AsNoTracking()
.OrderByDescending(x => x.ID)
.FirstOrDefaultAsync(ct);
return entity?.ChatExp ?? new ChatExpConfig();
}
}