// // Copyright (c) alveus.dev. All rights reserved. Licensed under the MIT License. // using Astral.Core.Attributes.EntityAnnotation; using Astral.Core.Constants; namespace Astral.Core.Entities; /// /// User presence entity. /// [TableMapping("userPresence")] public class UserPresence { /// /// The user id this belongs to. /// [PrimaryKey] [ColumnMapping("id")] public Guid Id { get; set; } /// /// When the entity was created. /// [ColumnMapping("createdAt")] public DateTime CreatedAt { get; set; } /// /// When the entity was last updated. /// [ColumnMapping("updatedAt")] public DateTime UpdatedAt { get; set; } /// /// True if connected. /// [ColumnMapping("connected")] public bool? Connected { get; set; } /// /// Current domain id. /// [ColumnMapping("domainId")] public Guid? DomainId { get; set; } /// /// Current place id. /// [ColumnMapping("placeId")] public Guid? PlaceId { get; set; } /// /// Current network address. /// [ColumnMapping("networkAddress")] public string NetworkAddress { get; set; } /// /// Current network port. /// [ColumnMapping("networkPort")] public int? NetworkPort { get; set; } /// /// Current public key. /// [ColumnMapping("publicKey")] public string PublicKey { get; set; } /// /// Current path. /// [ColumnMapping("path")] public string Path { get; set; } /// /// Last heartbeat received. /// [ColumnMapping("lastHeartbeat")] public DateTime LastHeartbeat { get; set; } /// /// Node id. /// [ColumnMapping("nodeId")] public Guid? NodeId { get; set; } /// /// Discoverability. /// [ColumnMapping("availability")] public Discoverability Availability { get; set; } }