PlotDirector/PlotLine/Models/WordCompanionPresenceModels.cs

45 lines
1.5 KiB
C#

namespace PlotLine.Models;
public static class WordCompanionPresenceStatuses
{
public const string Connecting = "Connecting";
public const string Connected = "Connected";
public const string Offline = "Offline";
}
public sealed class WordCompanionPresenceRegistration
{
public int? UserID { get; init; }
public string? CompanionVersion { get; init; }
public string? MachineName { get; init; }
public bool DocumentOpen { get; init; }
public string? CurrentDocumentName { get; init; }
public int? LinkedProjectID { get; init; }
public int? LinkedBookID { get; init; }
}
public sealed class WordCompanionPresenceHeartbeat
{
public string? CompanionVersion { get; init; }
public string? MachineName { get; init; }
public bool DocumentOpen { get; init; }
public string? CurrentDocumentName { get; init; }
public int? LinkedProjectID { get; init; }
public int? LinkedBookID { get; init; }
}
public sealed class WordCompanionPresenceStatus
{
public int UserID { get; init; }
public bool IsConnected { get; init; }
public string Status { get; init; } = WordCompanionPresenceStatuses.Offline;
public string? CompanionVersion { get; init; }
public string? MachineName { get; init; }
public bool DocumentOpen { get; init; }
public string? CurrentDocumentName { get; init; }
public int? LinkedProjectID { get; init; }
public int? LinkedBookID { get; init; }
public DateTime? ConnectedUtc { get; init; }
public DateTime? LastHeartbeatUtc { get; init; }
}