55 lines
1.3 KiB
C#
55 lines
1.3 KiB
C#
using Orleans;
|
|
using static Managing.Common.Enums;
|
|
|
|
namespace Managing.Application.Abstractions.Grains;
|
|
|
|
/// <summary>
|
|
/// A small serializable class to store bot metadata.
|
|
/// This is a very lean object, perfect for fast storage and retrieval.
|
|
/// </summary>
|
|
[GenerateSerializer]
|
|
public class BotRegistryEntry
|
|
{
|
|
/// <summary>
|
|
/// The unique identifier of the bot
|
|
/// </summary>
|
|
[Id(0)]
|
|
public Guid Identifier { get; set; }
|
|
|
|
/// <summary>
|
|
/// The unique identifier of the user who owns the bot
|
|
/// </summary>
|
|
[Id(1)]
|
|
public int UserId { get; set; }
|
|
|
|
/// <summary>
|
|
/// The current operational status of the bot
|
|
/// </summary>
|
|
[Id(2)]
|
|
public BotStatus Status { get; set; }
|
|
|
|
/// <summary>
|
|
/// When the bot was registered in the registry
|
|
/// </summary>
|
|
[Id(3)]
|
|
public DateTime RegisteredAt { get; set; } = DateTime.UtcNow;
|
|
|
|
/// <summary>
|
|
/// When the bot status was last updated
|
|
/// </summary>
|
|
[Id(4)]
|
|
public DateTime LastStatusUpdate { get; set; } = DateTime.UtcNow;
|
|
|
|
public BotRegistryEntry()
|
|
{
|
|
}
|
|
|
|
public BotRegistryEntry(Guid identifier, int userId, BotStatus status = BotStatus.Saved)
|
|
{
|
|
Identifier = identifier;
|
|
UserId = userId;
|
|
Status = status;
|
|
RegisteredAt = DateTime.UtcNow;
|
|
LastStatusUpdate = DateTime.UtcNow;
|
|
}
|
|
} |