IYouTubeLiveStateStore.cs 854 B

123456789101112131415161718192021
  1. namespace Application.Abstractions.YouTube;
  2. /// <summary>
  3. /// 채널별 라이브 방송 상태 저장소 (Redis 기반)
  4. /// PubSub 알림 → videos.list 확인 후 상태 저장
  5. /// 알림 없으면 = 라이브 아님 (할당량 절약)
  6. /// </summary>
  7. public interface IYouTubeLiveStateStore
  8. {
  9. /// <summary>라이브 상태 저장 (PubSub 알림 처리 시)</summary>
  10. Task SetLiveAsync(string channelId, YouTubeLiveStreamInfo liveInfo);
  11. /// <summary>라이브 종료 시 상태 제거</summary>
  12. Task ClearLiveAsync(string channelId);
  13. /// <summary>채널의 현재 라이브 상태 조회 (null = 라이브 아님)</summary>
  14. Task<YouTubeLiveStreamInfo?> GetLiveAsync(string channelId);
  15. /// <summary>현재 라이브 중인 모든 채널 조회</summary>
  16. Task<IReadOnlyList<YouTubeLiveStreamInfo>> GetAllLiveAsync();
  17. }