vex_mqtt_rust/proto/match.proto

146 lines
2.9 KiB
Protocol Buffer

syntax = "proto2";
package tm;
import "fieldhw.proto";
enum MatchRound {
NONE = 0;
PRACTICE = 1;
QUAL = 2;
QF = 3;
SF = 4;
F = 5;
R16 = 6;
R32 = 7;
R64 = 8;
R128 = 9;
TOP_N = 15;
ROUND_ROBIN = 16;
PRE_ELIM = 20;
ELIM = 21;
}
enum MatchState {
UNPLAYED = 0;
QUEUED = 1;
ON_DECK = 2;
ACTIVE = 3;
SCORED = 4;
SUBMITTED = 5;
}
message MatchTuple {
optional int32 division = 1;
optional tm.MatchRound round = 2;
optional int32 instance = 3;
optional int32 match = 4;
optional int32 session = 5 [default = 0];
}
message AllianceTeamInfo {
enum RoleEnum {
NORMAL = 1;
SURROGATE = 2;
CAPTAIN = 3;
PICK = 4;
}
optional string number = 1;
optional tm.AllianceTeamInfo.RoleEnum role = 2 [default = NORMAL];
optional string name = 3;
optional string location = 4;
optional int32 round = 5 [default = 0];
optional int32 id = 6;
}
message AllianceInfo {
repeated tm.AllianceTeamInfo teams = 1;
optional string name = 2;
}
message MatchInfo {
optional tm.MatchTuple matchTuple = 1;
repeated tm.AllianceInfo alliances = 2;
optional uint32 timeScheduled = 3;
optional tm.Field assignedField = 4;
optional tm.MatchState state = 5;
optional uint32 timeStarted = 6;
optional uint32 timeResumed = 7;
optional uint32 elimOrder = 8;
}
message MatchSchedule {
optional int32 division = 1;
optional tm.MatchRound round = 2;
repeated tm.MatchInfo matches = 3;
}
message MatchList {
optional int32 division = 1;
repeated tm.MatchTuple matches = 2;
}
message ScoreObject {
required string name = 1;
required int32 val = 2;
}
message TeamScore {
optional int32 id = 1;
optional bool dq = 2;
optional bool noShow = 3;
optional bool sitting = 4;
optional string teamNum = 5;
repeated tm.ScoreObject scoreTypes = 6;
}
message AllianceScore {
optional int32 id = 1;
repeated tm.TeamScore teams = 3;
optional int32 place = 4;
repeated tm.ScoreObject scoreTypes = 5;
optional string name = 6;
}
message MatchScore {
optional tm.MatchTuple matchTuple = 1;
repeated tm.AllianceScore alliances = 2;
optional tm.MatchState state = 3 [default = UNPLAYED];
repeated tm.ScoreObject scoreTypes = 4;
optional string gameUuid = 5;
optional int32 timeSaved = 6;
}
message MatchScoreList {
repeated tm.MatchScore scores = 1;
}
message RescoreStatus {
enum RescoreStatusEnum {
ALLOWED = 1;
DISALLOWED = 2;
}
optional tm.RescoreStatus.RescoreStatusEnum status = 1;
}
message OnFieldMatch {
optional tm.MatchTuple matchTuple = 1;
optional tm.Field field = 2;
optional tm.AssignedObjectType.AssignedObjectEnum assignedType = 3 [default = MATCH];
optional uint32 duration = 4;
optional uint32 scId = 5;
}
message SavedMatch {
optional tm.MatchTuple matchTuple = 1;
optional tm.Field field = 2;
}
message AssignedMatch {
optional tm.MatchTuple matchTuple = 1;
optional tm.Field field = 2;
}
message AssignedMatchList {
repeated tm.AssignedMatch match = 1;
}