136 lines
3.3 KiB
C#
136 lines
3.3 KiB
C#
namespace ChessCubing.App.Models.Social;
|
|
|
|
public sealed class SocialOverviewResponse
|
|
{
|
|
public SocialFriendResponse[] Friends { get; init; } = [];
|
|
|
|
public SocialInvitationResponse[] ReceivedInvitations { get; init; } = [];
|
|
|
|
public SocialInvitationResponse[] SentInvitations { get; init; } = [];
|
|
}
|
|
|
|
public sealed class SocialFriendResponse
|
|
{
|
|
public string Subject { get; init; } = string.Empty;
|
|
|
|
public string Username { get; init; } = string.Empty;
|
|
|
|
public string DisplayName { get; init; } = string.Empty;
|
|
|
|
public string? Email { get; init; }
|
|
|
|
public string? Club { get; init; }
|
|
|
|
public string? City { get; init; }
|
|
|
|
public bool IsOnline { get; init; }
|
|
}
|
|
|
|
public sealed class SocialInvitationResponse
|
|
{
|
|
public long InvitationId { get; init; }
|
|
|
|
public string Subject { get; init; } = string.Empty;
|
|
|
|
public string Username { get; init; } = string.Empty;
|
|
|
|
public string DisplayName { get; init; } = string.Empty;
|
|
|
|
public string? Email { get; init; }
|
|
|
|
public bool IsOnline { get; init; }
|
|
|
|
public DateTime CreatedUtc { get; init; }
|
|
}
|
|
|
|
public sealed class SocialSearchUserResponse
|
|
{
|
|
public string Subject { get; init; } = string.Empty;
|
|
|
|
public string Username { get; init; } = string.Empty;
|
|
|
|
public string DisplayName { get; init; } = string.Empty;
|
|
|
|
public string? Email { get; init; }
|
|
|
|
public string? Club { get; init; }
|
|
|
|
public string? City { get; init; }
|
|
|
|
public bool IsOnline { get; init; }
|
|
|
|
public bool IsFriend { get; init; }
|
|
|
|
public bool HasSentInvitation { get; init; }
|
|
|
|
public bool HasReceivedInvitation { get; init; }
|
|
}
|
|
|
|
public sealed class SendFriendInvitationRequest
|
|
{
|
|
public string TargetSubject { get; init; } = string.Empty;
|
|
}
|
|
|
|
public sealed class PresenceSnapshotMessage
|
|
{
|
|
public string[] OnlineSubjects { get; init; } = [];
|
|
}
|
|
|
|
public sealed class PresenceChangedMessage
|
|
{
|
|
public string Subject { get; init; } = string.Empty;
|
|
|
|
public bool IsOnline { get; init; }
|
|
}
|
|
|
|
public sealed class PlayInviteMessage
|
|
{
|
|
public string InviteId { get; init; } = string.Empty;
|
|
|
|
public string SenderSubject { get; init; } = string.Empty;
|
|
|
|
public string SenderUsername { get; init; } = string.Empty;
|
|
|
|
public string SenderDisplayName { get; init; } = string.Empty;
|
|
|
|
public string RecipientSubject { get; init; } = string.Empty;
|
|
|
|
public string RecipientUsername { get; init; } = string.Empty;
|
|
|
|
public string RecipientDisplayName { get; init; } = string.Empty;
|
|
|
|
public string RecipientColor { get; init; } = string.Empty;
|
|
|
|
public DateTime CreatedUtc { get; init; }
|
|
|
|
public DateTime ExpiresUtc { get; init; }
|
|
}
|
|
|
|
public sealed class PlayInviteClosedMessage
|
|
{
|
|
public string InviteId { get; init; } = string.Empty;
|
|
|
|
public string Reason { get; init; } = string.Empty;
|
|
|
|
public string Message { get; init; } = string.Empty;
|
|
}
|
|
|
|
public sealed class PlaySessionResponse
|
|
{
|
|
public string SessionId { get; init; } = string.Empty;
|
|
|
|
public string WhiteSubject { get; init; } = string.Empty;
|
|
|
|
public string WhiteName { get; init; } = string.Empty;
|
|
|
|
public string BlackSubject { get; init; } = string.Empty;
|
|
|
|
public string BlackName { get; init; } = string.Empty;
|
|
|
|
public string InitiatorSubject { get; init; } = string.Empty;
|
|
|
|
public string RecipientSubject { get; init; } = string.Empty;
|
|
|
|
public DateTime ConfirmedUtc { get; init; }
|
|
}
|