| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- namespace Infrastructure.StockData;
- /// <summary>수집기가 사용하는 외부 API 키 식별자 (DB Config.DataCollection 매핑).</summary>
- internal enum CollectorKey
- {
- DataGoKr,
- Krx,
- OpenDart,
- KoreaEximExchange,
- KoreaEximLoanRate,
- KoreaEximIntlRate,
- Seibro,
- Kosis
- }
- /// <summary>수집기 활성화 플래그 식별자 (DB Config.DataCollection 매핑). appsettings *Sync/Enabled 와 1:1.</summary>
- internal enum CollectorFlag
- {
- StockDataMaster,
- StockDataDailyPrice,
- KrxIndex,
- KrxBondIndex,
- KrxStock,
- KrxEtp,
- KrxWarrant,
- KrxBond,
- KrxDerivative,
- KrxCommodity,
- KrxEsg,
- OpenDartDisclosure,
- KoreaEximMacro,
- Kosis,
- WorldIndex,
- MarketQuote,
- SeibroIssuer,
- SeibroDividend,
- SeibroSupply,
- SeibroCorpAction,
- SeibroBond,
- SeibroDeriv,
- SeibroForeign
- }
- /// <summary>
- /// 수집기 활성화 여부·API 키를 DB Config(DataCollection)에서 런타임 조회하는 접근자.
- /// Admin 에서 재배포 없이 on/off·키 교체가 가능하도록 각 수집기 RunOnceAsync 상단에서 사용한다.
- /// 키는 AES-GCM 복호화(EncryptedConfigValue), 플래그는 DB 가 단일 권위(Config 행 없으면 전부 false).
- /// Scoped — 수집기 run 스코프 당 1 인스턴스, Config 1회 로드 후 캐시.
- /// </summary>
- internal interface ICollectorSettingsProvider
- {
- /// <summary>해당 수집기 활성화 여부. Config 행이 없으면 false.</summary>
- Task<bool> IsEnabledAsync(CollectorFlag flag, CancellationToken ct);
- /// <summary>해당 키의 복호화 평문. 미설정이면 null (호출측이 appsettings 폴백).</summary>
- Task<string?> GetKeyAsync(CollectorKey key, CancellationToken ct);
- }
|