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; } }