Response.cs 891 B

1234567891011121314151617
  1. namespace Application.Features.Api.Crew.GetCrewMembers;
  2. public sealed record Response(IReadOnlyList<CrewMemberItem> List);
  3. public sealed record CrewMemberItem(
  4. int ID, int MemberID, int? ChannelID, string Nickname, string? Role,
  5. int SortOrder, bool IsActive, DateTime JoinedAt,
  6. string? Thumb, string? ChannelName,
  7. /// <summary>채널 썸네일 (YouTube 캐시 우선, DB Channel.ThumbnailUrl fallback). 우선순위: ChannelThumb → Thumb → 기본 아이콘</summary>
  8. string? ChannelThumb,
  9. /// <summary>"Accepted" | "Pending" | "Declined" | "Expired" — Pending/Declined/Expired 는 invitation only (CrewMember 없음)</summary>
  10. string InviteStatus,
  11. /// <summary>Pending 상태일 때만 값 존재 (24시간 카운트다운용)</summary>
  12. DateTime? ExpiresAt,
  13. /// <summary>SignalR AppHub 접속 여부 (실시간)</summary>
  14. bool IsOnline
  15. );