Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.40 KB | None | 0 0
  1. syntax = "proto3";
  2. option java_multiple_files = true;
  3. option java_package = "com.panbet.eventprovider.proto";
  4. option java_outer_classname = "eventprovider";
  5.  
  6. package panbet.eventprovider;
  7.  
  8. enum MarketStates
  9. {
  10.     ACTIVE = 0;
  11.     SUSPEND = 1;
  12.     HIDDEN = 2;
  13.     ARCHIVE = 3;
  14.     OFF = 4;
  15. }
  16.  
  17. message Pair
  18. {
  19.     Property first = 1;
  20.     Property second = 2;
  21. }
  22.  
  23. message Property
  24. {
  25.     oneof value
  26.     {
  27.         bool boolValue = 1;
  28.         int32 intValue = 2;
  29.         int64 longValue = 3;
  30.         float floatValue = 4;
  31.         string stringValue = 5;
  32.         Pair pairValue = 6;
  33.     }
  34. }
  35.  
  36. enum SelectionFlags
  37. {
  38.     DISPLAYED = 0;
  39.     NONRUNNER = 1;
  40. }
  41.  
  42. enum CoefficientTypes
  43. {
  44.     CP = 0;
  45.     AP = 1;
  46.     EP = 2;
  47.     SP = 3;
  48. }
  49.  
  50. enum ResultTypes
  51. {
  52.     UNDEFINED = 0;
  53.     LOSE = 1;
  54.     WIN = 2;
  55.     VOID = 3;
  56. }
  57.  
  58. enum GpTypes
  59. {
  60.     NO_GP = 0;
  61.     GP_FOR_EP = 1;
  62.     GP_FOR_BP = 2;
  63.     GP_FOR_BOTH = 3;
  64. }
  65.  
  66. message Selection
  67. {
  68.     int32 id = 1;
  69.     string uid = 2;
  70.     string name = 3;
  71.     double price = 4;
  72.     CoefficientTypes coeffType = 5;
  73.     int32 raceOrder = 6;
  74.     ResultTypes result = 7;
  75.     repeated SelectionFlags flags = 8;
  76.     GpTypes gpType = 9;
  77.     map<string, Property> properties = 10;
  78.     float coeffProbability = 11;
  79.     float coeffMargin = 12;
  80.     string mathId = 13;
  81. }
  82.  
  83. message EachWay
  84. {
  85.     int32 numerator = 1;
  86.     int32 denominator = 2;
  87.     int32 placeCount = 3;
  88.     bool isFixed = 4;
  89. }
  90.  
  91. message Market
  92. {
  93.     int32 id = 1;
  94.     string code = 2;
  95.     string model = 3;
  96.     string name = 4;
  97.     MarketStates state = 5;
  98.     double profitability = 6;
  99.     string profitabilityType = 7;
  100.     bool isLocked = 8;
  101.     bool isAutoRecalcBlocked = 9;
  102.     int32 autoRecalcGroupCode = 10;
  103.     string sortStyle = 11;
  104.     int32 order = 12;
  105.     EachWay eachWay = 13;
  106.     string blurb = 14;
  107.     bool isCashOutSuspended = 15;
  108.     bool isResult = 16;
  109.     bool isChecked = 17;
  110.     string variety = 18;
  111.     bool isActual = 19;
  112.     map<string, Selection> selections = 20;
  113.     map<string, Property> values = 21;
  114.     // map<string, Property> properties = 22;
  115.     float voidProbability = 23;
  116.     float requestMargin = 24;
  117.     int32 marginStepNumber = 25;
  118. }
  119.  
  120. message Number
  121. {
  122.     oneof value
  123.     {
  124.         int32 intValue = 1;
  125.         float floatValue = 2;
  126.     }
  127. }
  128.  
  129. message InningScore
  130. {
  131.     Number home = 1;
  132.     Number away = 2;
  133.     bool complete = 3;
  134. }
  135.  
  136. message Points
  137. {
  138.     map<int32, string> points = 1;
  139. }
  140.  
  141. message GoalSummary
  142. {
  143.     string competitor = 1;
  144.     string competitorDescr = 2;
  145.  
  146.     int32 minute = 3;
  147.  
  148.     string scorerMemberCode = 4;
  149.     string scorerMemberName = 5;
  150.  
  151.     bool isOwn = 6;
  152.  
  153.     string scoringMethod = 7;
  154.  
  155.     bool isSubstituteToScore = 8;
  156.     bool isSimultaneouslyToScore = 9;
  157.     bool isScored = 10;
  158.  
  159.     repeated string noGoalScorer = 11;
  160. }
  161.  
  162. message Interval
  163. {
  164.     Number from = 1;
  165.     Number to = 2;
  166. }
  167.  
  168. message StringList
  169. {
  170.     repeated string items = 1;
  171. }
  172.  
  173. message PointNumber
  174. {
  175.     // Номер сета
  176.     int32 set = 1;
  177.     // Номер гейма
  178.     int32 game = 2;
  179.     // Номер розыгрыша
  180.     int32 point = 3;
  181. }
  182.  
  183. message InningScore3Team
  184. {
  185.     // результат первой команды
  186.     int32 scoreFirst = 1;
  187.     // результат второй команды
  188.     int32 scoreSecond = 2;
  189.     // результат третьей команды
  190.     int32 scoreThird = 3;
  191.     // флаг, указывающий на завершённость части матча
  192.     bool isCompleted = 4;
  193. }
  194.  
  195. message SeparatedInningScore
  196. {
  197.     Number home = 1;
  198.     Number away = 2;
  199.     bool completeHome = 3;
  200.     bool completeAway = 4;
  201. }
  202.  
  203. message Result
  204. {
  205.     // Код результата
  206.     string code = 1;
  207.     // Короткое название класса сооветствующего результата из ejbPanbet
  208.     string className = 2;
  209.  
  210.     // Победитель
  211.     string competitor = 3;
  212.  
  213.     // Флаг - да/нет, чет/нечет и т.д.
  214.     string flag = 4;
  215.  
  216.     bool isFlag = 5;
  217.  
  218.     // Тотал
  219.     Number total = 6;
  220.     // Тотал подтвержден
  221.     bool isComplete = 7;
  222.  
  223.     // Текущее время матча - минуты
  224.     int32 timeMinutes = 8;
  225.     // Текущее время матча - секунды
  226.     int32 timeSeconds = 9;
  227.     // Текущее время матча - тип перерыва
  228.     string timeBreakType = 10;
  229.     // Текущее время матча - добавленное время
  230.     int32 timeAdditionalSeconds = 11;
  231.  
  232.     // Количество частей матча для счетов
  233.     int32 scoreInnings = 12;
  234.     // Счета
  235.     map<int32, InningScore> scores = 13;
  236.  
  237.     // Первый наберет N очков
  238.     map<int32, Points> toScorePoints = 14;
  239.  
  240.     // 1-е очко в игре
  241.     string selectionType = 15;
  242.  
  243.     // Идентификатор исхода с победителем из маркета MTCH_R
  244.     string winUid = 16;
  245.     // Результат с победителем отменен
  246.     bool isVoid = 17;
  247.     // Ничья (Tie) для вида спорта "Крикет новый"
  248.     bool isTie = 18;
  249.  
  250.     // Методы квалификации
  251.     map<string, string> qualificationMethods = 19;
  252.  
  253.     // Информация о забитых голах
  254.     map<int32, GoalSummary> goals = 20;
  255.     // Интервалы минут матча с известным счетом
  256.     repeated Interval trustedIntervals = 21;
  257.     // Списки "не участвовали" подтверждены
  258.     bool isCompletedNoGoalScorers = 22;
  259.     // Коды участников, которые не участвовали в матче
  260.     map<string, StringList> noGoalScorers = 23;
  261.  
  262.     // Подающие игроки в геймах и/или розыгрышах для тенниса
  263.     map<string, string> gameServes = 24;
  264.     // Типы геймов и/или розыгрышей для тенниса - текущий/слудующий
  265.     map<string, string> gameTypes = 25;
  266.  
  267.     // Тоталы для частей матча;
  268.     // в некоторых видах спорта используются признаки подтверждения, например: тоталы промахов для огневых рубежей в
  269.     // биатлоне
  270.     map<int32, Pair> inningTotals = 26;
  271.  
  272.     // Победители в N легах, фреймах и т.д., с признаками отмены
  273.     map<int32, Pair> inningCompetitors = 27;
  274.  
  275.     // Типы для частей матча - например, "1-ый цветной шар" во фрейме для снукера
  276.     map<int32, Pair> inningSelectionTypes = 28;
  277.  
  278.     // Результаты для исходов; ключ - SelectionTO.getUID(), значение - UNDEFINED, LOSE, WIN, VOID
  279.     map<string, string> selectionResults = 29;
  280.  
  281.     // Тоталы для игроков; ключ - EventMemberTO#getCode()
  282.     map<string, Number> memberTotals = 30;
  283.  
  284.     // Результаты для пенальти/буллита - забит/не забит
  285.     map<int32, string> inningFlags = 31;
  286.  
  287.     repeated int32 ballNumbers = 32;
  288.     repeated int32 additionalBallNumbers = 33;
  289.  
  290.     // Результаты для участников в аутрайтах; ключ - EventMemberTO#getCode()
  291.     map<string, string> outrightResults = 34;
  292.     // Места для участников в маркете "Outright Place"
  293.     map<string, int32> places = 35;
  294.     // Какие-то результаты для участников в маркете "Outright Choice"
  295.     map<string, bool> deadHeat = 36;
  296.    
  297.     // Тип результата из enum - например, результат для бокса или ММА
  298.     string resultType = 37;
  299.    
  300.     // Счета комманд для событий с трёмя участниками
  301.     map<int32, InningScore3Team> scores3Teams = 38;
  302.    
  303.     // Счёт команды гостей (используется для крикета)
  304.     string awayScoreDescr = 39;
  305.     // Счёт команды хозяев (используется для крикета)
  306.     string homeScoreDescr = 40;
  307.    
  308.     // Время гола
  309.     int32 timeOfGoal = 41;
  310.    
  311.     // Время голов команды гостей
  312.     repeated int32 timesOfGoalAway = 42;
  313.     // Время голов команды хозяев
  314.     repeated int32 timesOfGoalHome = 43;
  315.    
  316.     // Результаты маркетов для тотализатора
  317.     map<string, Number> multiTotals = 44;
  318.    
  319.     // Результаты для исхода с победителем по нескольким участникам
  320.     map<string, string> choiceMembers = 45;
  321.    
  322.     // Счета с раздельным подтверждением
  323.     map<int32, SeparatedInningScore> separetedScores = 46;
  324. }
  325.  
  326. message LimitsSetting
  327. {
  328.     oneof value
  329.     {
  330.         int32 limitsGroupId = 1;
  331.         double limitValue = 2;
  332.     }
  333. }
  334.  
  335. message EventLimits
  336. {
  337.     LimitsSetting limitsGroupId = 1;
  338.     LimitsSetting start = 2;
  339.     LimitsSetting current = 3;
  340.     LimitsSetting finish = 4;
  341. }
  342.  
  343. message UnixTime
  344. {
  345.     int64 time = 1;
  346. }
  347.  
  348. message Event
  349. {
  350.     int32 id = 1;
  351.     string name = 2;
  352.     string epattern = 3;
  353.     int32 version = 4;
  354.     repeated Market markets = 5;
  355.     repeated Result results = 6;
  356.  
  357.     string profitabilityGroup = 7;
  358.     map<string, Property> properties = 8;
  359.     EventLimits eventLimits = 9;
  360.     UnixTime displayTime = 10;
  361.     // Строковое представление состояния события: NEW, ACTIVE, SUSPEND, OFF, ARCHIVE
  362.     string state = 11;
  363. }
  364.  
  365. message Subscription
  366. {
  367.     int32 eventId = 1;
  368.     bool isActiveAndSuspendedOnly = 2;
  369. }
  370.  
  371. message EventRequest
  372. {
  373.     int32 seanceId = 1;
  374.  
  375.     message Subscribe
  376.     {
  377.         repeated Subscription subscription = 2;
  378.     }
  379.  
  380.     message Unsubscribe
  381.     {
  382.         repeated int32 eventId = 3;
  383.     }
  384.  
  385.     oneof msg
  386.     {
  387.         Subscribe subscribe = 2;
  388.         Unsubscribe unsubscribe = 3;
  389.     }
  390.  
  391.     repeated Event events = 4;
  392.    
  393.     bool isOnlyChangedMarkets = 5;
  394.  
  395.     int32 userId = 6;
  396. }
  397.  
  398. message EventResponse
  399. {
  400.     int32 seqId = 1;
  401.     repeated Event events = 2;
  402.     map<int32, string> errors = 3;
  403.     int32 seanceId = 4;
  404. }
  405.  
  406. service EventProviderService
  407. {
  408.     rpc GetEvent (EventRequest.Subscribe) returns (EventResponse);
  409.     rpc StreamEvent (stream EventRequest) returns (stream EventResponse)
  410.     {
  411.     }
  412. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement