namespace Application.Abstractions.Cache; public static class CacheKeys { public const string Config = "config"; public const string FaqCategoryActive = "faq:category:active"; public const string PopupPositionActive = "popup:position:active"; public static string FaqItemByCode(string code) => $"faq:item:{code}"; public static string PopupByCode(string code) => $"popup:{code}"; public static string BannerByCode(string code) => $"banner:{code}"; public static string DocumentByCode(string code) => $"document:{code}"; public static string BoardMeta(int boardID) => $"board:meta:{boardID}"; public const string CryptoCategoryActive = "crypto:category:active"; public static string CoinBySymbol(string symbol) => $"crypto:coin:{symbol.ToLower()}"; // Crypto Ticker public const string CryptoTickers = "crypto:tickers"; public static string CryptoTicker(string symbol) => $"crypto:ticker:{symbol.ToLower()}"; public static string CryptoCandle(string symbol, string type) => $"crypto:candle:{symbol.ToLower()}:{type}"; // Crypto REST (초기 로딩용) public const string CryptoMarkets = "crypto:markets"; public static string CryptoTickerDetail(string symbol) => $"crypto:ticker:detail:{symbol.ToLower()}"; public static string CryptoTrades(string symbol) => $"crypto:trades:{symbol.ToLower()}"; public static string CryptoOrderbook(string symbol) => $"crypto:orderbook:{symbol.ToLower()}"; // Crypto WebSocket Live (실시간용) public static string CryptoCandleLive(string symbol, string interval) => $"crypto:candle:live:{symbol.ToLower()}:{interval}"; public static string CryptoTradeLive(string symbol) => $"crypto:trade:live:{symbol.ToLower()}"; public static string CryptoOrderbookLive(string symbol) => $"crypto:orderbook:live:{symbol.ToLower()}"; }