package NController;

enum TSlotStatus {
    OK = 0;
    FailedIndex = 1;
    UnknownError = 2;
    IncorrectReply = 3;
    Unavailable = 4;
    FailedConfig = 5;
    SemiOK = 6;
}

message TPingInfoByTime {
    optional uint32 Hour = 1 [default = 0];
    optional uint32 Fails = 2 [default = 0];
    optional uint32 Success = 3 [default = 0];
}

message TSlotChecker {
    optional uint64 LastPing = 1 [default = 0];
    optional uint64 LastReply = 2 [default = 0];
    optional TSlotStatus Status = 3 [default = OK];
    optional string Info = 4 [default = ""];
    optional uint64 FirstPing = 5 [default = 0];
    repeated TPingInfoByTime PingInfoByTime = 6;
}

message TInfoRegularTask {
    optional uint64 LastStart = 1 [default = 0];
    optional uint32 LastFailsCnt = 2 [default = 0];
}

message TControllerStatus {
    optional TSlotStatus Status = 1 [default = OK];
    optional string Info = 2 [default = ""];
    optional string ConfigDirMD5 = 3 [default = ""];
}
