using Orleans;
namespace Managing.Application.Abstractions.Grains;
///
/// Orleans grain state for BotRegistry.
/// This class represents the persistent state of the bot registry grain.
/// All properties must be serializable for Orleans state management.
///
[GenerateSerializer]
public class BotRegistryState
{
///
/// Dictionary containing all registered bots. The key is the identifier.
///
[Id(0)]
public Dictionary Bots { get; set; } = new();
///
/// When the registry was last updated
///
[Id(1)]
public DateTime LastUpdated { get; set; } = DateTime.UtcNow;
///
/// Total number of bots currently registered
///
[Id(2)]
public int TotalBotsCount { get; set; }
///
/// Number of active bots (status = Up)
///
[Id(3)]
public int ActiveBotsCount { get; set; }
}