@mtgame/core 1.0.43 → 1.0.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"mtgame-core.js","sources":["../../../projects/core/src/localization/hockey-penalty-types.ts","../../../projects/core/src/models/util.ts","../../../projects/core/src/models/file.ts","../../../projects/core/src/models/sport.ts","../../../projects/core/src/models/user-profile.ts","../../../projects/core/src/models/city.ts","../../../projects/core/src/models/basketball-profile.ts","../../../projects/core/src/models/volleyball-profile.ts","../../../projects/core/src/models/hockey-profile.ts","../../../projects/core/src/models/football-profile.ts","../../../projects/core/src/models/handball-profile.ts","../../../projects/core/src/models/rugby-profile.ts","../../../projects/core/src/models/waterpolo-profile.ts","../../../projects/core/src/models/wrestball-profile.ts","../../../projects/core/src/models/user.ts","../../../projects/core/src/models/team.ts","../../../projects/core/src/models/organization.ts","../../../projects/core/src/models/league.ts","../../../projects/core/src/models/tournament-season.ts","../../../projects/core/src/models/tournament.ts","../../../projects/core/src/models/basketball-game-config.ts","../../../projects/core/src/models/volleyball-game-config.ts","../../../projects/core/src/models/league-court.ts","../../../projects/core/src/models/media-item.ts","../../../projects/core/src/models/hockey-game-config.ts","../../../projects/core/src/models/football-game-config.ts","../../../projects/core/src/models/handball-game-config.ts","../../../projects/core/src/utils/array.ts","../../../projects/core/src/models/playoff.ts","../../../projects/core/src/models/tournament-group.ts","../../../projects/core/src/models/rugby-game-config.ts","../../../projects/core/src/models/waterpolo-game-config.ts","../../../projects/core/src/models/wrestball-game-config.ts","../../../projects/core/src/models/game.ts","../../../projects/core/src/utils/data.ts","../../../projects/core/src/storage/store.ts","../../../projects/core/src/services/base.service.ts","../../../projects/core/src/services/config.service.ts","../../../projects/core/src/models/tournament-division.ts","../../../projects/core/src/models/league-field-base-value.ts","../../../projects/core/src/models/league-field-base.ts","../../../projects/core/src/models/league-team-field.ts","../../../projects/core/src/models/tournament-team-field-value.ts","../../../projects/core/src/models/tournament-team.ts","../../../projects/core/src/models/team-user.ts","../../../projects/core/src/models/tournament-disqualification.ts","../../../projects/core/src/models/league-player-field.ts","../../../projects/core/src/models/league-player-field-value.ts","../../../projects/core/src/localization/locales.ts","../../../projects/core/src/models/league-player.ts","../../../projects/core/src/models/tournament-team-user-field-value.ts","../../../projects/core/src/models/tournament-team-user.ts","../../../projects/core/src/models/basketball-statistic.ts","../../../projects/core/src/models/basketball-game-team-statistic.ts","../../../projects/core/src/models/basketball-game-statistic.ts","../../../projects/core/src/models/basketball-game-log.ts","../../../projects/core/src/models/game-user.ts","../../../projects/core/src/models/game-user-limitation.ts","../../../projects/core/src/models/game-user-disqualification.ts","../../../projects/core/src/api/game-base-api.ts","../../../projects/core/src/api/basketball-game-api.ts","../../../projects/core/src/models/feedback.ts","../../../projects/core/src/api/feedback-api.ts","../../../projects/core/src/api/file-api.ts","../../../projects/core/src/models/hockey-game-log.ts","../../../projects/core/src/models/hockey-game-statistic.ts","../../../projects/core/src/models/hockey-statistic.ts","../../../projects/core/src/models/hockey-game-team-statistic.ts","../../../projects/core/src/api/hockey-game-api.ts","../../../projects/core/src/models/football-game-log.ts","../../../projects/core/src/models/football-game-statistic.ts","../../../projects/core/src/models/football-statistic.ts","../../../projects/core/src/models/football-game-team-statistic.ts","../../../projects/core/src/api/football-game-api.ts","../../../projects/core/src/models/handball-game-log.ts","../../../projects/core/src/models/handball-game-statistic.ts","../../../projects/core/src/models/handball-statistic.ts","../../../projects/core/src/models/handball-game-team-statistic.ts","../../../projects/core/src/api/handball-game-api.ts","../../../projects/core/src/models/tournament-news.ts","../../../projects/core/src/models/game-timeline-stages.ts","../../../projects/core/src/models/tournament-stage.ts","../../../projects/core/src/models/volleyball-statistic.ts","../../../projects/core/src/models/tournament-stage-team.ts","../../../projects/core/src/models/league-news.ts","../../../projects/core/src/models/tournament-event.ts","../../../projects/core/src/models/league-user.ts","../../../projects/core/src/models/rugby-statistic.ts","../../../projects/core/src/models/achievement.ts","../../../projects/core/src/models/team-achievement.ts","../../../projects/core/src/models/waterpolo-statistic.ts","../../../projects/core/src/models/tournament-round.ts","../../../projects/core/src/models/wrestball-statistic.ts","../../../projects/core/src/models/tournament-round-team.ts","../../../projects/core/src/api/tournament-api.ts","../../../projects/core/src/models/league-partner.ts","../../../projects/core/src/models/league-banner.ts","../../../projects/core/src/models/league-document.ts","../../../projects/core/src/models/teams-and-users.ts","../../../projects/core/src/models/season-tournament.ts","../../../projects/core/src/api/league-api.ts","../../../projects/core/src/api/league-news-api.ts","../../../projects/core/src/api/league-player-api.ts","../../../projects/core/src/api/league-team-api.ts","../../../projects/core/src/api/media-api.ts","../../../projects/core/src/models/poll.ts","../../../projects/core/src/models/team-invite.ts","../../../projects/core/src/models/game-invite.ts","../../../projects/core/src/models/team-event-type.ts","../../../projects/core/src/localization/team-event-type.ts","../../../projects/core/src/models/team-event.ts","../../../projects/core/src/models/team-event-invite.ts","../../../projects/core/src/models/tournament-team-user-invite.ts","../../../projects/core/src/models/tournament-invite.ts","../../../projects/core/src/models/notification.ts","../../../projects/core/src/models/notification-settings.ts","../../../projects/core/src/api/notification-base-api.ts","../../../projects/core/src/api/notification-api.ts","../../../projects/core/src/api/org-notification-api.ts","../../../projects/core/src/api/reference-api.ts","../../../projects/core/src/models/rugby-game-team-statistic.ts","../../../projects/core/src/models/rugby-game-statistic.ts","../../../projects/core/src/models/rugby-foul-type.ts","../../../projects/core/src/models/rugby-game-log.ts","../../../projects/core/src/api/rugby-game-api.ts","../../../projects/core/src/models/team-invite-external.ts","../../../projects/core/src/models/team-permission.ts","../../../projects/core/src/models/team-access.ts","../../../projects/core/src/api/team-api.ts","../../../projects/core/src/api/team-event-api.ts","../../../projects/core/src/models/tournament-join-team.ts","../../../projects/core/src/models/tournament-join1x1-data.ts","../../../projects/core/src/api/tournament-join-api.ts","../../../projects/core/src/api/tournament-round-api.ts","../../../projects/core/src/api/tournament-season-api.ts","../../../projects/core/src/api/tournament-stage-api.ts","../../../projects/core/src/models/user-access.ts","../../../projects/core/src/models/user-permission.ts","../../../projects/core/src/api/user-api.ts","../../../projects/core/src/models/volleyball-game-team-statistic.ts","../../../projects/core/src/models/volleyball-game-statistic.ts","../../../projects/core/src/models/volleyball-game-log.ts","../../../projects/core/src/api/volleyball-game-api.ts","../../../projects/core/src/models/waterpolo-game-log.ts","../../../projects/core/src/models/waterpolo-game-statistic.ts","../../../projects/core/src/models/waterpolo-game-team-statistic.ts","../../../projects/core/src/api/waterpolo-game-api.ts","../../../projects/core/src/models/wrestball-game-team-statistic.ts","../../../projects/core/src/models/wrestball-game-statistic.ts","../../../projects/core/src/models/wrestball-game-log.ts","../../../projects/core/src/api/wrestball-game-api.ts","../../../projects/core/src/api/public-team-api.ts","../../../projects/core/src/api/public-user-api.ts","../../../projects/core/src/localization/basketball-game-log-types.ts","../../../projects/core/src/localization/basketball-game-sub-log-types.ts","../../../projects/core/src/localization/country.ts","../../../projects/core/src/localization/hockey-game-log-types.ts","../../../projects/core/src/localization/football-game-log-types.ts","../../../projects/core/src/localization/handball-game-log-types.ts","../../../projects/core/src/localization/waterpolo-game-log-types.ts","../../../projects/core/src/localization/overtime-types.ts","../../../projects/core/src/localization/rugby-foul-sanction.ts","../../../projects/core/src/localization/rugby-foul-game-stage.ts","../../../projects/core/src/localization/rugby-game-log-types.ts","../../../projects/core/src/localization/team-user-role.ts","../../../projects/core/src/localization/user-profile.ts","../../../projects/core/src/localization/volleyball-game-log-types.ts","../../../projects/core/src/localization/organization-statuses.ts","../../../projects/core/src/localization/wrestball-game-log-types.ts","../../../projects/core/src/models/organization-bill.ts","../../../projects/core/src/models/game-bill.ts","../../../projects/core/src/models/league-playlist.ts","../../../projects/core/src/models/organization-tariff.ts","../../../projects/core/src/models/organization-statistic.ts","../../../projects/core/src/services/centrifugo.service.ts","../../../projects/core/src/storage/storage-engine.ts","../../../projects/core/src/storage/local-storage-engine.ts","../../../projects/core/src/utils/component-destroyed.ts","../../../projects/core/src/utils/cookie.ts","../../../projects/core/src/utils/date.ts","../../../projects/core/src/utils/device.ts","../../../projects/core/src/utils/enum.ts","../../../projects/core/src/utils/errors.ts","../../../projects/core/src/utils/favicon.ts","../../../projects/core/src/utils/form.ts","../../../projects/core/src/utils/validators.ts","../../../projects/core/src/http-cookie.interceptor.ts","../../../projects/core/src/mtgame-core.ts"],"sourcesContent":["export const HockeyPenaltyTypes = [\n {id: 1, code: 'АГРЕС', title: 'Агрессор в драке'},\n {id: 2, code: 'АТ-В-ГОЛ', title: 'Атака в голову или шею'},\n {id: 3, code: 'АТ-ВР', title: 'Атака вратаря'},\n {id: 4, code: 'АТ-СЗ', title: 'Атака сзади'},\n {id: 5, code: 'БЛОК', title: 'Блокировка'},\n {id: 6, code: 'БР-КЛ', title: 'Бросок клюшки'},\n {id: 7, code: 'ВБ-ШБ', title: 'Выброс шайбы'},\n {id: 8, code: 'ГРУБ', title: 'Грубость'},\n {id: 9, code: 'ДИСЦ', title: 'Дисциплинарный штраф'},\n {id: 10, code: 'ДИС-КН', title: 'Дисциплинарный до конца матча'},\n {id: 11, code: 'ДРАКА', title: 'Драка'},\n {id: 12, code: 'ЗАЧИН', title: 'Зачинщик драки'},\n {id: 13, code: 'ЗД-ИГ', title: 'Задержка игры'},\n {id: 14, code: 'ЗД-КЛ-СП', title: 'Задержка клюшки соперника'},\n {id: 15, code: 'ЗД-КЛ', title: 'Задержка клюшкой'},\n {id: 16, code: 'ЗД-СП', title: 'Задержка соперника'},\n {id: 17, code: 'ЗД-ШБ', title: 'Задержка шайбы руками'},\n {id: 18, code: 'СЛ-КЛ', title: 'Игра со сломанной клюшкой'},\n {id: 19, code: 'ВП-КЛ', title: 'Игра высоко поднятой клюшкой'},\n {id: 20, code: 'КЛ-УД', title: 'Колющий удар'},\n {id: 21, code: 'СК-ШТ', title: 'Малый скамеечный штраф'},\n {id: 22, code: 'МШ', title: 'Матч-штраф'},\n {id: 23, code: 'НП-АТ', title: 'Неправильная атака'},\n {id: 24, code: 'ЧС-СТ', title: 'Нарушение численного состава'},\n {id: 25, code: 'НС-КЛ', title: 'Нестандартная клюшка'},\n {id: 26, code: 'НАР-ЭК', title: 'Опасное снаряжение'},\n {id: 27, code: 'НС-ПВ', title: 'Оскорбление судей и неспортивное поведение'},\n {id: 28, code: 'ОТ-ИГ', title: 'Отказ начать игру'},\n {id: 29, code: 'ОТСЧ', title: 'Отсечение'},\n {id: 30, code: 'ПЛЕВОК', title: 'Плевок'},\n {id: 31, code: 'ПОДН', title: 'Подножка'},\n {id: 32, code: 'ПОДС', title: 'Подсечка'},\n {id: 33, code: 'ПР-ИН', title: 'Предупреждение инфекций'},\n {id: 34, code: 'ПК-СК', title: 'Покидание скамейки во время конфликта'},\n {id: 35, code: 'СД-ВР', title: 'Сдвиг ворот'},\n {id: 36, code: 'СИМ', title: 'Симуляция'},\n {id: 37, code: 'ТЛ-БР', title: 'Толчок на борт'},\n {id: 38, code: 'ТЛ-КЛ', title: 'Толчок клюшкой'},\n {id: 39, code: 'УД-ГОЛ', title: 'Удар головой'},\n {id: 40, code: 'УД-КЛ', title: 'Удар клюшкой'},\n {id: 41, code: 'УД-К-КЛ', title: 'Удар концом клюшки'},\n {id: 42, code: 'УД-КОЛ', title: 'Удар коленом'},\n {id: 43, code: 'УД-ЛОК', title: 'Удар локтем'},\n {id: 44, code: 'УД-НГ', title: 'Удар ногой'},\n {id: 45, code: 'УКУС', title: 'Укус'},\n {id: 46, code: 'КН-ЗР', title: 'Физический контакт со зрителем'},\n {id: 47, code: 'ШТ-ВР', title: 'Штраф вратаря'},\n];\nexport const HockeyPenaltyTypesEn = [\n {id: 1, code: 'AGGR', title: 'Агрессор в драке'},\n {id: 2, code: 'AT-HD', title: 'Attack to the head or neck'},\n {id: 3, code: 'AT-GO', title: 'Goalkeeper attack'},\n {id: 4, code: 'AT-BH', title: 'Attack from behind'},\n {id: 5, code: 'BLOCK', title: 'Blocking'},\n {id: 6, code: 'TH-ST', title: 'Throwing a stick'},\n {id: 7, code: 'PC-RL', title: 'Puck release'},\n {id: 8, code: 'RUDE', title: 'Rudeness'},\n {id: 9, code: 'DISC', title: 'Disciplinary penalty'},\n {id: 10, code: 'DISC-EM', title: 'Disciplinary until the end of the match'},\n {id: 11, code: 'FIGHT', title: 'Fight'},\n {id: 12, code: 'IN-FG', title: 'The instigator of the fight'},\n {id: 13, code: 'GD', title: 'Game delay'},\n {id: 14, code: 'HD-OP-ST', title: 'Holding an opponent\\'s stick'},\n {id: 15, code: 'ST-HD', title: 'Stick hold'},\n {id: 16, code: 'DL-OP', title: 'Delaying the opponent'},\n {id: 17, code: 'HL-PC-HD', title: 'Holding the puck with your hands'},\n {id: 18, code: 'PL-BS', title: 'Playing with a broken stick'},\n {id: 19, code: 'HSP', title: 'High stick play'},\n {id: 20, code: 'THR', title: 'Thrust'},\n {id: 21, code: 'MI-BE', title: 'Minor bench penalty'},\n {id: 22, code: 'MP', title: 'Match penalty'},\n {id: 23, code: 'WR-AT', title: 'Wrong attack'},\n {id: 24, code: 'NM-VO', title: 'Violation of numerical composition'},\n {id: 25, code: 'NS-ST', title: 'Non-standard stick'},\n {id: 26, code: 'DE', title: 'Dangerous equipment'},\n {id: 27, code: 'INS-REF', title: 'Insulting referees and unsportsmanlike conduct'},\n {id: 28, code: 'RF-SG', title: 'Refusal to start the game'},\n {id: 29, code: 'CO', title: 'Cut-off'},\n {id: 30, code: 'SPIT', title: 'Spit'},\n {id: 31, code: 'STEP', title: 'Step'},\n {id: 32, code: 'UND', title: 'Undercut'},\n {id: 33, code: 'PR-INF', title: 'Prevention of infections'},\n {id: 34, code: 'LE-BE', title: 'Leaving the bench during a conflict'},\n {id: 35, code: 'GA-SH', title: 'Gate shift'},\n {id: 36, code: 'SIM', title: 'Simulation'},\n {id: 37, code: 'PU-BR', title: 'Push on board'},\n {id: 38, code: 'PU-ST', title: 'Stick push'},\n {id: 39, code: 'AT-HD', title: 'Head kick'},\n {id: 40, code: 'HT-ST', title: 'Hit with a stick'},\n {id: 41, code: 'HT-ST-E', title: 'Hit with the end of the stick'},\n {id: 42, code: 'ST-KN', title: 'Knee strike'},\n {id: 43, code: 'ST-EB', title: 'Elbow strike'},\n {id: 44, code: 'KICK', title: 'Kick'},\n {id: 45, code: 'BITE', title: 'Bite'},\n {id: 46, code: 'CN-VW', title: 'Physical contact with the viewer'},\n {id: 47, code: 'PN-GO', title: 'Goalkeeper penalty'},\n];\n","import { HockeyPenaltyTypes } from '../localization/hockey-penalty-types';\n\nexport const MODEL_MAPPING_FIELDS_KEY = '_mapping_fields_';\nexport const MODEL_RELATION_KEY = '_relation_';\nexport const MODEL_TO_FRONT_KEY = '_to_front_';\nexport const MODEL_TO_BACK_KEY = '_to_back_';\n\ntype ParserInterface = (dto: any) => any;\n\ninterface ModelTypeInterface {\n new(data?: any);\n}\n\nexport interface ModelInterface {\n toFront(dto: any): any;\n toBack(dto: any): any;\n}\n\nexport abstract class BaseModel {\n constructor(data?: {[key: string]: any}) {\n if (data) {\n for (const key of Object.keys(data)) {\n this[key] = data[key];\n }\n }\n }\n\n static toFront(dto: any): any {\n return undefined;\n }\n\n static toBack(dto: any): any {\n return undefined;\n }\n}\n\nexport function enumField(enumClass) {\n return {\n toFront: (value) => {\n if (value === null || value === undefined) {\n return value;\n }\n if (isNaN(+value)) {\n return enumClass[value];\n } else {\n return value;\n }\n },\n toBack: (value) => {\n if (value === null || value === undefined) {\n return value;\n }\n if (isNaN(+value)) {\n return value;\n } else {\n return enumClass[value];\n }\n }\n };\n}\n\nexport function penaltyTypeField() {\n return {\n toFront: (data) => {\n if (!data) {\n return null;\n }\n if (typeof data === 'object') {\n return data;\n }\n return HockeyPenaltyTypes.find(item => item.id === data);\n },\n toBack: (data) => {\n if (!data) {\n return null;\n }\n if (typeof data === 'object') {\n return data.id;\n }\n return data;\n }\n };\n}\n\nexport function listField(modelClass) {\n return {\n toFront: (value) => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map(item => modelClass.toFront(item));\n },\n toBack: (value) => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map(item => modelClass.toBack(item));\n }\n };\n}\n\nexport class DateField extends BaseModel {\n static toFront(date: any): any {\n if (date) {\n return new Date(date);\n } else {\n return undefined;\n }\n }\n static toBack(date: Date): any {\n if (date) {\n const dateUtc = new Date(Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds())\n );\n return dateUtc.toISOString().slice(0, 10);\n } else {\n return undefined;\n }\n }\n}\n\nexport class DateTimeField extends BaseModel {\n static toFront(date: any): any {\n if (date) {\n return new Date(date);\n } else {\n return undefined;\n }\n }\n static toBack(date: Date): any {\n if (date) {\n const dateUtc = new Date(Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds())\n );\n return date.toISOString();\n } else {\n return undefined;\n }\n }\n}\n\nexport function ModelInstance(\n config: {\n mappingFields?: { [key: string]: string },\n relation?: { [key: string]: BaseModel }\n }\n) {\n return (target: ModelTypeInterface) => {\n if (config) {\n if (config.mappingFields) {\n target[MODEL_MAPPING_FIELDS_KEY] = config.mappingFields;\n }\n if (config.relation) {\n target[MODEL_RELATION_KEY] = config.relation;\n }\n target[MODEL_TO_FRONT_KEY] = (dto: any) => {\n return toFront(target, dto);\n };\n target[MODEL_TO_BACK_KEY] = (dto: any) => {\n return toBack(target, dto);\n };\n }\n };\n}\n\nexport const ToFrontHook = (target: ModelTypeInterface, key: string | symbol, descriptor: TypedPropertyDescriptor<Function>) => {\n return {\n value: (...args: any[]) => {\n const parseMethod = target[MODEL_TO_FRONT_KEY] as ParserInterface;\n if (parseMethod) {\n return parseMethod(args[0]);\n }\n return undefined;\n }\n };\n};\n\nexport const ToBackHook = (target: ModelTypeInterface, key: string | symbol, descriptor: TypedPropertyDescriptor<Function>) => {\n return {\n value: (...args: any[]) => {\n const parseMethod = target[MODEL_TO_BACK_KEY] as ParserInterface;\n if (parseMethod) {\n return parseMethod(args[0]);\n }\n return undefined;\n }\n };\n};\n\nfunction extractValue(key, data) {\n if (!data) {\n return undefined;\n }\n\n const keyParts = key.split('.');\n if (keyParts.length === 1) {\n if (key in data) {\n return data[key];\n } else {\n return undefined;\n }\n }\n\n for (const k of keyParts) {\n if (data && k in data) {\n data = data[k];\n } else {\n return undefined;\n }\n }\n\n return data;\n}\n\nfunction toFront(modelType: ModelTypeInterface, data: any): any {\n // Check if recursion is required\n if (Array.isArray(data)) {\n return data.map(item => {\n return toFront(modelType, item);\n });\n }\n\n const instance = new modelType();\n\n // Mapping fields\n const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY] as string[];\n const relation = modelType[MODEL_RELATION_KEY] as { [key: string]: ModelInterface };\n if (mappingFields) {\n for (const backField of Object.keys(mappingFields)) {\n const frontField = mappingFields[backField];\n const value = extractValue(backField, data);\n if (relation && relation.hasOwnProperty(frontField)) {\n instance[frontField] = relation[frontField].toFront(value);\n } else {\n instance[frontField] = value;\n }\n }\n }\n\n return instance;\n}\n\nfunction toBack(modelType: ModelTypeInterface, instance: any): any {\n if (!instance) {\n return instance;\n }\n\n // Check if recursion is required\n if (Array.isArray(instance)) {\n return instance.map(item => {\n return toBack(modelType, item);\n });\n }\n\n const data = {};\n const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY] as string[];\n const relation = modelType[MODEL_RELATION_KEY] as { [key: string]: ModelInterface };\n if (mappingFields) {\n for (const backField of Object.keys(mappingFields)) {\n const frontField = mappingFields[backField];\n if (relation && relation.hasOwnProperty(frontField) && instance[frontField] !== undefined) {\n data[backField] = relation[frontField].toBack(instance[frontField]);\n } else {\n data[backField] = instance[frontField];\n }\n }\n }\n\n return data;\n}\n","import { ModelInstance, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\n\nexport enum FileEngine {\n django = 1,\n s3\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n original_name: 'originalName',\n path: 'path',\n resized_path: 'resizedPath',\n mime_type: 'mimeType',\n size: 'size',\n engine: 'engine',\n created_at: 'createdAt',\n },\n relation: {\n engine: enumField(FileEngine),\n createdAt: DateTimeField,\n }\n})\nexport class File {\n id: number;\n name: string;\n _originalName: string;\n _path: string;\n resizedPath: string;\n mimeType: string;\n size: number;\n engine: FileEngine;\n createdAt: Date;\n\n set originalName(name: string) {\n this._originalName = name;\n }\n\n get originalName(): string {\n return this._originalName || this.name;\n }\n\n set path(filePath: string) {\n this._path = filePath;\n }\n\n get path(): string {\n return this.resizedPath || this._path;\n }\n\n @ToFrontHook\n static toFront(data: any): File {\n return null;\n }\n\n @ToBackHook\n static toBack(file: File): any {\n return null;\n }\n}\n","import {ModelInstance, ToFrontHook, ToBackHook, BaseModel} from './util';\n\nexport enum SportTypes {\n basketball = 1,\n volleyball = 2,\n classic_basketball = 3,\n streetball = 4,\n classic_volleyball = 5,\n beach_volleyball = 6,\n hockey = 7,\n ice_hockey = 8,\n ball_hockey = 9,\n football = 10,\n classic_football = 11,\n mini_football = 12,\n handball = 13,\n handball_classic = 14,\n rugby = 15,\n rugby15 = 16,\n rugby7 = 17,\n basketball_1x1 = 18,\n waterpolo = 19,\n classic_waterpolo = 20,\n mini_waterpolo = 21,\n media_basket = 22,\n moneyball_basket = 23,\n wrestball= 24,\n wrestball_classic = 25,\n winline_basket = 26,\n dota_root = 27,\n dota = 28,\n cs_root = 29,\n cs = 30,\n other = 31,\n chess = 32,\n table_tennis = 33,\n billiard = 34,\n darts = 35,\n badminton = 36,\n padel_tennis = 37,\n other_dota = 38,\n other_fifa = 39,\n fonbase_basketball = 40,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n parent_id: 'parentId',\n sub_sports: 'subSports'\n }\n})\nexport class Sport extends BaseModel {\n id: number;\n name: string;\n parentId: number;\n subSports: Sport[];\n\n isBasketball() {\n return this.id === SportTypes.basketball || this.parentId === SportTypes.basketball;\n }\n\n isClassicBasketball() {\n return this.id === SportTypes.classic_basketball;\n }\n\n isStreetball() {\n return this.id === SportTypes.streetball;\n }\n\n isBasketball1x1() {\n return this.id === SportTypes.basketball_1x1;\n }\n\n isMediaBasket() {\n return this.id === SportTypes.media_basket;\n }\n\n isFonbaseBasketball() {\n return this.id === SportTypes.fonbase_basketball;\n }\n\n isMoneyballBasket() {\n return this.id === SportTypes.moneyball_basket;\n }\n\n isWinlinebasket() {\n return this.id === SportTypes.winline_basket;\n }\n\n isVolleyball() {\n return this.id === SportTypes.volleyball || this.parentId === SportTypes.volleyball;\n }\n\n isClassicVolleyball() {\n return this.id === SportTypes.classic_volleyball;\n }\n\n isBeachVolleyball() {\n return this.id === SportTypes.beach_volleyball;\n }\n\n isHockey(): boolean {\n return this.id === SportTypes.hockey || this.parentId === SportTypes.hockey;\n }\n\n isIceHockey(): boolean {\n return this.id === SportTypes.ice_hockey;\n }\n\n isBallHockey(): boolean {\n return this.id === SportTypes.ball_hockey;\n }\n\n isFootball() {\n return this.id === SportTypes.football || this.parentId === SportTypes.football;\n }\n\n isClassicFootball() {\n return this.id === SportTypes.classic_football;\n }\n\n isMiniFootball() {\n return this.id === SportTypes.mini_football;\n }\n\n isHandball() {\n return this.id === SportTypes.handball || this.parentId === SportTypes.handball;\n }\n\n isHandballClassic() {\n return this.id === SportTypes.handball_classic;\n }\n\n isRugby() {\n return this.id === SportTypes.rugby || this.parentId === SportTypes.rugby;\n }\n\n isRugby15() {\n return this.id === SportTypes.rugby15;\n }\n\n isRugby7() {\n return this.id === SportTypes.rugby7;\n }\n\n isWaterpolo() {\n return this.id === SportTypes.waterpolo || this.parentId === SportTypes.waterpolo;\n }\n\n isClassicWaterpolo() {\n return this.id === SportTypes.classic_waterpolo;\n }\n\n isMiniWaterpolo() {\n return this.id === SportTypes.mini_waterpolo;\n }\n\n isWrestball() {\n return this.id === SportTypes.wrestball || this.parentId === SportTypes.wrestball;\n }\n\n isOther() {\n return this.id === SportTypes.other || this.parentId === SportTypes.other;\n }\n\n isIndividualSport() {\n return this.isOther() && this.id !== SportTypes.badminton;\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(sport: Sport): any {\n return null;\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n height: 'height',\n weight: 'weight'\n }\n})\nexport class UserProfile {\n id: number;\n userId: number;\n height: number;\n weight: number;\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum Country {\n RU = 'RU',\n BL = 'BL',\n AM = 'AM',\n KZ = 'KZ',\n KG = 'KG',\n USA = 'USA',\n GE = 'GE',\n AZ = 'AZ',\n CHN = 'CHN',\n EGY = 'EGY',\n IRN = 'IRN',\n GRC = 'GRC'\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n name_en: 'nameEn',\n country: 'country',\n },\n relation: {\n country: enumField(Country),\n }\n})\nexport class City extends BaseModel {\n id: number;\n name: string;\n nameEn: string;\n country: Country;\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameBasketballPosition {\n point_guard = 1,\n shooting_guard,\n small_forward,\n power_forward,\n center\n}\n\nexport enum WorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameBasketballPosition),\n workHand: enumField(WorkHand)\n }\n})\nexport class BasketballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameBasketballPosition;\n workHand: WorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameVolleyballPosition {\n setter = 1,\n libero,\n middle_player,\n receiver_attacker,\n dioganal\n}\n\nexport enum VolleyballWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameVolleyballPosition),\n workHand: enumField(VolleyballWorkHand)\n }\n})\nexport class VolleyballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameVolleyballPosition;\n workHand: VolleyballWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameHockeyPosition {\n defensemen = 1,\n forward,\n goaltender\n}\n\nexport enum HockeyWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameHockeyPosition),\n workHand: enumField(HockeyWorkHand)\n }\n})\nexport class HockeyProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameHockeyPosition;\n workHand: HockeyWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameFootballPosition {\n defensemen = 1,\n midfielder,\n forward,\n goalkeeper\n}\n\nexport enum FootballWorkFoot {\n left = 1,\n right,\n both\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_foot: 'workFoot'\n },\n relation: {\n position: enumField(GameFootballPosition),\n workFoot: enumField(FootballWorkFoot)\n }\n})\nexport class FootballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameFootballPosition;\n workFoot: FootballWorkFoot;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { WorkHand } from './basketball-profile';\n\nexport enum GameHandballPosition {\n goalkeeper = 1,\n winger,\n pivot,\n centre_back,\n fullback\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameHandballPosition),\n workHand: enumField(WorkHand)\n }\n})\nexport class HandballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameHandballPosition;\n workHand: WorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameRugbyPosition {\n front_line = 1,\n second_line,\n back_line,\n halfback,\n three_quarter,\n fullback,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position'\n },\n relation: {\n position: enumField(GameRugbyPosition),\n }\n})\nexport class RugbyProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameRugbyPosition;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameWaterpoloPosition {\n goalkeeper = 1,\n defensemen,\n center_forward,\n mobile_forward,\n winger\n}\n\nexport enum WaterpoloWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameWaterpoloPosition),\n workHand: enumField(WaterpoloWorkHand)\n }\n})\nexport class WaterpoloProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameWaterpoloPosition;\n workHand: WaterpoloWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum WrestballWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n work_hand: 'workHand'\n },\n relation: {\n workHand: enumField(WrestballWorkHand)\n }\n})\nexport class WrestballProfile extends BaseModel {\n id: number;\n userId: number;\n workHand: WrestballWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, DateField, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { UserProfile } from './user-profile';\nimport { File } from './file';\nimport { City } from './city';\nimport { BasketballProfile } from './basketball-profile';\nimport { VolleyballProfile } from './volleyball-profile';\nimport { HockeyProfile } from './hockey-profile';\nimport { FootballProfile } from './football-profile';\nimport { HandballProfile } from './handball-profile';\nimport { RugbyProfile } from './rugby-profile';\nimport { WaterpoloProfile } from './waterpolo-profile';\nimport { WrestballProfile } from './wrestball-profile';\n\nexport enum UserGender {\n male = 1,\n female\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n last_name: 'lastName',\n first_name: 'firstName',\n middle_name: 'middleName',\n email: 'email',\n phone: 'phone',\n birth_date: 'birthDate',\n photo: 'photo',\n profile: 'profile',\n basketball_profile: 'basketballProfile',\n volleyball_profile: 'volleyballProfile',\n hockey_profile: 'hockeyProfile',\n football_profile: 'footballProfile',\n handball_profile: 'handballProfile',\n rugby_profile: 'rugbyProfile',\n waterpolo_profile: 'waterpoloProfile',\n wrestball_profile: 'wrestballProfile',\n wizards: 'wizards',\n city: 'city',\n gender: 'gender',\n is_active: 'isActive',\n unique_code: 'uniqueCode',\n created_by_league_id: 'createdByLeagueId',\n },\n relation: {\n birthDate: DateField,\n photo: File,\n profile: UserProfile,\n basketballProfile: BasketballProfile,\n volleyballProfile: VolleyballProfile,\n hockeyProfile: HockeyProfile,\n footballProfile: FootballProfile,\n handballProfile: HandballProfile,\n rugbyProfile: RugbyProfile,\n waterpoloProfile: WaterpoloProfile,\n wrestballProfile: WrestballProfile,\n city: City,\n gender: enumField(UserGender)\n }\n})\nexport class User extends BaseModel {\n id: number;\n lastName: string;\n firstName: string;\n middleName: string;\n email: string;\n phone: string;\n birthDate: Date;\n profile: UserProfile;\n basketballProfile: BasketballProfile;\n volleyballProfile: VolleyballProfile;\n hockeyProfile: HockeyProfile;\n footballProfile: FootballProfile;\n handballProfile: HandballProfile;\n rugbyProfile: RugbyProfile;\n waterpoloProfile: WaterpoloProfile;\n wrestballProfile: WrestballProfile;\n photo: File;\n wizards: string[];\n city: City;\n gender: UserGender;\n isActive: boolean;\n uniqueCode: string;\n createdByLeagueId: number;\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(user: User): any {\n return null;\n }\n\n get fullName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n get age(): number {\n if (!this.birthDate) {\n return null;\n }\n const diff = (new Date()).getTime() - this.birthDate.getTime();\n return Math.floor(diff / (1000 * 60 * 60 * 24 * 365.25));\n }\n}\n","import { ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateField } from './util';\nimport { File } from './file';\nimport { Sport, SportTypes } from './sport';\nimport { User } from './user';\nimport { City } from './city';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n sport: 'sport',\n logo: 'logo',\n owner: 'owner',\n city: 'city',\n users_count: 'usersCount',\n won_games_count: 'wonGamesCount',\n games_count: 'gamesCount',\n score_sum: 'scoreSum',\n closest_game_datetime: 'closestGameDatetime',\n created_by_league_id: 'createdByLeagueId',\n unique_code: 'uniqueCode',\n },\n relation: {\n sport: Sport,\n logo: File,\n owner: User,\n city: City,\n closestGameDatetime: DateField,\n }\n})\nexport class Team extends BaseModel {\n id: number;\n name: string;\n sport: Sport;\n logo: File;\n owner: User;\n city: City;\n usersCount: number;\n wonGamesCount: number;\n gamesCount: number;\n scoreSum: number;\n closestGameDatetime: Date;\n createdByLeagueId: number;\n uniqueCode: string;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n if (this.sport.isHandball()) {\n classList.push('empty-logo-handball');\n }\n if (this.sport.isRugby()) {\n classList.push('empty-logo-rugby');\n }\n if (this.sport.isWaterpolo()) {\n classList.push('empty-logo-waterpolo');\n }\n if (this.sport.isWrestball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.id === SportTypes.chess) {\n classList.push('empty-logo-chess');\n }\n if (this.sport.id === SportTypes.table_tennis) {\n classList.push('empty-logo-table-tennis');\n }\n if (this.sport.id === SportTypes.billiard) {\n classList.push('empty-logo-billiard');\n }\n if (this.sport.id === SportTypes.darts) {\n classList.push('empty-logo-darts');\n }\n if (this.sport.id === SportTypes.badminton) {\n classList.push('empty-logo-badminton');\n }\n if (this.sport.id === SportTypes.padel_tennis) {\n classList.push('empty-logo-padel-tennis');\n }\n if (this.sport.id === SportTypes.other_dota) {\n classList.push('empty-logo-dota');\n }\n if (this.sport.id === SportTypes.other_fifa) {\n classList.push('empty-logo-fifa');\n }\n return classList.join(' ');\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(team: Team): any {\n return null;\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField } from './util';\nimport { User } from './user';\n\n\nexport enum OrganizationStatuses {\n active = 1,\n blocked,\n not_confirmed\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n owner_id: 'ownerId',\n owner: 'owner',\n status: 'status',\n name: 'name',\n phone: 'phone',\n email: 'email',\n unpaid_bills_sum: 'unpaidBillsSum',\n unpaid_game_bills_sum: 'unpaidGameBillsSum',\n },\n relation: {\n owner: User,\n status: enumField(OrganizationStatuses)\n }\n})\nexport class Organization extends BaseModel {\n id: number;\n ownerId: number;\n owner: User;\n status: OrganizationStatuses;\n name: string;\n phone: string;\n email: string;\n unpaidBillsSum: number;\n unpaidGameBillsSum: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { Organization } from './organization';\nimport { File } from './file';\nimport { Sport } from './sport';\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n logo: 'logo',\n contact_email: 'contactEmail',\n contact_phone: 'contactPhone',\n name: 'name',\n alias: 'alias',\n domain: 'domain',\n sport: 'sport',\n description: 'description',\n social_links: 'socialLinks',\n links: 'links',\n organization: 'organization',\n tournaments_count: 'tournamentsCount',\n documents_count: 'documentsCount',\n closest_game_datetime: 'closestGameDatetime',\n cover: 'cover',\n cover_mobile: 'coverMobile',\n about: 'about',\n locale: 'locale',\n },\n relation: {\n organization: Organization,\n logo: File,\n cover: File,\n coverMobile: File,\n sport: Sport,\n }\n})\nexport class League extends BaseModel {\n id: number;\n logo: File;\n contactEmail: string;\n contactPhone: string;\n name: string;\n alias: string;\n domain: string;\n sport: Sport;\n description: string;\n socialLinks: string[];\n links: string[];\n organization: Organization;\n tournamentsCount: number;\n documentsCount: number;\n closestGameDatetime: string;\n cover: File;\n coverMobile: File;\n about: string;\n locale: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get vkLink(): string {\n return this.socialLinks.find(link => link.indexOf('vk.com/') > -1);\n }\n\n get fbLink(): string {\n return this.socialLinks.find(link => link.indexOf('facebook.com/') > -1);\n }\n\n get instaLink(): string {\n return this.socialLinks.find(link => link.indexOf('instagram.com/') > -1);\n }\n\n get youtubeLink(): string {\n return this.socialLinks.find(link => link.indexOf('youtube.com/') > -1);\n }\n\n get telegramLink(): string {\n return this.socialLinks.find(link =>\n link.substr(0, 13) === 'https://t.me/' ||\n link.substr(0, 17) === 'https://www.t.me/'\n );\n }\n\n get tiktokLink(): string {\n return this.socialLinks.find(link => link.indexOf('tiktok.com/') > -1);\n }\n\n checkRuDomain(): boolean {\n const domainSplit = this.domain.split('.');\n return domainSplit[(domainSplit.length - 1)] === 'ru';\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField, DateField } from './util';\nimport { File } from './file';\n\nexport enum TournamentSeasonStatuses {\n open,\n in_progress,\n closed,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'alias',\n logo: 'logo',\n cover: 'cover',\n preview_image: 'previewImage',\n status: 'status',\n start_date: 'startDate',\n closed_date: 'closedDate',\n tournaments: 'tournaments',\n },\n relation: {\n logo: File,\n cover: File,\n previewImage: File,\n status: enumField(TournamentSeasonStatuses),\n startDate: DateField,\n closedDate: DateField,\n }\n})\nexport class TournamentSeason extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n previewImage: File;\n status: TournamentSeasonStatuses;\n startDate: Date;\n closedDate: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, DateTimeField, ToBackHook, ToFrontHook } from './util';\nimport { City } from './city';\nimport { File } from './file';\nimport { League } from './league';\nimport { Sport } from './sport';\nimport { Team } from './team';\nimport { TournamentSeason } from './tournament-season';\n\nexport enum TournamentTypes {\n group = 'group',\n elimination = 'elimination',\n fiba = 'fiba',\n swiss = 'swiss',\n}\n\nexport enum TournamentStatuses {\n open,\n in_progress,\n closed,\n}\n\nexport enum TournamentGender {\n male= 1,\n female,\n all\n}\n\nexport enum BasketballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum VolleyballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum RugbyStatisticTypes {\n light = 1,\n standard,\n}\n\nexport enum WaterpoloStatisticTypes {\n standard = 1,\n light,\n}\n\nexport enum WrestballStatisticTypes {\n standard = 1,\n}\n\nexport enum GameTimeTypes {\n clean = 1,\n dirty,\n}\n\nexport enum OvertimeTypes {\n to_score_total = 1,\n to_score_diff,\n time,\n without_overtime,\n to_first_goal,\n to_first_goal_and_bullitts,\n bullitts,\n penalties,\n time_and_penalties,\n time_and_first_goal\n}\n\nexport enum TimerTypes {\n backward = 1,\n forward,\n}\n\nexport enum SubstituteManageTypes {\n goalkeeper_only = 1,\n additional_screen,\n one_screen,\n split_screen,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n gender: 'gender',\n birth_year_from: 'birthYearFrom',\n birth_year_to: 'birthYearTo',\n max_team_players: 'maxTeamPlayers',\n max_game_players: 'maxGamePlayers',\n type: 'type',\n tours_count: 'toursCount',\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_score: 'overtimeScore',\n game_type: 'gameType',\n timeout_count: 'timeoutCount',\n timeout_time: 'timeoutTime',\n substitute_count: 'substituteCount',\n game_up_to_score: 'gameUpToScore',\n volleyball_score_in_set: 'volleyballScoreInSet',\n volleyball_score_in_last_set: 'volleyballScoreInLastSet',\n manage_team_application: 'manageTeamApplication',\n recruitment_is_open: 'recruitmentIsOpen',\n transfer_is_open: 'transferIsOpen',\n basketball_statistic_type: 'basketballStatisticType',\n volleyball_statistic_type: 'volleyballStatisticType',\n rugby_statistic_type: 'rugbyStatisticType',\n waterpolo_statistic_type: 'waterpoloStatisticType',\n wrestball_statistic_type: 'wrestballStatisticType',\n shot_clock_enabled: 'shotClockEnabled',\n game_time_type: 'gameTimeType',\n with_result_table: 'withResultTable',\n free_substitute_enabled: 'freeSubstituteEnabled',\n substitute_manage_enabled: 'substituteManageEnabled',\n substitute_manage_mode: 'substituteManageMode',\n bonus_points_enabled: 'bonusPointsEnabled',\n minor_penalty_time: 'minorPenaltyTime',\n major_penalty_time: 'majorPenaltyTime',\n misconduct_penalty_time: 'misconductPenaltyTime',\n game_misconduct_penalty_time: 'gameMisconductPenaltyTime',\n match_penalty_time: 'matchPenaltyTime',\n timer_type: 'timerType',\n hide_on_league_main_page: 'hideOnLeagueMainPage',\n wrestler_scrums_count: 'wrestlerScrumsCount',\n wrestlers_count: 'wrestlersCount',\n },\n relation: {\n type: enumField(TournamentTypes),\n gender: enumField(TournamentGender),\n basketballStatisticType: enumField(BasketballStatisticTypes),\n volleyballStatisticType: enumField(VolleyballStatisticTypes),\n rugbyStatisticType: enumField(RugbyStatisticTypes),\n waterpoloStatisticType: enumField(WaterpoloStatisticTypes),\n wrestballStatisticType: enumField(WrestballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n overtimeType: enumField(OvertimeTypes),\n timerType: enumField(TimerTypes),\n substituteManageMode: enumField(SubstituteManageTypes),\n }\n})\nexport class TournamentSettings extends BaseModel {\n private _substituteManageMode: SubstituteManageTypes;\n\n id: number;\n gender: TournamentGender;\n birthYearFrom: number;\n birthYearTo: number;\n maxTeamPlayers: number;\n maxGamePlayers: number;\n type: TournamentTypes;\n toursCount: number;\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n gameType: string;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n gameUpToScore: number;\n volleyballScoreInSet: number;\n volleyballScoreInLastSet: number;\n manageTeamApplication: boolean;\n recruitmentIsOpen: boolean;\n transferIsOpen: boolean;\n basketballStatisticType: BasketballStatisticTypes;\n volleyballStatisticType: VolleyballStatisticTypes;\n rugbyStatisticType: RugbyStatisticTypes;\n waterpoloStatisticType: WaterpoloStatisticTypes;\n wrestballStatisticType: WrestballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n withResultTable: boolean;\n freeSubstituteEnabled: boolean;\n bonusPointsEnabled: boolean;\n substituteManageEnabled: boolean;\n minorPenaltyTime: number;\n majorPenaltyTime: number;\n misconductPenaltyTime: number;\n gameMisconductPenaltyTime: number;\n matchPenaltyTime: number;\n timerType: TimerTypes;\n hideOnLeagueMainPage: boolean;\n wrestlerScrumsCount: number;\n wrestlersCount: number;\n\n get substituteManageMode(): SubstituteManageTypes {\n if (this._substituteManageMode) {\n return this._substituteManageMode;\n }\n if (this.substituteManageEnabled) {\n return SubstituteManageTypes.split_screen;\n }\n return SubstituteManageTypes.goalkeeper_only;\n }\n\n set substituteManageMode(value: SubstituteManageTypes) {\n this._substituteManageMode = value;\n }\n\n get genderTitle(): string {\n const yearDiff = new Date().getFullYear() - this.birthYearFrom;\n if (this.gender === TournamentGender.male) {\n if (yearDiff < 15) {\n return 'Мальчики';\n }\n if (yearDiff < 21) {\n return 'Юноши';\n }\n return 'Мужчины';\n }\n if (this.gender === TournamentGender.female) {\n if (yearDiff < 15) {\n return 'Девочки';\n }\n if (yearDiff < 21) {\n return 'Девушки';\n }\n return 'Женщины';\n }\n return 'Смешанный';\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n tournament_id: 'tournamentId',\n name: 'name',\n logo: 'logo',\n team: 'team',\n points: 'points',\n },\n relation: {\n logo: File,\n team: Team,\n }\n})\nexport class TournamentTeamWinner extends BaseModel {\n id: number;\n teamId: number;\n tournamentId: number;\n name: string;\n logo: File;\n team: Team;\n points: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'alias',\n logo: 'logo',\n cover: 'cover',\n cover_mobile: 'coverMobile',\n preview_image: 'previewImage',\n city: 'city',\n sport: 'sport',\n location: 'location',\n description: 'description',\n date: 'date',\n date_end: 'dateEnd',\n price: 'price',\n regulation_files: 'regulationFiles',\n settings: 'settings',\n league: 'league',\n teams_count: 'teamsCount',\n closest_game_datetime: 'closestGameDatetime',\n status: 'status',\n team_winner: 'teamWinner',\n team_second: 'teamSecond',\n team_third: 'teamThird',\n season: 'season',\n season_id: 'seasonId',\n game_price: 'gamePrice',\n season_tournament_id: 'seasonTournamentId',\n sort: 'sort',\n },\n relation: {\n logo: File,\n cover: File,\n coverMobile: File,\n previewImage: File,\n city: City,\n sport: Sport,\n regulationFile: File,\n settings: TournamentSettings,\n date: DateTimeField,\n dateEnd: DateTimeField,\n league: League,\n status: enumField(TournamentStatuses),\n teamWinner: TournamentTeamWinner,\n teamSecond: TournamentTeamWinner,\n teamThird: TournamentTeamWinner,\n season: TournamentSeason,\n }\n})\nexport class Tournament extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n coverMobile: File;\n previewImage: File;\n city: City;\n sport: Sport;\n location: string;\n description: string;\n date: Date;\n dateEnd: Date;\n price: number;\n regulationFiles: File[];\n settings: TournamentSettings;\n league: League;\n teamsCount: number;\n closestGameDatetime: string;\n status: TournamentStatuses;\n teamWinner: TournamentTeamWinner;\n teamSecond: TournamentTeamWinner;\n teamThird: TournamentTeamWinner;\n season: TournamentSeason;\n seasonId: number;\n gamePrice: number;\n seasonTournamentId: number;\n sort: number;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n if (this.sport.isHandball()) {\n classList.push('empty-logo-handball');\n }\n if (this.sport.isRugby()) {\n classList.push('empty-logo-rugby');\n }\n if (this.sport.isWaterpolo()) {\n classList.push('empty-logo-waterpolo');\n }\n return classList.join(' ');\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { BasketballStatisticTypes, GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n game_up_to_score: 'gameUpToScore',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_score: 'overtimeScore',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n statistic_type: 'statisticType',\n shot_clock_enabled: 'shotClockEnabled',\n game_time_type: 'gameTimeType',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n statisticType: enumField(BasketballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class BasketballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n gameUpToScore: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n statisticType: BasketballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n timerType: TimerTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { VolleyballStatisticTypes } from './tournament';\n\nexport enum VolleyballGameTypes {\n best_of_five = 1,\n best_of_three\n}\n\n@ModelInstance({\n mappingFields: {\n game_type: 'gameType',\n timeout_count: 'timeoutCount',\n timeout_time: 'timeoutTime',\n substitute_count: 'substituteCount',\n score_in_set: 'scoreInSet',\n score_in_last_set: 'scoreInLastSet',\n statistic_type: 'statisticType',\n libero_user_ids: 'liberoUserIds',\n },\n relation: {\n gameType: enumField(VolleyballGameTypes),\n statisticType: enumField(VolleyballStatisticTypes),\n }\n})\nexport class VolleyballGameConfig extends BaseModel {\n gameType: VolleyballGameTypes;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n scoreInSet: number;\n scoreInLastSet: number;\n statisticType: VolleyballStatisticTypes;\n liberoUserIds: number[];\n\n get setsCount(): number {\n return this.gameType === VolleyballGameTypes.best_of_three ? 3 : 5;\n }\n\n getSetMaxScore(set: number) {\n return set === this.setsCount ? this.scoreInLastSet : this.scoreInSet;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n address: 'address',\n league_id: 'leagueId',\n active_games_count: 'activeGamesCount',\n }\n})\nexport class LeagueCourt extends BaseModel {\n id: number;\n name: string;\n address: string;\n leagueId: number;\n activeGamesCount: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n original_photo: 'originalPhoto',\n list_photo: 'listPhoto',\n detail_photo: 'detailPhoto',\n game: 'game',\n tournament: 'tournament',\n game_id: 'gameId',\n tournament_id: 'tournament_id',\n video_url: 'videoUrl',\n video_preview: 'videoPreview',\n is_live: 'isLive',\n },\n relation: {\n originalPhoto: File,\n listPhoto: File,\n detailPhoto: File,\n videoPreview: File\n }\n})\nexport class MediaItem extends BaseModel {\n id: number;\n originalPhoto: File;\n listPhoto: File;\n detailPhoto: File;\n gameId: number;\n tournamentId: number;\n videoUrl: string;\n videoPreview: File;\n isLive: boolean;\n\n get isVideo(): boolean {\n return Boolean(this.videoUrl);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n substitute_manage_enabled: 'substituteManageEnabled',\n minor_penalty_time: 'minorPenaltyTime',\n major_penalty_time: 'majorPenaltyTime',\n misconduct_penalty_time: 'misconductPenaltyTime',\n game_misconduct_penalty_time: 'gameMisconductPenaltyTime',\n match_penalty_time: 'matchPenaltyTime',\n playoff_series_overtime_type: 'playoffSeriesOvertimeType',\n playoff_series_overtime_time: 'playoffSeriesOvertimeTime',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n playoffSeriesOvertimeType: enumField(OvertimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class HockeyGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteManageEnabled: boolean;\n minorPenaltyTime: number;\n majorPenaltyTime: number;\n misconductPenaltyTime: number;\n gameMisconductPenaltyTime: number;\n matchPenaltyTime: number;\n playoffSeriesOvertimeType: OvertimeTypes;\n playoffSeriesOvertimeTime: number;\n timerType: TimerTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get overtimePeriod(): number {\n return this.periodsCount + 1;\n }\n\n get bullitsPeriod(): number {\n return this.periodsCount + 2;\n }\n\n get playoffBullitsPeriod(): number {\n if (this.playoffSeriesOvertimeType === OvertimeTypes.to_first_goal_and_bullitts) {\n return this.periodsCount + 4;\n } else {\n return this.periodsCount + 3;\n }\n }\n\n get playoffOvertimePeriod(): number {\n if (this.playoffSeriesOvertimeType === OvertimeTypes.to_first_goal_and_bullitts) {\n return this.periodsCount + 3;\n } else {\n return null;\n }\n }\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_periods: 'overtimePeriods',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n substitute_count: 'substituteCount',\n free_substitute_enabled: 'freeSubstituteEnabled',\n substitute_manage_enabled: 'substituteManageEnabled',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class FootballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimePeriods: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteCount: number;\n freeSubstituteEnabled: boolean;\n substituteManageEnabled: boolean;\n timerType: TimerTypes;\n\n get penaltyPeriod(): number {\n if (this.overtimeType !== OvertimeTypes.time_and_penalties) {\n return +this.periodsCount + 1;\n }\n return +this.periodsCount + this.overtimePeriods + 1;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n substitute_manage_enabled: 'substituteManageEnabled',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class HandballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteManageEnabled: boolean;\n timerType: TimerTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","export function generateArray(length: number): number[] {\n if (+length <= 0) {\n return [];\n }\n return Array.apply(null, Array(length)).map((_, i) => i + 1);\n}\n\nexport function getArrayChunks(array: any[], length: number): any[][] {\n const chunks = [];\n const chunkLength = Math.ceil(array.length / length);\n if (chunkLength === 0) {\n return [array];\n }\n for (let i = 0; i < chunkLength; i++) {\n chunks.push(array.slice(i * length, (i + 1) * length));\n }\n return chunks;\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { generateArray } from '../utils/array';\n\nexport enum PlayoffTypes {\n double_elimination = 'double_elimination',\n elimination = 'elimination'\n}\n\n@ModelInstance({\n mappingFields: {\n rounds: 'rounds',\n final_rounds: 'finalRounds',\n third_place_rounds: 'thirdPlaceRounds',\n loser_final_rounds: 'loserFinalRounds',\n teams_count: 'teamsCount',\n type: 'type',\n min_player_games_count: 'minPlayerGamesCount',\n min_player_time: 'minPlayerTime',\n },\n relation: {\n type: enumField(PlayoffTypes)\n }\n})\nexport class PlayoffSettings extends BaseModel {\n rounds: number;\n finalRounds: number;\n thirdPlaceRounds: number;\n loserFinalRounds: number;\n teamsCount: number;\n type: PlayoffTypes;\n minPlayerGamesCount: number;\n minPlayerTime: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n settings: 'settings',\n tournament_id: 'tournamentId',\n tournament_stage_id: 'tournamentStageId',\n is_official: 'isOfficial',\n tournament_round_id: 'tournamentRoundId',\n division_id: 'divisionId',\n winner_place: 'winnerPlace',\n },\n relation: {\n settings: PlayoffSettings\n }\n})\nexport class Playoff extends BaseModel {\n id: number;\n name: string;\n settings: PlayoffSettings;\n tournamentId: number;\n tournamentStageId: number;\n isOfficial: boolean;\n tournamentRoundId: number;\n divisionId: number;\n winnerPlace: number;\n private stages: {title: string, value: number}[] = [];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get stagesCount(): number {\n return Math.log(this.settings.teamsCount) / Math.log(2);\n }\n\n getPlayoffStages() {\n if (this.stages.length === 0 && this.settings.teamsCount) {\n const stagesCount = Math.log(this.settings.teamsCount) / Math.log(2);\n this.stages = generateArray(stagesCount).map(stage => {\n const playoffStage = this.settings.teamsCount / 2 ** stage;\n let title = '';\n if (playoffStage === 1) {\n title = 'Финал';\n } else {\n title = `1 / ${playoffStage}`;\n }\n return {\n value: stage,\n title\n };\n });\n }\n return this.stages;\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentTeam } from './tournament-team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n sort: 'sort',\n tournament_stage_id: 'tournamentStageId',\n tournament_round_id: 'tournamentRoundId',\n division_id: 'divisionId',\n }\n})\nexport class TournamentGroup extends BaseModel {\n id: number;\n name: string;\n sort: number;\n tournamentStageId: number;\n tournamentRoundId: number;\n divisionId: number;\n teams: TournamentTeam[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { GameTimeTypes, OvertimeTypes, RugbyStatisticTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_periods: 'overtimePeriods',\n max_game_players: 'maxGamePlayers',\n game_time_type: 'gameTimeType',\n substitute_count: 'substituteCount',\n free_substitute_enabled: 'freeSubstituteEnabled',\n statistic_type: 'statisticType',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n statisticType: enumField(RugbyStatisticTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class RugbyGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimePeriods: number;\n maxGamePlayers: number;\n gameTimeType: GameTimeTypes;\n substituteCount: number;\n freeSubstituteEnabled: boolean;\n statisticType: RugbyStatisticTypes;\n timerType: TimerTypes;\n\n get penaltyPeriod(): number {\n if (this.overtimeType !== OvertimeTypes.time_and_penalties) {\n return +this.periodsCount + 1;\n }\n return +this.periodsCount + this.overtimePeriods + 1;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes, TimerTypes, WaterpoloStatisticTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n substitute_manage_enabled: 'substituteManageEnabled',\n shot_clock_enabled: 'shotClockEnabled',\n statistic_type: 'statisticType',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n statisticType: enumField(WaterpoloStatisticTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class WaterpoloGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteManageEnabled: boolean;\n shotClockEnabled: boolean;\n statisticType: WaterpoloStatisticTypes;\n timerType: TimerTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get overtimePeriod(): number {\n return this.periodsCount + 1;\n }\n\n get bullitsPeriod(): number {\n return this.periodsCount + 2;\n }\n\n get playoffBullitsPeriod(): number {\n return this.periodsCount + 3;\n }\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { WrestballStatisticTypes, GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n game_up_to_score: 'gameUpToScore',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_score: 'overtimeScore',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n statistic_type: 'statisticType',\n shot_clock_enabled: 'shotClockEnabled',\n game_time_type: 'gameTimeType',\n timer_type: 'timerType',\n wrestler_scrums_count: 'wrestlerScrumsCount',\n wrestlers_count: 'wrestlersCount',\n wrestler_user_ids: 'wrestlerUserIds',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n statisticType: enumField(WrestballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class WrestballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n gameUpToScore: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n statisticType: WrestballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n timerType: TimerTypes;\n wrestlerScrumsCount: number;\n wrestlersCount: number;\n wrestlerUserIds: number[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField, listField } from './util';\nimport { Team } from './team';\nimport { BasketballGameConfig } from './basketball-game-config';\nimport { VolleyballGameConfig } from './volleyball-game-config';\nimport { LeagueCourt } from './league-court';\nimport { MediaItem } from './media-item';\nimport { HockeyGameConfig } from './hockey-game-config';\nimport { Tournament } from './tournament';\nimport { FootballGameConfig } from './football-game-config';\nimport { HandballGameConfig } from './handball-game-config';\nimport { Playoff } from './playoff';\nimport { TournamentGroup } from './tournament-group';\nimport { File } from './file';\nimport { RugbyGameConfig } from './rugby-game-config';\nimport { WaterpoloGameConfig } from './waterpolo-game-config';\nimport { Sport } from './sport';\nimport { WrestballGameConfig } from './wrestball-game-config';\n\nexport enum GameStatuses {\n open = 1,\n in_progress,\n closed,\n archived,\n draft\n}\n\nexport enum GameResultTypes {\n team_won = 1,\n competitor_team_won,\n team_technical_defeat,\n competitor_team_technical_defeat,\n draw\n}\n\n@ModelInstance({\n mappingFields: {\n mhl_carousel: 'mhlCarousel',\n }\n})\nexport class GameAdditionalData {\n mhlCarousel: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n nickname: 'nickname',\n color: 'color',\n }\n})\nexport class GameTeamAdditionalData {\n nickname: string;\n color: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n logo: 'logo',\n additional_data: 'additionalData',\n },\n relation: {\n logo: File,\n additionalData: GameTeamAdditionalData,\n }\n})\nexport class TournamentTeamShort extends BaseModel {\n id: number;\n name: string;\n logo: File;\n additionalData: GameTeamAdditionalData;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n tournament_team: 'tournamentTeam',\n score: 'score',\n score_by_period: 'scoreByPeriod',\n game_ids: 'gameIds',\n },\n relation: {\n team: Team,\n tournamentTeam: TournamentTeamShort,\n }\n})\nexport class MhlCarouselTeam extends BaseModel {\n team: Team;\n tournamentTeam: TournamentTeamShort;\n score: number;\n scoreByPeriod: {[key: string]: number};\n gameIds: number[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game_ids: 'gameIds',\n winner_team_id: 'winnerTeamId',\n teams: 'teams',\n },\n relation: {\n teams: listField(MhlCarouselTeam),\n }\n})\nexport class MhlCarousel extends BaseModel {\n id: string;\n gameIds: number[];\n winnerTeamId: number;\n teams: MhlCarouselTeam[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n status: 'status',\n team: 'team',\n tournament_team: 'tournamentTeam',\n tournament_team_id: 'tournamentTeamId',\n team_id: 'teamId',\n competitor_team: 'competitorTeam',\n competitor_tournament_team: 'competitorTournamentTeam',\n competitor_tournament_team_id: 'competitorTournamentTeamId',\n competitor_team_id: 'competitorTeamId',\n competitor_team_name: 'competitorTeamName',\n datetime: 'datetime',\n location: 'location',\n team_score: 'teamScore',\n competitor_team_score: 'competitorTeamScore',\n result_type: 'resultType',\n playoff_number: 'playoffNumber',\n tournament_id: 'tournamentId',\n tournament_tour: 'tournamentTour',\n game_config: 'gameConfig',\n basketball_game_config: 'basketballGameConfig',\n volleyball_game_config: 'volleyballGameConfig',\n hockey_game_config: 'hockeyGameConfig',\n football_game_config: 'footballGameConfig',\n handball_game_config: 'handballGameConfig',\n rugby_game_config: 'rugbyGameConfig',\n waterpolo_game_config: 'waterpoloGameConfig',\n wrestball_game_config: 'wrestballGameConfig',\n score_by_period: 'scoreByPeriod',\n playoff_stage: 'playoffStage',\n playoff_round: 'playoffRound',\n tournament_stage_id: 'tournamentStageId',\n tournament_playoff_id: 'tournamentPlayoffId',\n tournament_playoff: 'tournamentPlayoff',\n tournament_court: 'tournamentCourt',\n media_count: 'mediaCount',\n media_live_count: 'mediaLiveCount',\n media: 'media',\n tournament: 'tournament',\n tournament_group: 'tournamentGroup',\n additional_data: 'additionalData',\n mhl_carousel: 'mhlCarousel',\n },\n relation: {\n status: enumField(GameStatuses),\n team: Team,\n tournamentTeam: TournamentTeamShort,\n competitorTeam: Team,\n competitorTournamentTeam: TournamentTeamShort,\n datetime: DateTimeField,\n resultType: enumField(GameResultTypes),\n basketballGameConfig: BasketballGameConfig,\n volleyballGameConfig: VolleyballGameConfig,\n hockeyGameConfig: HockeyGameConfig,\n footballGameConfig: FootballGameConfig,\n handballGameConfig: HandballGameConfig,\n rugbyGameConfig: RugbyGameConfig,\n waterpoloGameConfig: WaterpoloGameConfig,\n wrestballGameConfig: WrestballGameConfig,\n tournamentPlayoff: Playoff,\n tournamentCourt: LeagueCourt,\n media: listField(MediaItem),\n tournament: Tournament,\n tournamentGroup: TournamentGroup,\n additionalData: GameAdditionalData,\n mhlCarousel: MhlCarousel,\n }\n})\nexport class Game extends BaseModel {\n private _basketballGameConfig: BasketballGameConfig;\n private _volleyballGameConfig: VolleyballGameConfig;\n private _hockeyGameConfig: HockeyGameConfig;\n private _footballGameConfig: FootballGameConfig;\n private _handballGameConfig: HandballGameConfig;\n private _rugbyGameConfig: RugbyGameConfig;\n private _waterpoloGameConfig: WaterpoloGameConfig;\n private _wrestballGameConfig: WrestballGameConfig;\n\n id: number;\n status: GameStatuses;\n team: Team;\n tournamentTeam: TournamentTeamShort;\n teamId: number;\n tournamentTeamId: number;\n competitorTeam: Team;\n competitorTournamentTeam: TournamentTeamShort;\n competitorTeamId: number;\n competitorTournamentTeamId: number;\n competitorTeamName: string;\n gameConfig: any;\n datetime: Date;\n location: string;\n teamScore: number;\n competitorTeamScore: number;\n resultType: GameResultTypes;\n playoffNumber: string;\n tournamentId: number;\n tournamentTour: number;\n scoreByPeriod: any;\n playoffStage: string;\n playoffRound: number;\n tournamentStageId: number;\n tournamentPlayoffId: number;\n tournamentPlayoff: Playoff;\n tournamentCourt: LeagueCourt;\n mediaCount: number;\n mediaLiveCount: number;\n media: MediaItem[];\n tournament: Tournament;\n tournamentGroup: TournamentGroup;\n additionalData: GameAdditionalData;\n mhlCarousel: MhlCarousel;\n\n get basketballGameConfig(): BasketballGameConfig {\n if (this._basketballGameConfig && this._basketballGameConfig.periodsCount) {\n return this._basketballGameConfig;\n }\n if (this.gameConfig) {\n this._basketballGameConfig = BasketballGameConfig.toFront(this.gameConfig);\n }\n return this._basketballGameConfig;\n }\n\n set basketballGameConfig(value) {\n this._basketballGameConfig = value;\n }\n\n get volleyballGameConfig(): VolleyballGameConfig {\n if (this._volleyballGameConfig && this._volleyballGameConfig.setsCount) {\n return this._volleyballGameConfig;\n }\n if (this.gameConfig) {\n this._volleyballGameConfig = VolleyballGameConfig.toFront(this.gameConfig);\n }\n return this._volleyballGameConfig;\n }\n\n set volleyballGameConfig(value) {\n this._volleyballGameConfig = value;\n }\n\n get hockeyGameConfig(): HockeyGameConfig {\n if (this._hockeyGameConfig && this._hockeyGameConfig.periodsCount) {\n return this._hockeyGameConfig;\n }\n if (this.gameConfig) {\n this._hockeyGameConfig = HockeyGameConfig.toFront(this.gameConfig);\n }\n return this._hockeyGameConfig;\n }\n\n set hockeyGameConfig(value) {\n this._hockeyGameConfig = value;\n }\n\n get handballGameConfig(): HandballGameConfig {\n if (this._handballGameConfig && this._handballGameConfig.periodsCount) {\n return this._handballGameConfig;\n }\n if (this.gameConfig) {\n this._handballGameConfig = HandballGameConfig.toFront(this.gameConfig);\n }\n return this._handballGameConfig;\n }\n\n set handballGameConfig(value) {\n this._handballGameConfig = value;\n }\n\n get footballGameConfig(): FootballGameConfig {\n if (this._footballGameConfig && this._footballGameConfig.periodsCount) {\n return this._footballGameConfig;\n }\n if (this.gameConfig) {\n this._footballGameConfig = FootballGameConfig.toFront(this.gameConfig);\n }\n return this._footballGameConfig;\n }\n\n set footballGameConfig(value) {\n this._footballGameConfig = value;\n }\n\n get rugbyGameConfig(): RugbyGameConfig {\n if (this._rugbyGameConfig && this._rugbyGameConfig.periodsCount) {\n return this._rugbyGameConfig;\n }\n if (this.gameConfig) {\n this._rugbyGameConfig = RugbyGameConfig.toFront(this.gameConfig);\n }\n return this._rugbyGameConfig;\n }\n\n set rugbyGameConfig(value) {\n this._rugbyGameConfig = value;\n }\n\n get waterpoloGameConfig(): WaterpoloGameConfig {\n if (this._waterpoloGameConfig && this._waterpoloGameConfig.periodsCount) {\n return this._waterpoloGameConfig;\n }\n if (this.gameConfig) {\n this._waterpoloGameConfig = WaterpoloGameConfig.toFront(this.gameConfig);\n }\n return this._waterpoloGameConfig;\n }\n\n set waterpoloGameConfig(value) {\n this._waterpoloGameConfig = value;\n }\n\n get wrestballGameConfig(): WrestballGameConfig {\n if (this._wrestballGameConfig && this._wrestballGameConfig.periodsCount) {\n return this._wrestballGameConfig;\n }\n if (this.gameConfig) {\n this._wrestballGameConfig = WrestballGameConfig.toFront(this.gameConfig);\n }\n return this._wrestballGameConfig;\n }\n\n set wrestballGameConfig(value) {\n this._wrestballGameConfig = value;\n }\n\n get scoreByPeriodList(): {period: number, teamScore: number, competitorTeamScore: number}[] {\n if (!this.scoreByPeriod) {\n return [];\n }\n return Object.keys(this.scoreByPeriod).map(period => ({\n period: +period,\n teamScore: this.scoreByPeriod[period][0],\n competitorTeamScore: this.scoreByPeriod[period][1]\n }));\n }\n\n get isClosed(): boolean {\n return this.status === GameStatuses.closed;\n }\n\n get isTeamWon() {\n return [GameResultTypes.team_won, GameResultTypes.competitor_team_technical_defeat].includes(this.resultType);\n }\n\n get isCompetitorTeamWon() {\n return [GameResultTypes.competitor_team_won, GameResultTypes.team_technical_defeat].includes(this.resultType);\n }\n\n get teamWinnerId() {\n if (!this.isClosed) {\n return null;\n }\n if (this.isTeamWon) {\n return this.team.id || this.teamId;\n }\n if (this.isCompetitorTeamWon) {\n return this.competitorTeam.id || this.competitorTeamId;\n }\n return null;\n }\n\n get teamLoserId() {\n if (!this.isClosed) {\n return null;\n }\n if (this.isTeamWon) {\n return this.competitorTeam.id || this.competitorTeamId;\n }\n if (this.isCompetitorTeamWon) {\n return this.team.id || this.teamId;\n }\n return null;\n }\n\n get sport(): Sport {\n if (this.tournament?.sport?.id) {\n return this.tournament.sport;\n }\n if (this.team?.sport?.id) {\n return this.team.sport;\n }\n if (this.competitorTeam?.sport?.id) {\n return this.competitorTeam.sport;\n }\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","export function updateItemInArray(data: any[], item: any, force = false, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return data;\n }\n return data.map(v => {\n if (checkFunction && isFunction(checkFunction)) {\n if (!checkFunction(v)) {\n return v;\n }\n } else if (v.id !== item.id) {\n return v;\n }\n if (v.updatedAt && item.updatedAt && !force) {\n return v.updatedAt > item.updatedAt ? v : item;\n }\n return item;\n });\n}\n\nexport function updateItemsInArray(data: any[], items: any[], force: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n items.forEach(item => {\n data = updateItemInArray(data, item, force, checkFunction);\n });\n return data;\n}\n\nexport function patchItemInArray(data: any[], item: any, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return data;\n }\n return data.map(v => {\n if (checkFunction && isFunction(checkFunction)) {\n if (!checkFunction(v)) {\n return v;\n }\n } else if (v.id !== item.id) {\n return v;\n }\n return Object.assign(v, item);\n });\n}\n\nexport function addItemInArray(data: any[], item: any, atEnd: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return [item];\n }\n if (data.find(i => isFunction(checkFunction) ? checkFunction(i) : i.id === item.id)) {\n return data;\n }\n\n return atEnd\n ? [...data, item]\n : [item, ...data];\n}\n\nexport function addItemsInArray(data: any[], items: any[], atEnd: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n (!atEnd\n ? Object.assign([], items).reverse()\n : items\n ).forEach(item => {\n data = addItemInArray(data, item, atEnd, checkFunction);\n });\n return data;\n}\n\nexport function deleteItemFromArray(data: any[], item: any): any[] {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isFunction(item)) {\n return data.filter(i => !item(i));\n } else {\n return data.filter(v => v.id !== item.id);\n }\n}\n\nfunction isFunction(functionToCheck) {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { addItemInArray, addItemsInArray, deleteItemFromArray, updateItemInArray, updateItemsInArray } from '../utils/data';\nimport { StorageEngine } from './storage-engine';\n\nexport class Store {\n private data: {[key: string]: BehaviorSubject<any>} = {};\n\n constructor(private engine?: StorageEngine) {\n }\n\n get(key: string, defaultValue?: any): Observable<any> {\n return this.getSubject(key).pipe(\n map(item => item === undefined ? defaultValue : item),\n filter(item => item !== undefined)\n );\n }\n\n value(key: string, defaultValue?: any): any {\n return this.getSubject(key).value === undefined ? defaultValue : this.getSubject(key).value;\n }\n\n save(key: string, value: any): void {\n this.getSubject(key).next(value);\n if (this.engine) {\n this.engine.save(key, value);\n }\n }\n\n appendItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, true, checkFunction));\n }\n\n appendItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, true));\n }\n\n prependItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n prependItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n updateItem(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n updateItems(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemsInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n deleteItem(key: string, value: any): void {\n this.save(key, deleteItemFromArray(this.value(key) || [], value));\n }\n\n dispose(): void {\n for (const key of Object.keys(this.data)) {\n this.data[key].complete();\n delete this.data[key];\n }\n }\n\n clearStorageData(): void {\n if (this.engine) {\n this.engine.clear();\n }\n }\n\n getEngine(): StorageEngine {\n return this.engine;\n }\n\n private getSubject(key: string): BehaviorSubject<any> {\n if (!this.data[key]) {\n this.data[key] = new BehaviorSubject<any>(this.engine ? this.engine.get(key) : undefined);\n }\n return this.data[key];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '../storage/store';\n\n@Injectable({providedIn: 'root'})\nexport class BaseService {\n protected store = new Store();\n\n dispose(): void {\n this.store.dispose();\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { BaseService } from './base.service';\n\nconst CONFIG_STORE_KEY = 'config';\n\nexport const CONFIG_DATA = 'mtg-core-config-data';\n\n@Injectable({providedIn: 'root'})\nexport class ConfigService extends BaseService {\n constructor(\n @Optional() @Inject(CONFIG_DATA) private configData: any\n ) {\n super();\n if (configData) {\n this.initialize(configData);\n }\n }\n\n get config$() {\n return this.store.get(CONFIG_STORE_KEY);\n }\n\n get config() {\n return this.store.value(CONFIG_STORE_KEY) || {};\n }\n\n initialize(data: any): void {\n this.store.save(CONFIG_STORE_KEY, data);\n }\n\n set(key: string, value: any): void {\n this.store.save(CONFIG_STORE_KEY, {\n ...this.config,\n [key]: value\n });\n }\n\n get(key: string): any {\n return this.store.value(CONFIG_STORE_KEY) && this.store.value(CONFIG_STORE_KEY)[key];\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n cover: 'cover',\n },\n relation: {\n cover: File\n }\n})\nexport class TournamentDivision extends BaseModel {\n id: number;\n name: string;\n cover: File;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel } from './util';\nimport { File } from './file';\n\nexport class LeagueFieldBaseValue extends BaseModel {\n id: number;\n value: string;\n file: File;\n valueText: string;\n}\n","import { BaseModel } from './util';\n\nexport enum LeagueFieldTypes {\n text = 1,\n select,\n file,\n}\n\nexport class LeagueFieldBase extends BaseModel {\n private _variantsMapping = {};\n private _variants = [];\n\n id: number;\n leagueId: number;\n name: string;\n type: LeagueFieldTypes;\n isMultiple: boolean;\n sort: number;\n\n set variants(value: { uuid: string, name: string }[]) {\n this._variants = value;\n this._variantsMapping = value.reduce((acc, item) => ({\n ...acc,\n [item.uuid]: item.name\n }), {});\n }\n\n get variants(): {uuid: string, name: string}[] {\n return this._variants;\n }\n\n getName(uuid: string): string {\n return this._variantsMapping[uuid];\n }\n}\n","import { LeagueFieldBase, LeagueFieldTypes } from './league-field-base';\nimport { enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_id: 'leagueId',\n name: 'name',\n type: 'type',\n is_multiple: 'isMultiple',\n variants: 'variants',\n sort: 'sort',\n },\n relation: {\n type: enumField(LeagueFieldTypes)\n }\n})\nexport class LeagueTeamField extends LeagueFieldBase {\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { LeagueFieldBaseValue } from './league-field-base-value';\nimport { ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\nimport { LeagueTeamField } from './league-team-field';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_team_field_id: 'leagueTeamFieldId',\n league_team_field: 'leagueTeamField',\n value: 'value',\n file: 'file',\n value_text: 'valueText',\n },\n relation: {\n file: File,\n leagueTeamField: LeagueTeamField,\n }\n})\nexport class TournamentTeamFieldValue extends LeagueFieldBaseValue {\n leagueTeamFieldId: number;\n leagueTeamField: LeagueTeamField;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { Team } from './team';\nimport { TournamentGroup } from './tournament-group';\nimport { Game } from './game';\nimport { Tournament } from './tournament';\nimport { File } from './file';\nimport { TournamentDivision } from './tournament-division';\nimport { TournamentTeamFieldValue } from './tournament-team-field-value';\n\n@ModelInstance({\n mappingFields: {\n nickname: 'nickname',\n color: 'color',\n }\n})\nexport class TeamAdditionalData {\n nickname: string;\n color: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n logo: 'logo',\n team_photo: 'teamPhoto',\n team_uniform: 'teamUniform',\n team_id: 'teamId',\n tournament_id: 'tournamentId',\n tournament: 'tournament',\n team: 'team',\n group: 'group',\n division: 'division',\n final_standing: 'finalStanding',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n draw_games_count: 'drawGamesCount',\n lose_games_count: 'loseGamesCount',\n last_games_count: 'lastGamesCount',\n last_games_won: 'lastGamesWon',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n score_points_sum: 'scorePointsSum',\n missed_points_sum: 'missedPointsSum',\n best_score_diff: 'bestScoreDiff',\n best_score_points_diff: 'bestScorePointsDiff',\n buchholz_score: 'buchholzScore',\n points: 'points',\n mt_points: 'mtPoints',\n users_count: 'usersCount',\n games: 'games',\n notifications_count: 'notificationsCount',\n win_normal_time_games_count: 'winNormalTimeGamesCount',\n lose_normal_time_games_count: 'loseNormalTimeGamesCount',\n win_overtime_games_count: 'winOvertimeGamesCount',\n lose_overtime_games_count: 'loseOvertimeGamesCount',\n last_five_games: 'lastFiveGames',\n tries_scored: 'triesScored',\n tries_missed: 'triesMissed',\n attack_bonuses: 'attackBonuses',\n defense_bonuses: 'defenseBonuses',\n team_additional_data: 'teamAdditionalData',\n field_values: 'fieldValues',\n },\n relation: {\n logo: File,\n teamPhoto: File,\n teamUniform: File,\n tournament: Tournament,\n team: Team,\n group: TournamentGroup,\n games: Game,\n lastFiveGames: Game,\n division: TournamentDivision,\n teamAdditionalData: TeamAdditionalData,\n fieldValues: listField(TournamentTeamFieldValue),\n }\n})\nexport class TournamentTeam extends BaseModel {\n id: number;\n name: string;\n logo: File;\n teamPhoto: File;\n teamUniform: File;\n teamId: number;\n tournamentId: number;\n tournament: Tournament;\n team: Team;\n group: TournamentGroup;\n division: TournamentDivision;\n teamAdditionalData: TeamAdditionalData;\n finalStanding: number;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n lastGamesCount: number;\n lastGamesWon: number;\n scoreSum: number;\n missedSum: number;\n scorePointsSum: number;\n missedPointsSum: number;\n bestScoreDiff: number;\n bestScorePointsDiff: number;\n buchholzScore: number;\n points: number;\n mtPoints: number;\n usersCount: number;\n games: Game[];\n notificationsCount: number;\n winNormalTimeGamesCount: number;\n loseNormalTimeGamesCount: number;\n winOvertimeGamesCount: number;\n loseOvertimeGamesCount: number;\n lastFiveGames: Game[];\n triesScored: number;\n triesMissed: number;\n attackBonuses: number;\n defenseBonuses: number;\n fieldValues: TournamentTeamFieldValue[];\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\nexport enum TeamUserRole {\n member = 1,\n moderator,\n admin,\n coach,\n head_coach,\n playing_coach,\n manager,\n head_manager,\n captain,\n assistant,\n president,\n vice_president,\n press_attache,\n executive,\n senior_coach,\n assistant_coach,\n serviceman,\n game_application_manager,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n user: 'user',\n role: 'role',\n number: 'number',\n team: 'team',\n },\n relation: {\n user: User,\n team: Team,\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamUser extends BaseModel {\n id: number;\n teamId: number;\n user: User;\n team: Team;\n number: number;\n role: TeamUserRole;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(teamPlayer: TeamUser): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team_user_id: 'tournamentTeamUserId',\n date_from: 'dateFrom',\n date_to: 'dateTo',\n matches_count: 'matchesCount',\n reason: 'reason',\n is_conditional: 'isConditional',\n },\n relation: {\n dateFrom: DateField,\n dateTo: DateField,\n }\n})\nexport class TournamentDisqualification extends BaseModel {\n id: number;\n tournamentTeamUserId: number;\n dateFrom: Date;\n dateTo: Date;\n matchesCount: number;\n reason: string;\n isConditional: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { LeagueFieldBase, LeagueFieldTypes } from './league-field-base';\nimport { enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_id: 'leagueId',\n name: 'name',\n type: 'type',\n is_multiple: 'isMultiple',\n variants: 'variants',\n sort: 'sort',\n },\n relation: {\n type: enumField(LeagueFieldTypes)\n }\n})\nexport class LeaguePlayerField extends LeagueFieldBase {\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { LeagueFieldBaseValue } from './league-field-base-value';\nimport { ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\nimport { LeaguePlayerField } from './league-player-field';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_player_field_id: 'leaguePlayerFieldId',\n league_player_field: 'leaguePlayerField',\n value: 'value',\n file: 'file',\n value_text: 'valueText',\n },\n relation: {\n file: File,\n leaguePlayerField: LeaguePlayerField\n }\n})\nexport class LeaguePlayerFieldValue extends LeagueFieldBaseValue {\n leaguePlayerFieldId: number;\n leaguePlayerField: LeaguePlayerField;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","export enum Locales {\n ru = 'ru-RU',\n en = 'en-US',\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField, enumField, listField } from './util';\nimport { File } from './file';\nimport { User, UserGender } from './user';\nimport { LeaguePlayerFieldValue } from './league-player-field-value';\nimport { Locales } from '../localization/locales';\n\nexport enum Qualification {\n practician = 1,\n amateur,\n practician2,\n practician3,\n amateur2,\n theorist,\n theorist2,\n theorist3,\n sportsman,\n lider,\n master,\n profi,\n goalkeeper,\n goalkeeper2,\n goalkeeper_sh,\n goalkeeper_ul,\n goalkeeper_mhl,\n goalkeeper_vhl,\n goalkeeper_khl,\n beginner,\n junior,\n debutant,\n schoolchild,\n preschool_child\n}\n\nexport const QualificationLocalization = {\n [Locales.ru]: {\n [Qualification.practician]: 'Практик',\n [Qualification.practician2]: 'Практик 2',\n [Qualification.practician3]: 'Практик 3',\n [Qualification.amateur]: 'Любитель',\n [Qualification.amateur2]: 'Любитель 2',\n [Qualification.theorist]: 'Теоретик',\n [Qualification.theorist2]: 'Теоретик 2',\n [Qualification.theorist3]: 'Теоретик 3',\n [Qualification.sportsman]: 'Спортсмен',\n [Qualification.lider]: 'Лидер',\n [Qualification.master]: 'Мастер',\n [Qualification.profi]: 'Профи',\n [Qualification.goalkeeper]: 'Вратарь',\n [Qualification.goalkeeper2]: 'Вратарь 2',\n [Qualification.goalkeeper_sh]: 'Вратарь СШ',\n [Qualification.goalkeeper_ul]: 'Вратарь ЮЛ',\n [Qualification.goalkeeper_mhl]: 'Вратарь МХЛ',\n [Qualification.goalkeeper_vhl]: 'Вратарь ВХЛ',\n [Qualification.goalkeeper_khl]: 'Вратарь КХЛ',\n [Qualification.beginner]: 'Новичок',\n [Qualification.junior]: 'Юниор',\n [Qualification.debutant]: 'Дебютант',\n [Qualification.schoolchild]: 'Школьник',\n [Qualification.preschool_child]: 'Дошкольник',\n },\n [Locales.en]: {\n [Qualification.practician]: 'Practician',\n [Qualification.practician2]: 'Practician 2',\n [Qualification.practician3]: 'Практик 3',\n [Qualification.amateur]: 'Amateur',\n [Qualification.amateur2]: 'Amateur 2',\n [Qualification.theorist]: 'Theorist',\n [Qualification.theorist2]: 'Theorist 2',\n [Qualification.theorist3]: 'Theorist 3',\n [Qualification.sportsman]: 'Sportsman',\n [Qualification.lider]: 'Leader',\n [Qualification.master]: 'Master',\n [Qualification.profi]: 'Professional',\n [Qualification.goalkeeper]: 'Goalkeeper',\n [Qualification.goalkeeper2]: 'Goalkeeper 2',\n [Qualification.goalkeeper_sh]: 'Goalkeeper SH',\n [Qualification.goalkeeper_ul]: 'Goalkeeper UL',\n [Qualification.goalkeeper_mhl]: 'Goalkeeper MHL',\n [Qualification.goalkeeper_vhl]: 'Goalkeeper VHL',\n [Qualification.goalkeeper_khl]: 'Goalkeeper KHL',\n [Qualification.beginner]: 'Beginner',\n [Qualification.junior]: 'Junior',\n [Qualification.debutant]: 'Debutant',\n [Qualification.schoolchild]: 'Schoolchild',\n [Qualification.preschool_child]: 'Preschool child',\n }\n};\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n league_id: 'leagueId',\n first_name: 'firstName',\n last_name: 'lastName',\n middle_name: 'middleName',\n birth_date: 'birthDate',\n photo: 'photo',\n user: 'user',\n gender: 'gender',\n has_changes: 'hasChanges',\n rating: 'rating',\n qualification: 'qualification',\n field_values: 'fieldValues',\n },\n relation: {\n birthDate: DateField,\n photo: File,\n user: User,\n qualification: enumField(Qualification),\n fieldValues: listField(LeaguePlayerFieldValue),\n gender: enumField(UserGender),\n }\n})\nexport class LeaguePlayer extends BaseModel {\n id: number;\n userId: number;\n leagueId: number;\n firstName: string;\n lastName: string;\n middleName: string;\n birthDate: Date;\n photo: File;\n user: User;\n gender: UserGender;\n hasChanges: boolean;\n rating: string;\n qualification: Qualification;\n fieldValues: LeaguePlayerFieldValue[];\n\n get fullName(): string {\n return [this.lastName, this.firstName, this.middleName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n get age(): number {\n if (!this.birthDate) {\n return null;\n }\n const diff = (new Date()).getTime() - this.birthDate.getTime();\n return Math.floor(diff / (1000 * 60 * 60 * 24 * 365.25));\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { BaseModel, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_player_field_id: 'leaguePlayerFieldId',\n value: 'value',\n file: 'file',\n },\n relation: {\n file: File,\n }\n})\nexport class TournamentTeamUserFieldValue extends BaseModel {\n id: number;\n leaguePlayerFieldId: number;\n value: string;\n file: File;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TeamUser } from './team-user';\nimport { TournamentDisqualification } from './tournament-disqualification';\nimport { LeaguePlayer } from './league-player';\nimport { TournamentTeamUserFieldValue } from './tournament-team-user-field-value';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n active: 'active',\n tournament_team: 'tournamentTeam',\n team_user: 'teamUser',\n disqualified: 'disqualified',\n disqualification: 'disqualification',\n conditional_disqualification: 'conditionalDisqualification',\n league_player: 'leaguePlayer',\n games_count: 'gamesCount',\n mvp_count: 'mvpCount',\n field_values: 'fieldValues',\n },\n relation: {\n tournamentTeam: TournamentTeam,\n teamUser: TeamUser,\n disqualification: TournamentDisqualification,\n conditionalDisqualification: TournamentDisqualification,\n leaguePlayer: LeaguePlayer,\n fieldValues: listField(TournamentTeamUserFieldValue),\n }\n})\nexport class TournamentTeamUser extends BaseModel {\n id: number;\n active: boolean;\n tournamentTeam: TournamentTeam;\n teamUser: TeamUser;\n disqualified: boolean;\n disqualification: TournamentDisqualification;\n conditionalDisqualification: TournamentDisqualification;\n leaguePlayer: LeaguePlayer;\n gamesCount: number;\n mvpCount: number;\n fieldValues: TournamentTeamUserFieldValue[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n free_throws_made: 'freeThrowsMade',\n one_points_made: 'onePointsMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n two_point_percent: 'twoPointPercent',\n three_point_percent: 'threePointPercent',\n free_throw_percent: 'freeThrowPercent',\n one_point_percent: 'onePointPercent',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n technical_fouls: 'technicalFouls',\n unsportsmanlike_fouls: 'unsportsmanlikeFouls',\n disqualification_fouls: 'disqualificationFouls',\n drawn_fouls: 'drawnFouls',\n player_efficiency: 'playerEfficiency',\n shots_blocked: 'shotsBlocked',\n four_point_attempts: 'fourPointAttempts',\n four_points_made: 'fourPointsMade',\n four_point_percent: 'fourPointPercent',\n dunk_attempts: 'dunkAttempts',\n dunks_made: 'dunksMade',\n shootouts_won: 'shootoutsWon',\n shootouts_lost: 'shootoutsLost',\n shootouts_total: 'shootoutsTotal',\n shootout_won_percent: 'shootoutWonPercent',\n moneyball_free_throw_attempts: 'moneyballFreeThrowAttempts',\n moneyball_free_throws_made: 'moneyballFreeThrowsMade',\n moneyball_free_throw_percent: 'moneyballFreeThrowPercent',\n game_time: 'gameTime',\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class BasketballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n twoPointsMade: number;\n threePointsMade: number;\n freeThrowsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n twoPointPercent: number;\n threePointPercent: number;\n freeThrowPercent: number;\n onePointPercent: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n disqualificationFouls: number;\n drawnFouls: number;\n playerEfficiency: number;\n shotsBlocked: number;\n fourPointAttempts: number;\n fourPointsMade: number;\n fourPointPercent: number;\n dunkAttempts: number;\n dunksMade: number;\n shootoutsWon: number;\n shootoutsLost: number;\n shootoutsTotal: number;\n shootoutWonPercent: number;\n moneyballFreeThrowAttempts: number;\n moneyballFreeThrowsMade: number;\n moneyballFreeThrowPercent: number;\n gameTime: number;\n newbie: boolean;\n rank: number;\n\n get totalFouls() {\n return Math.floor(10 * (\n (this.personalFouls || 0) +\n (this.technicalFouls || 0) +\n (this.unsportsmanlikeFouls || 0) +\n (this.disqualificationFouls || 0)\n )) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get onePointsPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n get twoPointsPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n get threePointsPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n get freeThrowsPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { BasketballStatistic } from './basketball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: BasketballStatistic,\n competitorTeam: BasketballStatistic\n }\n})\nexport class BasketballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: BasketballStatistic;\n competitorTeam: BasketballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n points: 'points',\n free_throws_made: 'freeThrowsMade',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n one_points_made: 'onePointsMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n one_point_percent: 'onePointPercent',\n two_point_percent: 'twoPointPercent',\n three_point_percent: 'threePointPercent',\n free_throw_percent: 'freeThrowPercent',\n four_point_percent: 'fourPointPercent',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n technical_fouls: 'technicalFouls',\n unsportsmanlike_fouls: 'unsportsmanlikeFouls',\n disqualification_fouls: 'disqualificationFouls',\n drawn_fouls: 'drawnFouls',\n player_efficiency: 'playerEfficiency',\n shots_blocked: 'shotsBlocked',\n four_point_attempts: 'fourPointAttempts',\n four_points_made: 'fourPointsMade',\n dunk_attempts: 'dunkAttempts',\n dunks_made: 'dunksMade',\n shootouts_won: 'shootoutsWon',\n shootouts_lost: 'shootoutsLost',\n shootouts_total: 'shootoutsTotal',\n shootout_won_percent: 'shootoutWonPercent',\n moneyball_free_throw_attepts: 'moneyballFreeThrowAttepts',\n moneyball_free_throws_made: 'moneyballFreeThrowsMade',\n plus_minus: 'plusMinus',\n game_time: 'gameTime',\n updated_at: 'updatedAt',\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class BasketballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n freeThrowsMade: number;\n twoPointsMade: number;\n threePointsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n disqualificationFouls: number;\n drawnFouls: number;\n playerEfficiency: number;\n shotsBlocked: number;\n fourPointAttempts: number;\n fourPointsMade: number;\n dunkAttempts: number;\n dunksMade: number;\n shootoutsWon: number;\n shootoutsLost: number;\n moneyballFreeThrowAttepts: number;\n moneyballFreeThrowsMade: number;\n plusMinus: number;\n gameTime: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get totalFouls(): number {\n return (this.personalFouls || 0) + (this.technicalFouls || 0) + (this.unsportsmanlikeFouls || 0) + (this.disqualificationFouls || 0);\n }\n\n set onePointPercent(v: number) {}\n\n get onePointPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n /**\n * @deprecated Use onePointPercent instead\n */\n get onePointsPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n set twoPointPercent(v: number) {}\n\n get twoPointPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n /**\n * @deprecated Use twoPointPercent instead\n */\n get twoPointsPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n set threePointPercent(v: number) {}\n\n get threePointPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n /**\n * @deprecated Use threePointPercent instead\n */\n get threePointsPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n set freeThrowPercent(v: number) {}\n\n get freeThrowPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n /**\n * @deprecated Use freeThrowPercent instead\n */\n get freeThrowsPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n\n set fourPointPercent(v: number) {}\n\n get fourPointPercent(): number {\n if (!this.fourPointAttempts || !this.fourPointsMade) {\n return 0;\n }\n return Math.round(1000 * this.fourPointsMade / this.fourPointAttempts) / 10;\n }\n\n set shootoutsTotal(v: number) {}\n\n get shootoutsTotal(): number {\n return (this.shootoutsLost || 0) + (this.shootoutsWon || 0);\n }\n\n set shootoutWonPercent(v: number) {}\n\n get shootoutWonPercent(): number {\n if (!this.shootoutsTotal || !this.shootoutsWon) {\n return 0;\n }\n return Math.round(1000 * this.shootoutsWon / this.shootoutsTotal) / 10;\n }\n\n set moneyballFreeThrowPercent(v: number) {}\n\n get moneyballFreeThrowPercent() {\n if (!this.moneyballFreeThrowsMade || !this.moneyballFreeThrowAttepts) {\n return 0;\n }\n return Math.round(1000 * this.moneyballFreeThrowsMade / this.moneyballFreeThrowAttepts) / 10;\n\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum BasketballGameLogTypes {\n enter_game = 1,\n exit_game,\n remove_game,\n two_point_made,\n three_point_made,\n free_throw_made,\n two_point_attempt,\n three_point_attempt,\n free_throw_attempt,\n assist,\n block,\n rebound,\n offensive_rebound,\n defensive_rebound,\n steal,\n turnover,\n personal_foul,\n technical_foul,\n unsportsmanlike_foul,\n disqualification_foul,\n one_point_attempt,\n one_point_made,\n timeout,\n team_rebound,\n four_point_attempt,\n four_point_made,\n dunk_attempt,\n dunk_made,\n shootout,\n shootout_won,\n shootout_lost,\n moneyball_free_throw_attempt,\n moneyball_free_throw_made,\n}\n\nexport enum BasketballSubLogTypes {\n // Miss, Made\n jump_shot = 1,\n step_back_jump_shot,\n floating_jump_shot,\n fade_away_jump_shot,\n pull_up_jump_shot,\n turnaround_jump_shot,\n dunk,\n layup,\n driving_layup,\n alley_oop,\n hook_shot,\n\n // foul\n offensive_foul,\n shot_foul,\n mutual_foul,\n\n // Turnover\n bad_pass,\n ball_handling,\n travel,\n double_dribble,\n out_of_bounds,\n three_seconds,\n five_seconds,\n eight_seconds,\n twenty_four_seconds,\n back_court,\n offensive_goal_tending,\n other_turnover,\n}\n\nexport enum BasketballCourtZones {\n paint = 1,\n left_short_corner,\n right_short_corner,\n left_middle_post,\n right_middle_post,\n high_post,\n left_corner,\n right_corner,\n left_wing,\n right_wing,\n top,\n}\n\nexport enum BasketballCourtSides {\n front = 1,\n back,\n}\n\nexport enum BasketballPenaltyTypes {\n one_shot = 1,\n two_shots,\n three_shots,\n possession,\n one_shot_and_possession,\n two_shots_and_possession,\n three_shots_and_possession,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n sub_log_type: 'subLogType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n zone: 'zone',\n court_side: 'courtSide',\n foul_on_game_user_id: 'foulOnGameUserId',\n penalty_type: 'penaltyType',\n fast_break: 'fastBreak',\n is_coach: 'isCoach',\n is_bench: 'isBench',\n group: 'group',\n marked: 'marked',\n is_additional_point: 'isAdditionalPoint',\n coords: 'coords',\n shootout_points: 'shootoutPoints',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(BasketballGameLogTypes),\n subLogType: enumField(BasketballSubLogTypes),\n penaltyType: enumField(BasketballPenaltyTypes),\n zone: enumField(BasketballCourtZones),\n courtSide: enumField(BasketballCourtSides),\n }\n})\nexport class BasketballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: BasketballGameLogTypes;\n subLogType: BasketballSubLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n combined: BasketballGameLog;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n zone: BasketballCourtZones;\n courtSide: BasketballCourtSides;\n penaltyType: BasketballPenaltyTypes;\n foulOnGameUserId: number;\n foulOnGameUser: GameUser;\n fastBreak: boolean;\n isCoach: boolean;\n isBench: boolean;\n group: string;\n marked: boolean;\n isAdditionalPoint: boolean;\n coords: [number, number];\n shootoutPoints: number;\n\n isPointsType() {\n return [\n BasketballGameLogTypes.two_point_made,\n BasketballGameLogTypes.three_point_made,\n BasketballGameLogTypes.free_throw_made,\n BasketballGameLogTypes.one_point_made,\n BasketballGameLogTypes.four_point_made,\n BasketballGameLogTypes.dunk_made,\n BasketballGameLogTypes.shootout_won,\n BasketballGameLogTypes.moneyball_free_throw_made,\n ].indexOf(this.logType) > -1;\n }\n\n isReboundType() {\n return [\n BasketballGameLogTypes.rebound,\n BasketballGameLogTypes.offensive_rebound,\n BasketballGameLogTypes.defensive_rebound,\n BasketballGameLogTypes.team_rebound,\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType() {\n return [\n BasketballGameLogTypes.personal_foul,\n BasketballGameLogTypes.technical_foul,\n BasketballGameLogTypes.unsportsmanlike_foul,\n BasketballGameLogTypes.disqualification_foul,\n ].indexOf(this.logType) > -1;\n }\n\n getScore() {\n const scoreMapping = {\n [BasketballGameLogTypes.one_point_made]: this.isAdditionalPoint ? 2 : 1,\n [BasketballGameLogTypes.free_throw_made]: 1,\n [BasketballGameLogTypes.two_point_made]: this.isAdditionalPoint ? 3 : 2,\n [BasketballGameLogTypes.three_point_made]: this.isAdditionalPoint ? 4 : 3,\n [BasketballGameLogTypes.four_point_made]: this.isAdditionalPoint ? 5 : 4,\n [BasketballGameLogTypes.dunk_made]: this.isAdditionalPoint ? 4 : 3,\n [BasketballGameLogTypes.moneyball_free_throw_made]: 2,\n };\n if (this.logType === BasketballGameLogTypes.shootout_won) {\n return this.shootoutPoints;\n }\n return scoreMapping[this.logType] || 0;\n }\n\n compare(model: BasketballGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { TeamUser } from './team-user';\nimport { TournamentTeamUser } from './tournament-team-user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game_id: 'gameId',\n team_user: 'teamUser',\n tournament_team_user: 'tournamentTeamUser',\n is_mvp: 'isMvp',\n number: 'number',\n updated_at: 'updatedAt'\n },\n relation: {\n teamUser: TeamUser,\n tournamentTeamUser: TournamentTeamUser,\n updatedAt: DateTimeField,\n }\n})\nexport class GameUser extends BaseModel {\n id: number;\n gameId: number;\n teamUser: TeamUser;\n tournamentTeamUser: TournamentTeamUser;\n isMvp: boolean;\n number: number;\n updatedAt: Date;\n\n get gameUserNumber(): number {\n return (this.number || this.number === 0) ? this.number : this.teamUser.number;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, listField } from './util';\n\ninterface LimitationValue {\n current: number;\n required: number;\n}\n\n@ModelInstance({\n mappingFields: {\n min_user_games_count: 'minUserGamesCount',\n min_user_time: 'minUserTime',\n min_goalkeeper_user_games_count: 'minGoalkeeperUserGamesCount',\n min_goalkeeper_user_time: 'minGoalkeeperUserTime',\n manual: 'manual',\n },\n})\nexport class GameUserLimitationTypes extends BaseModel {\n minUserGamesCount: LimitationValue;\n minUserTime: LimitationValue;\n minGoalkeeperUserGamesCount: LimitationValue;\n minGoalkeeperUserTime: LimitationValue;\n manual: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n\n\n@ModelInstance({\n mappingFields: {\n tournament_team_user_id: 'tournamentTeamUserId',\n limitations: 'limitations'\n },\n relation: {\n limitations: GameUserLimitationTypes\n }\n})\nexport class GameUserLimitations extends BaseModel {\n tournamentTeamUserId: number;\n limitations: GameUserLimitationTypes;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentDisqualification } from './tournament-disqualification';\n\n@ModelInstance({\n mappingFields: {\n tournament_team_user_id: 'tournamentTeamUserId',\n disqualification: 'disqualification'\n },\n relation: {\n disqualification: TournamentDisqualification\n }\n})\nexport class GameUserDisqualification extends BaseModel {\n tournamentTeamUserId: number;\n disqualification: TournamentDisqualification;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { GameUser } from '../models/game-user';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\nimport { GameUserLimitations } from '../models/game-user-limitation';\nimport { GameUserDisqualification } from '../models/game-user-disqualification';\n\n@Injectable({providedIn: 'root'})\nexport class GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService,\n ) {\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getMvp(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/mvp/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getUsersLimitation(gameId: number): Promise<GameUserLimitations[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users_limitation/`).pipe(\n map(result => GameUserLimitations.toFront(result))\n ).toPromise();\n }\n\n async getUsersDisqualification(gameId: number): Promise<GameUserDisqualification[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users_disqualification/`).pipe(\n map(result => GameUserDisqualification.toFront(result))\n ).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/game_application/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { BasketballGameTeamStatistic } from '../models/basketball-game-team-statistic';\nimport { BasketballGameStatistic } from '../models/basketball-game-statistic';\nimport { BasketballGameLog } from '../models/basketball-game-log';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class BasketballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<BasketballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/team_statistic/`).pipe(\n map(result => BasketballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<BasketballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/user_statistic/`).pipe(\n map(result => BasketballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<BasketballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/logs/`).pipe(\n map(result => BasketballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n\n async downloadFibaProtocol(gameId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol_fiba/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n\n async downloadMFBApplication(gameId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/mfb_game_application_file/?file_type=${fileType}`, {\n params: new HttpParams().set('file_type', fileType),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n theme: 'theme',\n message: 'message',\n files: 'files',\n email: 'email',\n captcha: 'captcha',\n },\n relation: {\n files: File\n }\n})\nexport class Feedback {\n id: number;\n theme: string;\n message: string;\n email: string;\n captcha: string;\n files: File[];\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(value: any): any {\n return null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Feedback } from '../models/feedback';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class FeedbackApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async sendFeedback(data: any): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/feedback/`, Feedback.toBack(data))\n .pipe(map(response => Feedback.toFront(response)))\n .toPromise();\n }\n\n async sendLeagueFeedback(leagueId: number, data: any): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/feedback/`, Feedback.toBack(data))\n .pipe(map(response => Feedback.toFront(response)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { File } from '../models/file';\n\n@Injectable({providedIn: 'root'})\nexport class FileApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async upload(fileData: any, filename?: string, width?: number, height?: number): Promise<File> {\n let params = new HttpParams();\n if (width && height) {\n params = params.set('width', width.toString()).set('height', height.toString());\n }\n\n const formData = new FormData();\n formData.append('file', fileData, filename);\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/`, formData, {params})\n .pipe(map(data => File.toFront(data)))\n .toPromise();\n }\n\n async createZipArchive(files: {file: any, filename: string}[]): Promise<any> {\n const formData = new FormData();\n for (const file of files) {\n formData.append('files', file.file, file.filename);\n }\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/zip_archive/`, formData, {responseType: 'blob'})\n .toPromise();\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField, penaltyTypeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum HockeyGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n shootout_attempt,\n shootout_goal,\n assist,\n block_shot ,\n minor_penalty ,\n major_penalty ,\n misconduct_penalty ,\n game_misconduct_penalty ,\n match_penalty ,\n penalty_shot ,\n face_off_lose ,\n face_off_win ,\n save ,\n timeout,\n penalty_start,\n penalty_end,\n after_game_shootout_attempt,\n after_game_shootout_goal,\n after_game_shootout_save,\n shootout_save,\n steal,\n loss,\n sharp_pass,\n qualified_for_playoff,\n mhl_carousel_segment_end,\n}\n\nexport enum HockeyAdvantageTypes {\n power_play = 1,\n shorthanded,\n even_strength\n}\n\nexport interface PenaltyType {\n id: number;\n code: string;\n title: string;\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n advantage: 'advantage',\n advantage_num: 'advantageNum',\n is_goalie: 'isGoalie',\n penalty_type: 'penaltyType',\n penalized_game_user_id: 'penalizedGameUserId',\n mutual_penalty: 'mutualPenalty',\n foul_on_game_user_id: 'foulOnGameUserId',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(HockeyGameLogTypes),\n advantage: enumField(HockeyAdvantageTypes),\n penaltyType: penaltyTypeField()\n }\n})\nexport class HockeyGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: HockeyGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n advantage: HockeyAdvantageTypes;\n advantageNum: number;\n isGoalie: boolean;\n penaltyType: PenaltyType;\n _penalizedGameUserId: number;\n mutualPenalty: boolean;\n foulOnGameUserId: number;\n\n get penalizedGameUserId(): number {\n if (this._penalizedGameUserId) {\n return this._penalizedGameUserId;\n }\n return this.gameUserId;\n }\n\n set penalizedGameUserId(value: number) {\n this._penalizedGameUserId = value;\n }\n\n compare(model: HockeyGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [HockeyGameLogTypes.goal, HockeyGameLogTypes.shootout_goal, HockeyGameLogTypes.after_game_shootout_goal].indexOf(this.logType) > -1;\n }\n\n isPenaltyType(): boolean {\n return [\n HockeyGameLogTypes.minor_penalty, HockeyGameLogTypes.major_penalty,\n HockeyGameLogTypes.misconduct_penalty, HockeyGameLogTypes.game_misconduct_penalty,\n HockeyGameLogTypes.penalty_shot, HockeyGameLogTypes.match_penalty\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: HockeyGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_goals: 'ppGoals',\n ev_goals: 'evGoals',\n sh_goals: 'shGoals',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n after_game_shootout_attempts: 'afterGameShootoutAttempts',\n after_game_shootout_goals: 'afterGameShootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n pp_saves: 'ppSaves',\n sh_saves: 'shSaves',\n ev_saves: 'evSaves',\n saves: 'saves',\n shootout_save: 'shootoutSaves',\n after_game_shootout_saves: 'afterGameShootoutSaves',\n pp_goals_against: 'ppGoalsAgainst',\n sh_goals_against: 'shGoalsAgainst',\n ev_goals_against: 'evGoalsAgainst',\n goals_against: 'goalsAgainst',\n shootout_goals_against: 'shootoutGoalsAgainst',\n after_game_shootout_goals_against: 'afterGameShootoutGoalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n steals: 'steals',\n pp_steals: 'ppSteals',\n ev_steals: 'evSteals',\n sh_steals: 'shSteals',\n losses: 'losses',\n pp_losses: 'ppLosses',\n ev_losses: 'evLosses',\n sh_losses: 'shLosses',\n sharp_passes: 'sharpPasses',\n pp_sharp_passes: 'ppSharpPasses',\n ev_sharp_passes: 'evSharpPasses',\n sh_sharp_passes: 'shSharpPasses',\n drawn_fouls: 'drawnFouls',\n efficiency: 'efficiency',\n games_qualified_for_playoff: 'gamesQualifiedForPlayoff',\n shutout: 'shutout'\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class HockeyGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n ppSaves: number;\n evSaves: number;\n shSaves: number;\n saves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n steals: number;\n ppSteals: number;\n evSteals: number;\n shSteals: number;\n losses: number;\n ppLosses: number;\n evLosses: number;\n shLosses: number;\n sharpPasses: number;\n ppSharpPasses: number;\n evSharpPasses: number;\n shSharpPasses: number;\n drawnFouls: number;\n efficiency: number;\n gamesQualifiedForPlayoff: number;\n shutout: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shotsOnGoal(): number {\n return (this.evShotsOnGoal || 0) + (this.ppShotsOnGoal || 0) + (this.shShotsOnGoal || 0);\n }\n\n get shotsBlocked(): number {\n return (this.evShotsBlocked || 0) + (this.ppShotsBlocked || 0) + (this.shShotsBlocked || 0);\n }\n\n get shotMisses(): number {\n return (this.evShotMisses || 0) + (this.ppShotMisses || 0) + (this.shShotMisses || 0);\n }\n\n get ppShots(): number {\n return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0);\n }\n\n get evShots(): number {\n return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0);\n }\n\n get shShots(): number {\n return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0);\n }\n\n get shots(): number {\n return this.ppShots + this.evShots + this.shShots + (this.shootoutAttempts || 0);\n }\n\n get totalShots(): number {\n return this.shots + (this.shootoutAttempts || 0);\n }\n\n get goals(): number {\n return (this.ppGoals || 0) + (this.shGoals || 0) + (this.evGoals || 0);\n }\n\n get totalGoals(): number {\n return this.goals + (this.shootoutGoals || 0);\n }\n\n get totalGoalsPercent(): number {\n if (!this.totalGoals || !this.totalShots) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.totalShots) / 10;\n }\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.evAssists || 0) + (this.shAssists || 0);\n }\n\n get faceOffs(): number {\n return (this.faceOffWins || 0) + (this.faceOffLosses || 0);\n }\n\n get shootOuts(): number {\n return (this.shootoutAttempts || 0) + (this.shootoutGoals || 0);\n }\n\n get shotsAgainst(): number {\n return (this.saves || 0) + (this.goalsAgainst || 0);\n }\n\n get shootoutShotsAgainst(): number {\n return (this.shootoutSaves || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get totalShotsAgainst(): number {\n return this.shotsAgainst + this.shootoutShotsAgainst;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get totalSaves(): number {\n return (this.saves || 0) + (this.shootoutSaves || 0);\n }\n\n get totalSavesPercent(): number {\n if (!this.totalShotsAgainst || !this.totalSaves) {\n return 0;\n }\n return Math.round(1000 * this.totalSaves / this.totalShotsAgainst) / 10;\n }\n\n get shootoutSavesPercent(): number {\n if (!this.shootoutShotsAgainst || !this.shootoutSaves) {\n return 0;\n }\n return Math.round(1000 * this.shootoutSaves / this.shootoutShotsAgainst) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return (this.goalsAgainst || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get goalsPercent(): number {\n if (!this.totalGoals || !this.totalShots) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.totalShots) / 10;\n }\n\n get faceOffPercent(): number {\n if (!this.faceOffWins || !this.faceOffs) {\n return 0;\n }\n return Math.round(1000 * this.faceOffWins / this.faceOffs) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n pp_shots: 'ppShots',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shots: 'evShots',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shots: 'shShots',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_goals_percent: 'ppGoalsPercent',\n pp_goals: 'ppGoals',\n ev_goals_percent: 'evGoalsPercent',\n ev_goals: 'evGoals',\n sh_goals_percent: 'shGoalsPercent',\n goals: 'goals',\n total_goals: 'totalGoals',\n sh_goals: 'shGoals',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots: 'shots',\n total_shots: 'totalShots',\n goals_percent: 'goalsPercent',\n total_goals_percent: 'totalGoalsPercent',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n after_game_shootout_attempts: 'afterGameShootoutAttempts',\n after_game_shootout_goals: 'afterGameShootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n face_offs: 'faceOffs',\n face_off_percent: 'faceOffPercent',\n pp_saves: 'ppSaves',\n sh_saves: 'shSaves',\n ev_saves: 'evSaves',\n saves: 'saves',\n total_saves: 'totalSaves',\n shootout_saves: 'shootoutSaves',\n shots_against: 'shotsAgainst',\n shootout_shots_against: 'shootoutShotsAgainst',\n total_shots_against: 'totalShotsAgainst',\n saves_percent: 'savesPercent',\n shootout_saves_percent: 'shootoutSavesPercent',\n total_saves_percent: 'totalSavesPercent',\n pp_goals_against: 'ppGoalsAgainst',\n sh_goals_against: 'shGoalsAgainst',\n ev_goals_against: 'evGoalsAgainst',\n goals_against: 'goalsAgainst',\n shootout_goals_against: 'shootoutGoalsAgainst',\n total_goals_against: 'totalGoalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n steals: 'steals',\n pp_steals: 'ppSteals',\n ev_steals: 'evSteals',\n sh_steals: 'shSteals',\n losses: 'losses',\n pp_losses: 'ppLosses',\n ev_losses: 'evLosses',\n sh_losses: 'shLosses',\n sharp_passes: 'sharpPasses',\n pp_sharp_passes: 'ppSharpPasses',\n ev_sharp_passes: 'evSharpPasses',\n sh_sharp_passes: 'shSharpPasses',\n drawn_fouls: 'drawnFouls',\n efficiency: 'efficiency',\n newbie: 'newbie',\n rank: 'rank',\n shutout: 'shutout',\n shutout_percent: 'shutoutPercent',\n mvp_count: 'mvpCount',\n games_qualified_for_playoff: 'gamesQualifiedForPlayoff'\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class HockeyStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n ppShots: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShots: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShots: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoalsPercent: number;\n ppGoals: number;\n evGoalsPercent: number;\n evGoals: number;\n shGoalsPercent: number;\n shGoals: number;\n goals: number;\n totalGoals: number;\n totalGoalsPercent;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shots: number;\n totalShots: number;\n goalsPercent: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n faceOffs: number;\n faceOffPercent: number;\n savesPercent: number;\n shootoutSavesPercent: number;\n totalSavesPercent: number;\n ppSaves: number;\n evSaves: number;\n shSaves: number;\n saves: number;\n shootoutSaves: number;\n totalSaves: number;\n shotsAgainst: number;\n shootoutShotsAgainst: number;\n totalShotsAgainst: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n shootoutGoalsAgainst: number;\n totalGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n steals: number;\n ppSteals: number;\n evSteals: number;\n shSteals: number;\n losses: number;\n ppLosses: number;\n evLosses: number;\n shLosses: number;\n sharpPasses: number;\n ppSharpPasses: number;\n evSharpPasses: number;\n shSharpPasses: number;\n drawnFouls: number;\n efficiency: number;\n newbie: boolean;\n rank: number;\n shutout: number;\n shutoutPercent: number;\n mvpCount: number;\n gamesQualifiedForPlayoff: number;\n\n get assists(): number {\n return Math.floor(10 * ((this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0))) / 10;\n }\n\n get goalpass(): number {\n return Math.floor(10 * ((this.totalGoals || 0) + (this.assists || 0))) / 10;\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { HockeyStatistic } from './hockey-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: HockeyStatistic,\n competitorTeam: HockeyStatistic\n }\n})\nexport class HockeyGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: HockeyStatistic;\n competitorTeam: HockeyStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyGameLog } from '../models/hockey-game-log';\nimport { HockeyGameStatistic } from '../models/hockey-game-statistic';\nimport { HockeyGameTeamStatistic } from '../models/hockey-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class HockeyGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<HockeyGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/team_statistic/`).pipe(\n map(result => HockeyGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<HockeyGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/user_statistic/`).pipe(\n map(result => HockeyGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<HockeyGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/logs/`).pipe(\n map(result => HockeyGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadShlApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/shl_game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField, penaltyTypeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum FootballGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n penalty_attempt,\n penalty_goal,\n penalty_save,\n small_penalty_attempt,\n small_penalty_goal,\n small_penalty_save,\n assist,\n block_shot,\n corner,\n free_kick,\n foul,\n save,\n yellow_card,\n red_card,\n perfect_pass,\n loss,\n steal,\n out,\n timeout,\n auto_goal,\n end_game_penalty_miss,\n end_game_penalty_goal,\n end_game_penalty_save,\n duel_won,\n duel_lost,\n double_goal,\n super_game,\n color_ball,\n bonus,\n}\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n is_goalie: 'isGoalie',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(FootballGameLogTypes)\n }\n})\nexport class FootballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: FootballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n isGoalie: boolean;\n\n compare(model: FootballGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [\n FootballGameLogTypes.goal,\n FootballGameLogTypes.penalty_goal,\n FootballGameLogTypes.small_penalty_goal,\n FootballGameLogTypes.auto_goal,\n FootballGameLogTypes.end_game_penalty_goal,\n FootballGameLogTypes.double_goal\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: FootballGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n goals: 'goals',\n assists: 'assists',\n corners: 'corners',\n free_kicks: 'freeKicks',\n penalty_goals: 'penaltyGoals',\n penalty_attempts: 'penaltyAttempts',\n penalty_goals_against: 'penaltyGoalsAgainst',\n penalty_saves: 'penaltySaves',\n small_penalty_goals: 'smallPenaltyGoals',\n small_penalty_attempts: 'smallPenaltyAttempts',\n small_penalty_goals_against: 'smallPenaltyGoalsAgainst',\n small_penalty_saves: 'smallPenaltySaves',\n saves: 'saves',\n goals_against: 'goalsAgainst',\n safety_rate: 'safetyRate',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n perfect_passes: 'perfectPasses',\n losses: 'losses',\n steals: 'steals',\n outs: 'outs',\n block_shots: 'blockShots',\n auto_goals: 'autoGoals',\n auto_goals_against: 'autoGoalsAgainst',\n end_game_penalty_goals: 'endGamePenaltyGoals',\n end_game_penalty_misses: 'endGamePenaltyMisses',\n end_game_penalty_saves: 'endGamePenaltySaves',\n duels_won: 'duelsWon',\n duels_lost: 'duelsLost',\n double_goals: 'doubleGoals',\n double_goals_against: 'doubleGoalsAgainst',\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class FootballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsAgainst: number;\n penaltySaves: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltySaves: number;\n saves: number;\n goalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n autoGoals: number;\n autoGoalsAgainst: number;\n endGamePenaltyGoals: number;\n endGamePenaltyMisses: number;\n endGamePenaltySaves: number;\n duelsWon: number;\n duelsLost: number;\n doubleGoals: number;\n doubleGoalsAgainst: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shots(): number {\n return Math.floor(10 * ((this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0))) / 10;\n }\n\n\n get totalGoals(): number {\n return Math.floor(10 * (\n (this.goals || 0) +\n (this.penaltyGoals || 0) +\n (this.smallPenaltyGoals || 0) +\n ((this.doubleGoals || 0) * 2)\n )) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.shots || !this.totalGoals) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.shots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get penalties(): number {\n return Math.floor(10 * ((this.penaltyGoals || 0) + (this.penaltyAttempts || 0))) / 10;\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penalties || !this.penaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.penaltyGoals / this.penalties) / 10;\n }\n\n get smallPenalties(): number {\n return Math.floor(10 * ((this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0))) / 10;\n }\n\n get smallPenaltyGoalsPercent(): number {\n if (!this.smallPenalties || !this.smallPenaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltyGoals / this.smallPenalties) / 10;\n }\n\n get shotsAgainst(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.goalsAgainst || 0) + (this.doubleGoalsAgainst || 0))) / 10;\n }\n\n get penaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get smallPenaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.smallPenaltySaves || 0) + (this.smallPenaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return Math.floor(10 * (\n (this.goalsAgainst || 0) +\n (this.penaltyGoalsAgainst || 0) +\n (this.smallPenaltyGoalsAgainst || 0) +\n (this.autoGoalsAgainst || 0) +\n ((this.doubleGoalsAgainst || 0) * 2)\n )) / 10;\n }\n\n\n get totalSaves(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.penaltySaves || 0) + (this.smallPenaltySaves || 0))) / 10;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get penaltySavesPercent(): number {\n if (!this.penaltyShotsAgainst || !this.penaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;\n }\n\n get smallPenaltySavesPercent(): number {\n if (!this.smallPenaltyShotsAgainst || !this.smallPenaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltySaves / this.smallPenaltyShotsAgainst) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n draw_games_count: 'drawGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots_on_goal_percent: 'shotsOnGoalPercent',\n shots: 'shots',\n goals: 'goals',\n goals_percent: 'goalsPercent',\n total_goals: 'totalGoals',\n assists: 'assists',\n penalty_goals: 'penaltyGoals',\n penalty_attempts: 'penaltyAttempts',\n penalty_goals_percent: 'penaltyGoalsPercent',\n penalty_saves: 'penaltySaves',\n penalty_goals_against: 'penaltyGoalsAgainst',\n penalty_shots_against: 'penaltyShotsAgainst',\n penalty_saves_percent: 'penaltySavesPercent',\n small_penalty_goals: 'smallPenaltyGoals',\n small_penalty_attempts: 'smallPenaltyAttempts',\n small_penalty_goals_percent: 'smallPenaltyGoalsPercent',\n small_penalty_saves: 'smallPenaltySaves',\n small_penalty_goals_against: 'smallPenaltyGoalsAgainst',\n small_penalty_shots_against: 'smallPenaltyShotsAgainst',\n small_penalty_saves_percent: 'smallPenaltySavesPercent',\n saves: 'saves',\n saves_percent: 'savesPercent',\n total_saves: 'totalSaves',\n goals_against: 'goalsAgainst',\n total_goals_against: 'totalGoalsAgainst',\n shots_against: 'shotsAgainst',\n safety_rate: 'safetyRate',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n perfect_passes: 'perfectPasses',\n losses: 'losses',\n steals: 'steals',\n outs: 'outs',\n block_shots: 'blockShots',\n corners: 'corners',\n free_kicks: 'freeKicks',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n newbie: 'newbie',\n rank: 'rank',\n auto_goals: 'autoGoals',\n auto_goals_against: 'autoGoalsAgainst',\n end_game_penalty_goals: 'endGamePenaltyGoals',\n end_game_penalty_misses: 'endGamePenaltyMisses',\n end_game_penalty_saves: 'endGamePenaltySaves',\n shutout: 'shutout',\n shutout_percent: 'shutoutPercent',\n duels_won: 'duelsWon',\n duels_lost: 'duelsLost',\n double_goals: 'doubleGoals',\n double_goals_against: 'doubleGoalsAgainst',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class FootballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shotsOnGoalPercent: number;\n shots: number;\n goals: number;\n totalGoals: number;\n goalsPercent: number;\n assists: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsPercent: number;\n penaltySaves: number;\n penaltyGoalsAgainst: number;\n penaltyShotsAgainst: number;\n penaltySavesPercent: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsPercent: number;\n smallPenaltySaves: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltyShotsAgainst: number;\n smallPenaltySavesPercent: number;\n saves: number;\n savesPercent: number;\n totalSaves: number;\n goalsAgainst: number;\n totalGoalsAgainst: number;\n shotsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n newbie: boolean;\n rank: number;\n autoGoals: number;\n autoGoalsAgainst: number;\n endGamePenaltyGoals: number;\n endGamePenaltyMisses: number;\n endGamePenaltySaves: number;\n shutout: number;\n shutoutPercent: number;\n duelsWon: number;\n duelsLost: number;\n doubleGoals: number;\n doubleGoalsAgainst: number;\n\n get teamPlusMinus(): number {\n return (this.teamScoreSum || 0) - (this.teamMissedSum || 0);\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get penalties(): number {\n return Math.floor(10 * ((this.penaltyGoals || 0) + (this.penaltyAttempts || 0))) / 10;\n }\n\n get smallPenalties(): number {\n return Math.floor(10 * ((this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0))) / 10;\n }\n\n get goalpass(): number {\n return Math.floor(10 * ((this.totalGoals || 0) + (this.assists || 0))) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get tournamentTeamGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.gamesCount;\n }\n\n get tournamentTeamWonGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.wonGamesCount;\n }\n\n get tournamentTeamDrawGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.drawGamesCount;\n }\n\n get tournamentTeamLostGamesCount(): number {\n if (!this.tournamentTeam) {\n return null;\n }\n return this.tournamentTeam.gamesCount - this.tournamentTeam.drawGamesCount - this.tournamentTeam.wonGamesCount;\n }\n\n get tournamentTeamScoreSum(): number {\n return this.tournamentTeam && this.tournamentTeam.scoreSum;\n }\n\n get tournamentTeamMissedSum(): number {\n return this.tournamentTeam && this.tournamentTeam.missedSum;\n }\n\n get tournamentTeamPlusMinus(): number {\n if (!this.tournamentTeam) {\n return null;\n }\n return this.tournamentTeam.scoreSum - this.tournamentTeam.missedSum;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { FootballStatistic } from './football-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: FootballStatistic,\n competitorTeam: FootballStatistic\n }\n})\nexport class FootballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: FootballStatistic;\n competitorTeam: FootballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { FootballGameLog } from '../models/football-game-log';\nimport { FootballGameStatistic } from '../models/football-game-statistic';\nimport { FootballGameTeamStatistic } from '../models/football-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class FootballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<FootballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/team_statistic/`).pipe(\n map(result => FootballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<FootballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/user_statistic/`).pipe(\n map(result => FootballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<FootballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/logs/`).pipe(\n map(result => FootballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\n\nexport enum HandballGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n assist,\n penalty_miss,\n penalty_shot_on_goal,\n penalty_goal,\n save,\n penalty_save,\n foul,\n yellow_card,\n red_card,\n two_minute_foul,\n turnover,\n steal,\n block_shot,\n timeout\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n is_goalie: 'isGoalie',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(HandballGameLogTypes)\n }\n})\nexport class HandballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: HandballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n isGoalie: boolean;\n\n compare(model: HandballGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [HandballGameLogTypes.goal, HandballGameLogTypes.penalty_goal].indexOf(this.logType) > -1;\n }\n\n isAfter(log: HandballGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n isFoulType(): boolean {\n return [HandballGameLogTypes.foul, HandballGameLogTypes.yellow_card, HandballGameLogTypes.red_card].indexOf(this.logType) > -1;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n goals: 'goals',\n assists: 'assists',\n penalty_goals: 'penaltyGoals',\n penalty_misses: 'penaltyMisses',\n penalty_shots_on_goal: 'penaltyShotsOnGoal',\n saves: 'saves',\n penalty_saves: 'penaltySaves',\n goals_against: 'goalsAgainst',\n penalty_goals_against: 'penaltyGoalsAgainst',\n safety_rate: 'safetyRate',\n fouls: 'fouls',\n yellowCards: 'yellowCards',\n red_cards: 'redCards',\n two_minute_fouls: 'twoMinuteFouls',\n turnovers: 'turnovers',\n steals: 'steals',\n block_shots: 'blockShots',\n game_time: 'gameTime',\n plus_minus: 'plusMinus'\n }\n})\nexport class HandballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n penaltyGoals: number;\n penaltyMisses: number;\n penaltyShotsOnGoal: number;\n saves: number;\n penaltySaves: number;\n goalsAgainst: number;\n penaltyGoalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n twoMinuteFouls: number;\n turnovers: number;\n steals: number;\n blockShots: number;\n gameTime: number;\n plusMinus: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shots(): number {\n return Math.floor(10 * ((this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0))) / 10;\n }\n\n\n get totalGoals(): number {\n return Math.floor(10 * ((this.goals || 0) + (this.penaltyGoals || 0))) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.shots || !this.totalGoals) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.shots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get penaltyShots(): number {\n return Math.floor(10 * ((this.penaltyShotsOnGoal || 0) + (this.penaltyMisses || 0))) / 10;\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penaltyShots || !this.penaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.penaltyGoals / this.penaltyShots) / 10;\n }\n\n get shotsAgainst(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.goalsAgainst || 0))) / 10;\n }\n\n get penaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return Math.floor(10 * ((this.goalsAgainst || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalSaves(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.penaltySaves || 0))) / 10;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get penaltySavesPercent(): number {\n if (!this.penaltyShotsAgainst || !this.penaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n goals: 'goals',\n assists: 'assists',\n penalty_goals: 'penaltyGoals',\n penalty_misses: 'penaltyMisses',\n penalty_shots_on_goal: 'penaltyShotsOnGoal',\n saves: 'saves',\n penalty_saves: 'penaltySaves',\n goals_against: 'goalsAgainst',\n penalty_goals_against: 'penaltyGoalsAgainst',\n safety_rate: 'safetyRate',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n two_minute_fouls: 'twoMinuteFouls',\n turnovers: 'turnovers',\n steals: 'steals',\n block_shots: 'blockShots',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n shots: 'shots',\n goals_percent: 'goalsPercent',\n penalty_shots: 'penaltyShots',\n penalty_goals_percent: 'penaltyGoalsPercent',\n shots_against: 'shotsAgainst',\n saves_percent: 'savesPercent',\n penalty_shots_against: 'penaltyShotsAgainst',\n penalty_saves_percent: 'penaltySavesPercent',\n total_goals: 'totalGoals',\n total_saves: 'totalSaves',\n total_goals_against: 'totalGoalsAgainst',\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class HandballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n penaltyGoals: number;\n penaltyMisses: number;\n penaltyShotsOnGoal: number;\n saves: number;\n penaltySaves: number;\n goalsAgainst: number;\n penaltyGoalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n twoMinuteFouls: number;\n turnovers: number;\n steals: number;\n blockShots: number;\n gameTime: number;\n plusMinus: number;\n shots: number;\n goalsPercent: number;\n penaltyShots: number;\n penaltyGoalsPercent: number;\n shotsAgainst: number;\n savesPercent: number;\n penaltyShotsAgainst: number;\n penaltySavesPercent: number;\n totalGoals: number;\n totalSaves: number;\n totalGoalsAgainst: number;\n newbie: boolean;\n rank: number;\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { HandballStatistic } from './handball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: HandballStatistic,\n competitorTeam: HandballStatistic\n }\n})\nexport class HandballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: HandballStatistic;\n competitorTeam: HandballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { HandballGameLog } from '../models/handball-game-log';\nimport { HandballGameStatistic } from '../models/handball-game-statistic';\nimport { HandballGameTeamStatistic } from '../models/handball-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class HandballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<HandballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/team_statistic/`).pipe(\n map(result => HandballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<HandballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/user_statistic/`).pipe(\n map(result => HandballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<HandballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/logs/`).pipe(\n map(result => HandballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { File } from './file';\nimport { User } from './user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n text: 'text',\n author: 'author',\n created_at: 'createdAt',\n },\n relation: {\n picture: File,\n author: User,\n createdAt: DateTimeField,\n }\n})\nexport class TournamentNews extends BaseModel {\n id: number;\n title: string;\n picture: File;\n text: string;\n author: User;\n createdAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\n\n@ModelInstance({\n mappingFields: {\n stage_id: 'stageId',\n tours_count: 'toursCount',\n playoff_stages_count: 'playoffStagesCount',\n playoff_teams_count: 'playoffTeamsCount',\n }\n})\nexport class GameTimelineStageItem {\n stageId: number;\n toursCount: number;\n playoffStagesCount: number;\n playoffTeamsCount: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n tours_count: 'toursCount',\n playoff_stages_count: 'playoffStagesCount',\n playoff_teams_count: 'playoffTeamsCount',\n current_tour: 'currentTour',\n current_playoff_stage: 'currentPlayoffStage',\n current_playoff_round: 'currentPlayoffRound',\n stages: 'stages',\n tournament_stage_id: 'tournamentStageId',\n tournament_round_id: 'tournamentRoundId',\n },\n relation: {\n stages: listField(GameTimelineStageItem)\n }\n})\nexport class GameTimelineStages extends BaseModel {\n toursCount: number;\n playoffStagesCount: number;\n playoffTeamsCount: number;\n currentTour: number;\n currentPlayoffStage: number;\n currentPlayoffRound: number;\n stages: GameTimelineStageItem[];\n tournamentStageId: number;\n tournamentRoundId: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, DateField } from './util';\n\nexport enum TournamentStageStatuses {\n open,\n in_progress,\n closed\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n date: 'date',\n tournament_id: 'tournamentId',\n status: 'status',\n },\n relation: {\n date: DateField,\n status: enumField(TournamentStageStatuses)\n }\n})\nexport class TournamentStage extends BaseModel {\n id: number;\n name: string;\n date: Date;\n tournamentId: number;\n status: TournamentStageStatuses;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField } from './util';\nimport { Team } from './team';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { TeamUser } from './team-user';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n team_user: 'teamUser',\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n tournament_team: 'tournamentTeam',\n user: 'user',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n serve_hits: 'serveHits',\n serve_faults: 'serveFaults',\n serve_aces: 'serveAces',\n serve_percent: 'servePercent',\n good_serves: 'goodServes',\n ace_percent: 'acePercent',\n stuff_blocks: 'stuffBlocks',\n block_faults: 'blockFaults',\n block_rebounds: 'blockRebounds',\n block_percent: 'blockPercent',\n attack_spikes: 'attackSpikes',\n attack_faults: 'attackFaults',\n attack_shots: 'attackShots',\n attack_percent: 'attackPercent',\n receives: 'receives',\n receive_faults: 'receiveFaults',\n excellent_receives: 'excellentReceives',\n receive_percent: 'receivePercent',\n serve_receives: 'serveReceives',\n serve_receive_faults: 'serveReceiveFaults',\n excellent_serve_receives: 'excellentServeReceives',\n serve_receive_percent: 'serveReceivePercent',\n points: 'points',\n faults: 'faults',\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n team: Team,\n teamUser: TeamUser,\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n tournamentTeam: TournamentTeam,\n user: User,\n month: DateField,\n }\n})\nexport class VolleyballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n newbie: boolean;\n rank: number;\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n goodServes: number;\n servePercent: number;\n acePercent: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n blockPercent: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n attackPercent: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n receivePercent: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n serveReceivePercent: number;\n points: number;\n faults: number;\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get totalReceives(): number {\n return Math.floor(10 * (this.receives + this.excellentReceives + this.receiveFaults)) / 10;\n }\n\n get totalServeReceives(): number {\n return Math.floor(10 * (this.serveReceives + this.excellentServeReceives + this.serveReceiveFaults)) / 10;\n }\n\n get totalServes(): number {\n return Math.floor(10 * (this.serveAces + this.serveHits + this.serveFaults + this.goodServes)) / 10;\n }\n\n get totalAttacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots + this.attackFaults)) / 10;\n }\n\n get totalBlocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds + this.blockFaults)) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TournamentGroup } from './tournament-group';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n competitor_team_id: 'competitorTeamId',\n team_score: 'teamScore',\n competitor_team_score: 'competitorTeamScore',\n }\n})\nexport class StageTeamGame extends BaseModel {\n id: number;\n teamId: number;\n competitorTeamId: number;\n teamScore: number;\n competitorTeamScore: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team: 'tournamentTeam',\n group: 'group',\n tournament_stage_id: 'tournamentStageId',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n last_games_count: 'lastGamesCount',\n last_games_won: 'lastGamesWon',\n points: 'points',\n mt_points: 'mtPoints',\n final_standing: 'finalStanding',\n received_points: 'receivedPoints',\n received_mt_points: 'receivedMtPoints',\n tries_scored: 'triesScored',\n tries_missed: 'triesMissed',\n attack_bonuses: 'attackBonuses',\n defense_bonuses: 'defenseBonuses',\n games: 'games',\n draw_games_count: 'drawGamesCount',\n lose_games_count: 'loseGamesCount',\n },\n relation: {\n tournamentTeam: TournamentTeam,\n group: TournamentGroup,\n games: listField(StageTeamGame),\n }\n})\nexport class TournamentStageTeam extends BaseModel {\n private _games: StageTeamGame[];\n\n id: number;\n tournamentTeam: TournamentTeam;\n group: TournamentGroup;\n tournamentStageId: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n missedSum: number;\n lastGamesCount: number;\n lastGamesWon: number;\n points: number;\n mtPoints: number;\n finalStanding: number;\n receivedPoints: number;\n receivedMtPoints: number;\n triesScored: number;\n triesMissed: number;\n attackBonuses: number;\n defenseBonuses: number;\n drawGamesCount: number;\n loseGamesCount: number;\n gamesMapping: {[key: number]: StageTeamGame[]} = {};\n\n set games(value: StageTeamGame[]) {\n this._games = value;\n this.gamesMapping = value.reduce((acc, game) => {\n const competitorTeamId = game.teamId === this.tournamentTeam.team.id ? game.competitorTeamId : game.teamId;\n return {\n ...acc,\n [competitorTeamId]: [\n ...(acc[competitorTeamId] || []),\n game,\n ]\n };\n }, {});\n }\n\n get games(): StageTeamGame[] {\n return this._games;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField, DateTimeField, enumField } from './util';\nimport { File } from './file';\nimport { Tournament } from './tournament';\n\nexport enum LeagueNewsType {\n text = 1,\n video\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n datetime: 'datetime',\n preview_text: 'previewText',\n detail_text: 'detailText',\n picture: 'picture',\n cover: 'cover',\n mobile_picture: 'mobilePicture',\n is_main: 'isMain',\n tournaments: 'tournaments',\n type: 'type',\n video_link: 'videoLink',\n tag: 'tag',\n },\n relation: {\n datetime: DateTimeField,\n picture: File,\n cover: File,\n mobilePicture: File,\n tournaments: listField(Tournament),\n type: enumField(LeagueNewsType),\n }\n})\nexport class LeagueNews extends BaseModel {\n id: number;\n title: string;\n datetime: Date;\n previewText: string;\n detailText: string;\n picture: File;\n cover: File;\n mobilePicture: File;\n isMain: boolean;\n tournaments: Tournament[];\n type: LeagueNewsType;\n videoLink: string;\n tag: string;\n\n @ToFrontHook\n static toFront(data: any): any {\n return undefined;\n }\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField, enumField, listField } from './util';\nimport { Game } from './game';\nimport { Tournament } from './tournament';\nimport { League } from './league';\nimport { LeagueNews } from './league-news';\n\nexport enum TournamentEventTypes {\n game_closed = 1,\n media_added,\n news\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game: 'game',\n news: 'news',\n league: 'league',\n tournaments: 'tournaments',\n event: 'event',\n datetime: 'datetime'\n },\n relation: {\n game: Game,\n news: LeagueNews,\n league: League,\n tournaments: listField(Tournament),\n datetime: DateField,\n event: enumField(TournamentEventTypes)\n }\n})\nexport class TournamentEvent extends BaseModel {\n id: number;\n game: Game;\n news: LeagueNews;\n tournaments: Tournament[];\n event: TournamentEventTypes;\n datetime: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { User } from './user';\nimport { BaseModel, enumField, listField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n\nexport enum LeagueUserRoles {\n admin = 1,\n moderator,\n game_manager\n}\n\nexport enum LeagueUserPermissions {\n settings = 1,\n users,\n teams,\n media,\n news,\n game_export,\n schedule,\n game_management\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user: 'user',\n role: 'role',\n permissions: 'permissions'\n },\n relation: {\n user: User,\n permissions: listField(enumField(LeagueUserPermissions))\n }\n})\nexport class LeagueUser extends BaseModel {\n id: number;\n user: User;\n _role: LeagueUserRoles;\n permissions: LeagueUserPermissions[];\n\n set role(value: LeagueUserRoles|string) {\n this._role = LeagueUserRoles[value];\n }\n\n get role(): LeagueUserRoles|string {\n return this._role;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n draw_games_count: 'drawGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n newbie: 'newbie',\n // User statistic\n points: 'points',\n tries: 'tries',\n conversion_kicks: 'conversionKicks',\n conversion_goals: 'conversionGoals',\n conversion_misses: 'conversionMisses',\n conversion_goals_percent: 'conversionGoalsPercent',\n penalties: 'penalties',\n penalty_kicks_on_goal: 'penaltyKicksOnGoal',\n penalty_misses: 'penaltyMisses',\n penalty_goals: 'penaltyGoals',\n tap_penalties: 'tapPenalties',\n penalty_kicks_to_touch: 'penaltyKicksToTouch',\n penalty_goals_percent: 'penaltyGoalsPercent',\n drop_goal_kicks: 'dropGoalKicks',\n drop_goals: 'dropGoals',\n drop_goal_misses: 'dropGoalMisses',\n drop_goals_percent: 'dropGoalsPercent',\n total_goals: 'totalGoals',\n free_kicks: 'freeKicks',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n red_cards_20: 'redCards20',\n offloads: 'offloads',\n tackles: 'tackles',\n handling_errors: 'handlingErrors',\n carries_over_gainline: 'carriesOverGainline',\n foot_field_shots: 'footFieldShots',\n foot_out_shots: 'footOutShots',\n foot_shots: 'footShots',\n foot_kicks_50_22: 'footKicks5022',\n runs: 'runs',\n plus_minus: 'plusMinus',\n game_time: 'gameTime',\n\n // Team statistic\n penalty_tries: 'penaltyTries',\n scrums: 'scrums',\n scrums_won: 'scrumsWon',\n scrums_lost: 'scrumsLost',\n scrums_won_percent: 'scrumsWonPercent',\n scrums_won_free: 'scrumsWonFree',\n opponent_scrums_won: 'opponentScrumsWon',\n opponent_scrums_lost: 'opponentScrumsLost',\n lineouts: 'lineouts',\n lineouts_won: 'lineoutsWon',\n lineouts_lost: 'lineoutsLost',\n lineouts_steal: 'lineoutsSteal',\n lineouts_won_percent: 'lineoutsWonPercent',\n opponent_lineouts_lost: 'opponentLineoutsLost',\n quick_throws: 'quickThrows',\n rucks: 'rucks',\n rucks_won: 'rucksWon',\n rucks_lost: 'rucksLost',\n rucks_won_percent: 'rucksWonPercent',\n opponent_rucks_won: 'opponentRucksWon',\n opponent_rucks_lost: 'opponentRucksLost',\n mauls: 'mauls',\n mauls_won: 'maulsWon',\n mauls_lost: 'maulsLost',\n mauls_won_percent: 'maulWonPercent',\n opponent_mauls_won: 'opponentMaulsWon',\n opponent_mauls_lost: 'opponentMaulsLost',\n fouls: 'fouls',\n team_fouls: 'teamFouls',\n outs: 'outs',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class RugbyStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n newbie: boolean;\n rank: number;\n points: number;\n tries: number;\n penaltyTries: number;\n conversionKicks: number;\n conversionGoals: number;\n conversionMisses: number;\n conversionGoalsPercent: number;\n penalties: number;\n penaltyKicksOnGoal: number;\n penaltyMisses: number;\n penaltyGoals: number;\n penaltyGoalsPercent: number;\n tapPenalties: number;\n penaltyKicksToTouch: number;\n dropGoalKicks: number;\n dropGoals: number;\n dropGoalMisses: number;\n dropGoalsPercent: number;\n totalGoals: number;\n freeKicks: number;\n yellowCards: number;\n redCards: number;\n redCards20: number;\n offloads: number;\n tackles: number;\n handlingErrors: number;\n carriesOverGainline: number;\n footFieldShots: number;\n footOutShots: number;\n footKicks5022: number;\n footShots: number;\n runs: number;\n plusMinus: number;\n gameTime: number;\n\n scrums: number;\n scrumsWon: number;\n scrumsLost: number;\n scrumsWonPercent: number;\n scrumsWonFree: number;\n opponentScrumsWon: number;\n opponentScrumsLost: number;\n lineouts: number;\n lineoutsWon: number;\n lineoutsLost: number;\n lineoutsSteal: number;\n lineoutsWonPercent: number;\n opponentLineoutsLost: number;\n quickThrows: number;\n rucks: number;\n rucksWon: number;\n rucksLost: number;\n rucksWonPercent: number;\n opponentRucksWon: number;\n opponentRucksLost: number;\n mauls: number;\n maulsWon: number;\n maulsLost: number;\n maulWonPercent: number;\n opponentMaulsWon: number;\n opponentMaulsLost: number;\n fouls: number;\n teamFouls: number;\n outs: number;\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get totalFouls(): number {\n return Math.floor(10 * ((this.fouls || 0) + (this.teamFouls || 0))) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum AchievementTypes {\n by_game = 1,\n by_stage\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'type',\n value: 'value',\n type: 'type',\n },\n relation: {\n type: enumField(AchievementTypes),\n }\n})\nexport class Achievement extends BaseModel {\n id: number;\n name: string;\n alias: string;\n type: AchievementTypes;\n value: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Achievement } from './achievement';\nimport { Game } from './game';\nimport { TournamentStage } from './tournament-stage';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n achievement: 'achievement',\n tournament_stage: 'tournamentStage',\n team_id: 'teamId',\n game: 'game',\n mt_points: 'mtPoints',\n },\n relation: {\n achievement: Achievement,\n tournamentStage: TournamentStage,\n game: Game\n }\n})\nexport class TeamAchievement extends BaseModel {\n id: number;\n teamId: number;\n achievement: Achievement;\n game: Game;\n tournamentStage: TournamentStage;\n mtPoints: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_total_shots_on_goal: 'ppTotalShotsOnGoal',\n ev_total_shots_on_goal: 'evTotalShotsOnGoal',\n sh_total_shots_on_goal: 'shTotalShotsOnGoal',\n pp_goals: 'ppGoals',\n ev_goals: 'evGoals',\n sh_goals: 'shGoals',\n pp_counterattack_goals: 'ppCounterAttackGoals',\n pp_counterattack_on_goals: 'ppCounterAttackOnGoals',\n pp_counterattack_misses: 'ppCounterAttackMisses',\n pp_counterattack_shots_blocked: 'ppCounterAttackShotsBlocked',\n ev_counterattack_goals: 'evCounterAttackGoals',\n ev_counterattack_on_goals: 'evCounterAttackOnGoals',\n ev_counterattack_misses: 'evCounterAttackMisses',\n ev_counterattack_shots_blocked: 'evCounterAttackShotsBlocked',\n sh_counterattack_goals: 'shCounterAttackGoals',\n sh_counterattack_on_goals: 'shCounterAttackOnGoals',\n sh_counterattack_misses: 'shCounterAttackMisses',\n sh_counterattack_shots_blocked: 'shCounterAttackShotsBlocked',\n pp_maneuver_goals: 'ppManeuverGoals',\n pp_maneuver_on_goals: 'ppManeuverOnGoals',\n pp_maneuver_misses: 'ppManeuverMisses',\n pp_maneuver_shots_blocked: 'ppManeuverShotsBlocked',\n ev_maneuver_goals: 'evManeuverGoals',\n ev_maneuver_on_goals: 'evManeuverOnGoals',\n ev_maneuver_misses: 'evManeuverMisses',\n ev_maneuver_shots_blocked: 'evManeuverShotsBlocked',\n sh_maneuver_goals: 'shManeuverGoals',\n sh_maneuver_on_goals: 'shManeuverOnGoals',\n sh_maneuver_misses: 'shManeuverMisses',\n sh_maneuver_shots_blocked: 'shManeuverShotsBlocked',\n pp_center_forward_goals: 'ppCenterForwardGoals',\n pp_center_forward_on_goals: 'ppCenterForwardOnGoals',\n pp_center_forward_misses: 'ppCenterForwardMisses',\n pp_center_forward_shots_blocked: 'ppCenterForwardShotsBlocked',\n ev_center_forward_goals: 'evCenterForwardGoals',\n ev_center_forward_on_goals: 'evCenterForwardOnGoals',\n ev_center_forward_misses: 'evCenterForwardMisses',\n ev_center_forward_shots_blocked: 'evCenterForwardShotsBlocked',\n sh_center_forward_goals: 'shCenterForwardGoals',\n sh_center_forward_on_goals: 'shCenterForwardOnGoals',\n sh_center_forward_misses: 'shCenterForwardMisses',\n sh_center_forward_shots_blocked: 'shCenterForwardShotsBlocked',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n after_game_shootout_attempts: 'afterGameShootoutAttempts',\n after_game_shootout_goals: 'afterGameShootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n pp_saves: 'ppSaves',\n sh_saves: 'shSaves',\n ev_saves: 'evSaves',\n pp_counterattack_saves: 'ppCounterAttackSaves',\n sh_counterattack_saves: 'shCounterAttackSaves',\n ev_counterattack_saves: 'evCounterAttackSaves',\n pp_maneuver_saves: 'ppManeuverSaves',\n sh_maneuver_saves: 'shManeuverSaves',\n ev_maneuver_saves: 'evManeuverSaves',\n pp_center_forward_saves: 'ppCenterForwardSaves',\n sh_center_forward_saves: 'shCenterForwardSaves',\n ev_center_forward_saves: 'evCenterForwardSaves',\n pp_free_kick_saves: 'ppFreeKickSaves',\n sh_free_kick_saves: 'shFreeKickSaves',\n ev_free_kick_saves: 'evFreeKickSaves',\n pp_corner_saves: 'ppCornerSaves',\n sh_corner_saves: 'shCornerSaves',\n ev_corner_saves: 'evCornerSaves',\n pp_total_game_saves: 'ppTotalGameSaves',\n sh_total_game_saves: 'shTotalGameSaves',\n ev_total_game_saves: 'evTotalGameSaves',\n shootout_saves: 'shootoutSaves',\n after_game_shootout_saves: 'afterGameShootoutSaves',\n pp_goals_against: 'ppGoalsAgainst',\n sh_goals_against: 'shGoalsAgainst',\n ev_goals_against: 'evGoalsAgainst',\n goals_against: 'goalsAgainst',\n pp_counterattack_goals_against: 'ppCounterAttackGoalsAgainst',\n sh_counterattack_goals_against: 'shCounterAttackGoalsAgainst',\n ev_counterattack_goals_against: 'evCounterAttackGoalsAgainst',\n counterattack_goals_against: 'counterAttackGoalsAgainst',\n pp_maneuver_goals_against: 'ppManeuverGoalsAgainst',\n sh_maneuver_goals_against: 'shManeuverGoalsAgainst',\n ev_maneuver_goals_against: 'evManeuverGoalsAgainst',\n maneuver_goals_against: 'maneuverGoalsAgainst',\n pp_center_forward_goals_against: 'ppCenterForwardGoalsAgainst',\n sh_center_forward_goals_against: 'shCenterForwardGoalsAgainst',\n ev_center_forward_goals_against: 'evCenterForwardGoalsAgainst',\n center_forward_goals_against: 'centerForwardGoalsAgainst',\n pp_free_kick_goals_against: 'ppFreeKickGoalsAgainst',\n sh_free_kick_goals_against: 'shFreeKickGoalsAgainst',\n ev_free_kick_goals_against: 'evFreeKickGoalsAgainst',\n free_kick_goals_against: 'freeKickGoalsAgainst',\n pp_corner_goals_against: 'ppCornerGoalsAgainst',\n sh_corner_goals_against: 'shCornerGoalsAgainst',\n ev_corner_goals_against: 'evCornerGoalsAgainst',\n corner_goals_against: 'cornerGoalsAgainst',\n shootout_goals_against: 'shootoutGoalsAgainst',\n after_game_shootout_goals_against: 'afterGameShootoutGoalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n fouls: 'fouls',\n minor_penalties: 'minorPenalties',\n major_penalties: 'majorPenalties',\n match_penalties: 'matchPenalties',\n penalty_fouls: 'penaltyFouls',\n turnovers: 'turnovers',\n attack_fouls: 'attackFouls',\n personal_fouls: 'personalFouls',\n drawn_fouls: 'drawnFouls',\n drawn_turnovers: 'drawnTurnovers',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n losses: 'losses',\n steals: 'steals',\n pp_free_kick_goals: 'ppFreeKickGoals',\n pp_free_kick_on_goals: 'ppFreeKickOnGoals',\n pp_free_kick_misses: 'ppFreeKickMisses',\n pp_free_kick_shots_blocked: 'ppFreeKickShotsBlocked',\n sh_free_kick_goals: 'shFreeKickGoals',\n sh_free_kick_on_goals: 'shFreeKickOnGoals',\n sh_free_kick_misses: 'shFreeKickMisses',\n sh_free_kick_shots_blocked: 'shFreeKickShotsBlocked',\n ev_free_kick_goals: 'evFreeKickGoals',\n ev_free_kick_on_goals: 'evFreeKickOnGoals',\n ev_free_kick_misses: 'evFreeKickMisses',\n ev_free_kick_shots_blocked: 'evFreeKickShotsBlocked',\n free_kick_passes: 'freeKickPasses',\n free_kick_selfs: 'freeKickSelfs',\n pp_corner_goals: 'ppCornerGoals',\n pp_corner_on_goals: 'ppCornerOnGoals',\n pp_corner_misses: 'ppCornerMisses',\n pp_corner_shots_blocked: 'ppCornerShotsBlocked',\n sh_corner_goals: 'shCornerGoals',\n sh_corner_on_goals: 'shCornerOnGoals',\n sh_corner_misses: 'shCornerMisses',\n sh_corner_shots_blocked: 'shCornerShotsBlocked',\n ev_corner_goals: 'evCornerGoals',\n ev_corner_on_goals: 'evCornerOnGoals',\n ev_corner_misses: 'evCornerMisses',\n ev_corner_shots_blocked: 'evCornerShotsBlocked',\n corner_passes: 'cornerPasses',\n corner_selfs: 'cornerSelfs',\n tackles: 'tackles',\n player_efficiency: 'playerEfficiency',\n defense_select_positions: 'defenseSelectPositions',\n save_possessions: 'savePossessions',\n\n pp_shots: 'ppShots',\n ev_shots: 'evShots',\n sh_shots: 'shShots',\n pp_goals_percent: 'ppGoalsPercent',\n sh_goals_percent: 'shGoalsPercent',\n ev_goals_percent: 'evGoalsPercent',\n total_pp_goals: 'totalPpGoals',\n total_sh_goals: 'totalShGoals',\n total_ev_goals: 'totalEvGoals',\n goals: 'goals',\n total_goals: 'totalGoals',\n position_attack_goals: 'positionAttackGoals',\n position_attack_shots_on_goal: 'positionAttackShotsOnGoal',\n position_attack_shots_miss: 'positionAttackShotsMiss',\n position_attack_shots: 'positionAttackShots',\n position_attack_goals_percent: 'positionAttackGoalsPercent',\n total_counterattack_goals: 'totalCounterAttackGoals',\n counterattack_shot_on_goals: 'counterAttackShotOnGoals',\n counterattack_shot_misses: 'counterAttackShotMisses',\n counterattack_shots: 'counterAttackShots',\n counterattack_goals_percent: 'counterAttackGoalsPercent',\n total_maneuver_goals: 'totalManeuverGoals',\n maneuver_shot_misses: 'maneuverShotMisses',\n maneuver_shot_on_goals: 'maneuverShotOnGoals',\n maneuver_shots: 'maneuverShots',\n maneuver_goals_percent: 'maneuverGoalsPercent',\n total_center_forward_goals: 'totalCenterForwardGoals',\n center_forward_shot_on_goals: 'centerForwardShotOnGoals',\n center_forward_shot_misses: 'centerForwardShotMisses',\n center_forward_shots: 'centerForwardShots',\n center_forward_goals_percent: 'centerForwardGoalsPercent',\n total_free_kick_goals: 'totalFreeKickGoals',\n free_kick_shot_misses: 'freeKickShotMisses',\n free_kick_on_goals: 'freeKickOnGoals',\n total_free_kicks: 'totalFreeKicks',\n free_kick_goals_percent: 'freeKickGoalsPercent',\n total_corner_goals: 'totalCornerGoals',\n total_corners: 'totalCorners',\n total_in_game_goals: 'totalInGameGoals',\n in_game_shot_misses: 'inGameShotMisses',\n total_pp_shot_misses: 'totalPpShotMisses',\n shot_misses: 'shotMisses',\n total_pp_shots_on_goal: 'totalPpShotsOnGoal',\n in_game_shots_on_goals: 'inGameShotsOnGoals',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots: 'shots',\n shots_on_goal_percent: 'shotsOnGoalPercent',\n total_shots: 'totalShots',\n goals_percent: 'goalsPercent',\n total_goals_percent: 'totalGoalsPercent',\n face_offs: 'faceOffs',\n face_off_percent: 'faceOffPercent',\n total_fouls: 'totalFouls',\n total_penalties: 'totalPenalties',\n shootout_shots: 'shootoutShots',\n shootout_goals_percent: 'shootoutGoalsPercent',\n\n pp_perimetr_shot_goals: 'ppPerimetrShotGoals',\n pp_perimetr_shot_on_goals: 'ppPerimetrShotOnGoals',\n pp_perimetr_shot_misses: 'ppPerimetrShotMisses',\n pp_perimetr_shots_blocked: 'ppPerimetrShotsBlocked',\n ev_perimetr_shot_goals: 'evPerimetrShotGoals',\n ev_perimetr_shot_on_goals: 'evPerimetrShotOnGoals',\n ev_perimetr_shot_misses: 'evPerimetrShotMisses',\n ev_perimetr_shots_blocked: 'evPerimetrShotsBlocked',\n sh_perimetr_shot_goals: 'shPerimetrShotGoals',\n sh_perimetr_shot_on_goals: 'shPerimetrShotOnGoals',\n sh_perimetr_shot_misses: 'shPerimetrShotMisses',\n sh_perimetr_shots_blocked: 'shPerimetrShotsBlocked',\n pp_perimetr_shot_saves: 'ppPerimetrShotSaves',\n sh_perimetr_shot_saves: 'shPerimetrShotSaves',\n ev_perimetr_shot_saves: 'evPerimetrShotSaves',\n pp_perimetr_shot_goals_against: 'ppPerimetrShotGoalsAgainst',\n sh_perimetr_shot_goals_against: 'shPerimetrShotGoalsAgainst',\n ev_perimetr_shot_goals_against: 'evPerimetrShotGoalsAgainst',\n perimetr_shot_goals_against: 'perimetrShotGoalsAgainst',\n total_perimetr_shot_goals: 'totalPerimetrShotGoals',\n perimetr_shots_on_goals: 'perimetrShotsOnGoals',\n perimetr_shots_misses: 'perimetrShotsMisses',\n perimetr_shots: 'perimetrShots',\n perimetr_shot_goals_percent: 'perimetrShotGoalsPercent',\n\n pp_post_shot_goals: 'ppPostShotGoals',\n pp_post_shot_on_goals: 'ppPostShotOnGoals',\n pp_post_shot_misses: 'ppPostShotMisses',\n pp_post_shots_blocked: 'ppPostShotsBlocked',\n ev_post_shot_goals: 'evPostShotGoals',\n ev_post_shot_on_goals: 'evPostShotOnGoals',\n ev_post_shot_misses: 'evPostShotMisses',\n ev_post_shots_blocked: 'evPostShotsBlocked',\n sh_post_shot_goals: 'shPostShotGoals',\n sh_post_shot_on_goals: 'shPostShotOnGoals',\n sh_post_shot_misses: 'shPostShotMisses',\n sh_post_shots_blocked: 'shPostShotsBlocked',\n pp_post_shot_saves: 'ppPostShotSaves',\n sh_post_shot_saves: 'shPostShotSaves',\n ev_post_shot_saves: 'evPostShotSaves',\n pp_post_shot_goals_against: 'ppPostShotGoalsAgainst',\n sh_post_shot_goals_against: 'shPostShotGoalsAgainst',\n ev_post_shot_goals_against: 'evPostShotGoalsAgainst',\n post_shot_goals_against: 'postShotGoalsAgainst',\n total_post_shot_goals: 'totalPostShotGoals',\n post_shots_on_goals: 'postShotsOnGoals',\n post_shots_misses: 'postShotsMisses',\n post_shots: 'postShots',\n post_shot_goals_percent: 'postShotGoalsPercent',\n\n pp_fast_shot_goals: 'ppFastShotGoals',\n pp_fast_shot_on_goals: 'ppFastShotOnGoals',\n pp_fast_shot_misses: 'ppFastShotMisses',\n pp_fast_shots_blocked: 'ppFastShotsBlocked',\n ev_fast_shot_goals: 'evFastShotGoals',\n ev_fast_shot_on_goals: 'evFastShotOnGoals',\n ev_fast_shot_misses: 'evFastShotMisses',\n ev_fast_shots_blocked: 'evFastShotsBlocked',\n sh_fast_shot_goals: 'shFastShotGoals',\n sh_fast_shot_on_goals: 'shFastShotOnGoals',\n sh_fast_shot_misses: 'shFastShotMisses',\n sh_fast_shots_blocked: 'shFastShotsBlocked',\n pp_fast_shot_saves: 'ppFastShotSaves',\n sh_fast_shot_saves: 'shFastShotSaves',\n ev_fast_shot_saves: 'evFastShotSaves',\n pp_fast_shot_goals_against: 'ppFastShotGoalsAgainst',\n sh_fast_shot_goals_against: 'shFastShotGoalsAgainst',\n ev_fast_shot_goals_against: 'evFastShotGoalsAgainst',\n fast_shot_goals_against: 'fastShotGoalsAgainst',\n total_fast_shot_goals: 'totalFastShotGoals',\n fast_shots_on_goals: 'fastShotsOnGoals',\n fast_shots_misses: 'fastShotsMisses',\n fast_shots: 'fastShots',\n fast_shot_goals_percent: 'fastShotGoalsPercent',\n\n /*goalie stat*/\n position_attack_saves: 'positionAttackSaves',\n position_attack_shots_against: 'positionAttackShotsAgainst',\n position_attack_saves_percent: 'positionAttackSavesPercent',\n counterattack_saves: 'counterAttackSaves',\n counterattack_shots_against: 'counterAttackShotsAgainst',\n counterattack_saves_percent: 'counterAttackSavesPercent',\n center_forward_saves: 'centerForwardSaves',\n center_forward_shots_against: 'centerForwardShotsAgainst',\n center_forward_saves_percent: 'centerForwardSavesPercent',\n maneuver_saves: 'maneuverSaves',\n maneuver_shots_against: 'maneuverShotsAgainst',\n maneuver_saves_percent: 'maneuverSavesPercent',\n free_kick_saves: 'freeKickSaves',\n free_kick_shots_against: 'freeKickShotsAgainst',\n free_kick_saves_percent: 'freeKickSavesPercent',\n corner_saves: 'cornerSaves',\n corner_shots_against: 'cornerShotsAgainst',\n corner_saves_percent: 'cornerSavesPercent',\n in_game_saves: 'inGameSaves',\n saves: 'saves',\n total_saves: 'totalSaves',\n shootout_shots_against: 'shootoutShotsAgainst',\n shootout_saves_percent: 'shootoutSavesPercent',\n game_shots_against: 'gameShotsAgainst',\n saves_percent: 'savesPercent',\n total_shots_against: 'totalShotsAgainst',\n total_saves_percent: 'totalSavesPercent',\n in_game_goals_against: 'inGameGoalsAgainst',\n total_goals_against: 'totalGoalsAgainst',\n total_sh_saves: 'totalShSaves',\n total_sh_goals_against: 'totalShGoalsAgainst',\n total_sh_shots_against: 'totalShShotsAgainst',\n total_sh_saves_percent: 'totalShSavesPercent',\n total_ev_saves: 'totalEvSaves',\n total_ev_goals_against: 'totalEvGoalsAgainst',\n total_ev_shots_against: 'totalEvShotsAgainst',\n total_ev_saves_percent: 'totalEvSavesPercent',\n\n perimetr_shot_saves: 'perimetrShotSaves',\n perimetr_shots_against: 'perimetrShotsAgainst',\n perimetr_shot_saves_percent: 'perimetrShotSavesPercent',\n\n post_shot_saves: 'postShotSaves',\n post_shots_against: 'postShotsAgainst',\n post_shot_saves_percent: 'postShotSavesPercent',\n\n fast_shot_saves: 'fastShotSaves',\n fast_shots_against: 'fastShotsAgainst',\n fast_shot_saves_percent: 'fastShotSavesPercent',\n\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class WaterpoloStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppTotalShotsOnGoal: number;\n evTotalShotsOnGoal: number;\n shTotalShotsOnGoal: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppCounterAttackGoals: number;\n ppCounterAttackOnGoals: number;\n ppCounterAttackMisses: number;\n ppCounterAttackShotsBlocked: number;\n evCounterAttackGoals: number;\n evCounterAttackOnGoals: number;\n evCounterAttackMisses: number;\n evCounterAttackShotsBlocked: number;\n shCounterAttackGoals: number;\n shCounterAttackOnGoals: number;\n shCounterAttackMisses: number;\n shCounterAttackShotsBlocked: number;\n ppManeuverGoals: number;\n ppManeuverOnGoals: number;\n ppManeuverMisses: number;\n ppManeuverShotsBlocked: number;\n evManeuverGoals: number;\n evManeuverOnGoals: number;\n evManeuverMisses: number;\n evManeuverShotsBlocked: number;\n shManeuverGoals: number;\n shManeuverOnGoals: number;\n shManeuverMisses: number;\n shManeuverShotsBlocked: number;\n ppCenterForwardGoals: number;\n ppCenterForwardOnGoals: number;\n ppCenterForwardMisses: number;\n ppCenterForwardShotsBlocked: number;\n evCenterForwardGoals: number;\n evCenterForwardOnGoals: number;\n evCenterForwardMisses: number;\n evCenterForwardShotsBlocked: number;\n shCenterForwardGoals: number;\n shCenterForwardOnGoals: number;\n shCenterForwardMisses: number;\n shCenterForwardShotsBlocked: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n ppSaves: number;\n shSaves: number;\n evSaves: number;\n ppCounterAttackSaves: number;\n shCounterAttackSaves: number;\n evCounterAttackSaves: number;\n ppManeuverSaves: number;\n shManeuverSaves: number;\n evManeuverSaves: number;\n ppCenterForwardSaves: number;\n shCenterForwardSaves: number;\n evCenterForwardSaves: number;\n ppFreeKickSaves: number;\n shFreeKickSaves: number;\n evFreeKickSaves: number;\n ppCornerSaves: number;\n shCornerSaves: number;\n evCornerSaves: number;\n ppTotalGameSaves: number;\n shTotalGameSaves: number;\n evTotalGameSaves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n ppCounterAttackGoalsAgainst: number;\n shCounterAttackGoalsAgainst: number;\n evCounterAttackGoalsAgainst: number;\n counterAttackGoalsAgainst: number;\n ppManeuverGoalsAgainst: number;\n shManeuverGoalsAgainst: number;\n evManeuverGoalsAgainst: number;\n maneuverGoalsAgainst: number;\n ppCenterForwardGoalsAgainst: number;\n shCenterForwardGoalsAgainst: number;\n evCenterForwardGoalsAgainst: number;\n centerForwardGoalsAgainst: number;\n ppFreeKickGoalsAgainst: number;\n shFreeKickGoalsAgainst: number;\n evFreeKickGoalsAgainst: number;\n freeKickGoalsAgainst: number;\n ppCornerGoalsAgainst: number;\n shCornerGoalsAgainst: number;\n evCornerGoalsAgainst: number;\n cornerGoalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n fouls: number;\n minorPenalties: number;\n majorPenalties: number;\n matchPenalties: number;\n penaltyFouls: number;\n turnovers: number;\n attackFouls: number;\n personalFouls: number;\n drawnFouls: number;\n drawnTurnovers: number;\n yellowCards: number;\n redCards: number;\n losses: number;\n steals: number;\n ppFreeKickGoals: number;\n ppFreeKickOnGoals: number;\n ppFreeKickMisses: number;\n ppFreeKickShotsBlocked: number;\n shFreeKickGoals: number;\n shFreeKickOnGoals: number;\n shFreeKickMisses: number;\n shFreeKickShotsBlocked: number;\n evFreeKickGoals: number;\n evFreeKickOnGoals: number;\n evFreeKickMisses: number;\n evFreeKickShotsBlocked: number;\n freeKickPasses: number;\n freeKickSelfs: number;\n ppCornerGoals: number;\n ppCornerOnGoals: number;\n ppCornerMisses: number;\n ppCornerShotsBlocked: number;\n shCornerGoals: number;\n shCornerOnGoals: number;\n shCornerMisses: number;\n shCornerShotsBlocked: number;\n evCornerGoals: number;\n evCornerOnGoals: number;\n evCornerMisses: number;\n evCornerShotsBlocked: number;\n cornerPasses: number;\n cornerSelfs: number;\n tackles: number;\n playerEfficiency: number;\n defenseSelectPositions: number;\n savePossessions: number;\n\n /*additional statistic*/\n ppShots: number;\n shShots: number;\n evShots: number;\n ppGoalsPercent: number;\n shGoalsPercent: number;\n evGoalsPercent: number;\n totalPpGoals: number;\n totalShGoals: number;\n totalEvGoals: number;\n goals: number;\n totalGoals: number;\n positionAttackGoals: number;\n positionAttackShotsOnGoal: number;\n positionAttackShotsMiss: number;\n positionAttackShots: number;\n positionAttackGoalsPercent: number;\n totalCounterAttackGoals: number;\n counterAttackShotOnGoals: number;\n counterAttackShotMisses: number;\n counterAttackShots: number;\n counterAttackGoalsPercent: number;\n totalManeuverGoals: number;\n maneuverShotMisses: number;\n maneuverShotOnGoals: number;\n maneuverShots: number;\n maneuverGoalsPercent: number;\n totalCenterForwardGoals: number;\n centerForwardShotOnGoals: number;\n centerForwardShotMisses: number;\n centerForwardShots: number;\n centerForwardGoalsPercent: number;\n totalFreeKickGoals: number;\n freeKickShotMisses: number;\n freeKickOnGoals: number;\n totalFreeKicks: number;\n freeKickGoalsPercent: number;\n totalCornerGoals: number;\n totalCorners: number;\n totalInGameGoals: number;\n inGameShotMisses: number;\n totalPpShotMisses: number;\n shotMisses: number;\n totalPpShotsOnGoal: number;\n inGameShotsOnGoals: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shots: number;\n shotsOnGoalPercent: number;\n totalShots: number;\n goalsPercent: number;\n totalGoalsPercent: number;\n faceOffs: number;\n faceOffPercent: number;\n totalFouls: number;\n totalPenalties: number;\n shootoutShots: number;\n shootoutGoalsPercent: number;\n\n ppPerimetrShotGoals: number;\n ppPerimetrShotOnGoals: number;\n ppPerimetrShotMisses: number;\n ppPerimetrShotsBlocked: number;\n evPerimetrShotGoals: number;\n evPerimetrShotOnGoals: number;\n evPerimetrShotMisses: number;\n evPerimetrShotsBlocked: number;\n shPerimetrShotGoals: number;\n shPerimetrShotOnGoals: number;\n shPerimetrShotMisses: number;\n shPerimetrShotsBlocked: number;\n ppPerimetrShotSaves: number;\n shPerimetrShotSaves: number;\n evPerimetrShotSaves: number;\n ppPerimetrShotGoalsAgainst: number;\n shPerimetrShotGoalsAgainst: number;\n evPerimetrShotGoalsAgainst: number;\n perimetrShotGoalsAgainst: number;\n totalPerimetrShotGoals: number;\n perimetrShotsOnGoals: number;\n perimetrShotsMisses: number;\n perimetrShots: number;\n perimetrShotGoalsPercent: number;\n\n ppPostShotGoals: number;\n ppPostShotOnGoals: number;\n ppPostShotMisses: number;\n ppPostShotsBlocked: number;\n evPostShotGoals: number;\n evPostShotOnGoals: number;\n evPostShotMisses: number;\n evPostShotsBlocked: number;\n shPostShotGoals: number;\n shPostShotOnGoals: number;\n shPostShotMisses: number;\n shPostShotsBlocked: number;\n ppPostShotSaves: number;\n shPostShotSaves: number;\n evPostShotSaves: number;\n ppPostShotGoalsAgainst: number;\n shPostShotGoalsAgainst: number;\n evPostShotGoalsAgainst: number;\n postShotGoalsAgainst: number;\n totalPostShotGoals: number;\n postShotsOnGoals: number;\n postShotsMisses: number;\n postShots: number;\n postShotGoalsPercent: number;\n\n ppFastShotGoals: number;\n ppFastShotOnGoals: number;\n ppFastShotMisses: number;\n ppFastShotsBlocked: number;\n evFastShotGoals: number;\n evFastShotOnGoals: number;\n evFastShotMisses: number;\n evFastShotsBlocked: number;\n shFastShotGoals: number;\n shFastShotOnGoals: number;\n shFastShotMisses: number;\n shFastShotsBlocked: number;\n ppFastShotSaves: number;\n shFastShotSaves: number;\n evFastShotSaves: number;\n ppFastShotGoalsAgainst: number;\n shFastShotGoalsAgainst: number;\n evFastShotGoalsAgainst: number;\n fastShotGoalsAgainst: number;\n totalFastShotGoals: number;\n fastShotsOnGoals: number;\n fastShotsMisses: number;\n fastShots: number;\n fastShotGoalsPercent: number;\n\n /*goalie stat*/\n positionAttackSaves: number;\n positionAttackShotsAgainst: number;\n positionAttackSavesPercent: number;\n counterAttackSaves: number;\n counterAttackShotsAgainst: number;\n counterAttackSavesPercent: number;\n centerForwardSaves: number;\n centerForwardShotsAgainst: number;\n centerForwardSavesPercent: number;\n maneuverSaves: number;\n maneuverShotsAgainst: number;\n maneuverSavesPercent: number;\n freeKickSaves: number;\n freeKickShotsAgainst: number;\n freeKickSavesPercent: number;\n cornerSaves: number;\n cornerShotsAgainst: number;\n cornerSavesPercent: number;\n inGameSaves: number;\n saves: number;\n totalSaves: number;\n shootoutShotsAgainst: number;\n shootoutSavesPercent: number;\n gameShotsAgainst: number;\n savesPercent: number;\n totalShotsAgainst: number;\n totalSavesPercent: number;\n inGameGoalsAgainst: number;\n totalGoalsAgainst: number;\n totalShSaves: number;\n totalShGoalsAgainst: number;\n totalShShotsAgainst: number;\n totalShSavesPercent: number;\n totalEvSaves: number;\n totalEvGoalsAgainst: number;\n totalEvShotsAgainst: number;\n totalEvSavesPercent: number;\n\n perimetrShotSaves: number;\n perimetrShotsAgainst: number;\n perimetrShotSavesPercent: number;\n\n postShotSaves: number;\n postShotsAgainst: number;\n postShotSavesPercent: number;\n\n fastShotSaves: number;\n fastShotsAgainst: number;\n fastShotSavesPercent: number;\n\n newbie: boolean;\n rank: number;\n\n get assists(): number {\n return Math.floor(10 * ((this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0))) / 10;\n }\n\n get goalpass(): number {\n return Math.floor(10 * ((this.totalGoals || 0) + (this.assists || 0))) / 10;\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get penaltyTime(): string {\n if (!this.penaltyMinutes) {\n return '00:00';\n }\n const minutes = Math.floor(this.penaltyMinutes / 60);\n const seconds = Math.floor(this.penaltyMinutes - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ToFrontHook, ToBackHook, ModelInstance, enumField, listField } from './util';\nimport { TournamentDivision } from './tournament-division';\n\nexport enum TournamentRoundTypes {\n group = 1,\n playoff,\n}\n\nexport class TournamentRoundSettings extends BaseModel {\n toursCount: number;\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n type: 'type',\n divisions: 'divisions',\n },\n relation: {\n type: enumField(TournamentRoundTypes),\n divisions: listField(TournamentDivision),\n }\n})\nexport class TournamentRound extends BaseModel {\n id: number;\n name: string;\n type: TournamentRoundTypes;\n divisions: TournamentDivision[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n free_throws_made: 'freeThrowsMade',\n two_points_free_throw_made: 'twoPointsFreeThrowMade',\n three_points_free_throw_made: 'threePointsFreeThrowMade',\n total_free_throw_made: 'totalFreeThrowMade',\n one_points_made: 'onePointsMade',\n dunks_made: 'dunksMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n two_point_free_throw_attempts: 'twoPointFreeThrowAttempts',\n three_point_free_throw_attempts: 'threePointFreeThrowAttempts',\n total_free_throw_attempts: 'totalFreeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n dunk_attempts: 'dunkAttempts',\n two_point_percent: 'twoPointPercent',\n three_point_percent: 'threePointPercent',\n free_throw_percent: 'freeThrowPercent',\n total_free_throw_percent: 'totalFreeThrowPercent',\n one_point_percent: 'onePointPercent',\n dunks_made_percent: 'dunksMadePercent',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n drawn_fouls: 'drawnFouls',\n drawn_wrestler_attempts: 'drawnWrestlerAttempts',\n drawn_wrestler_won_attempts: 'drawnWrestlerWonAttempts',\n drawn_wrestler_lost_attempts: 'drawnWrestlerLostAttempts',\n wrestler_scrums_won: 'wrestlerScrumsWon',\n wrestler_scrums_lost: 'wrestlerScrumsLost',\n wrestler_scrums_tie: 'wrestlerScrumsTie',\n wrestler_scrum_points: 'wrestlerScrumPoints',\n wrestler_scrums_counterattack: 'wrestlerScrumsCounterattack',\n wrestler_scrums_counterattack_points: 'wrestlerScrumsCounterattackPoints',\n scrums_won: 'scrumsWon',\n scrums_lost: 'scrumsLost',\n scrums_tie: 'scrumsTie',\n scrum_points: 'scrumPoints',\n scrums_ball_advantage_won: 'scrumsBallAdvantageWon',\n scrums_ball_advantage_lost: 'scrumsBallAdvantageLost',\n scrums_ball_advantage_tie: 'scrumsBallAdvantageTie',\n scrums_ball_advantage_total: 'scrumsBallAdvantageTotal',\n scrums_ball_advantage_won_percent: 'scrumsBallAdvantageWonPercent',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n wrestler_scrums: 'wrestlerScrums',\n wrestler_scrums_won_percent: 'wrestlerScrumsWonPercent',\n scrums: 'scrums',\n scrums_won_percent: 'scrumsWonPercent',\n total_scrums: 'totalScrums',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class WrestballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n twoPointsMade: number;\n threePointsMade: number;\n freeThrowsMade: number;\n twoPointsFreeThrowMade: number;\n threePointsFreeThrowMade: number;\n totalFreeThrowMade: number;\n onePointsMade: number;\n dunksMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n twoPointFreeThrowAttempts: number;\n threePointFreeThrowAttempts: number;\n totalFreeThrowAttempts: number;\n onePointAttempts: number;\n dunkAttempts: number;\n twoPointPercent: number;\n threePointPercent: number;\n freeThrowPercent: number;\n totalFreeThrowPercent: number;\n onePointPercent: number;\n dunksMadePercent: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n drawnFouls: number;\n drawnWrestlerAttempts: number;\n drawnWrestlerWonAttempts: number;\n drawnWrestlerLostAttempts: number;\n wrestlerScrums: number;\n wrestlerScrumsWon: number;\n wrestlerScrumsLost: number;\n wrestlerScrumsTie: number;\n wrestlerScrumPoints: number;\n wrestlerScrumsWonPercent: number;\n wrestlerScrumsCounterattack: number;\n wrestlerScrumsCounterattackPoints: number;\n scrums: number;\n scrumsWon: number;\n scrumsLost: number;\n scrumsTie: number;\n scrumPoints: number;\n scrumsWonPercent: number;\n scrumsBallAdvantageWon: number;\n scrumsBallAdvantageLost: number;\n scrumsBallAdvantageTie: number;\n scrumsBallAdvantageTotal: number;\n scrumsBallAdvantageWonPercent: number;\n totalScrums: number;\n yellowCards: number;\n redCards: number;\n gameTime: number;\n plusMinus: number;\n newbie: boolean;\n rank: number;\n\n get totalFouls() {\n return Math.floor(10 * (\n (this.personalFouls || 0)\n )) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get onePointsPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n get twoPointsPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n get threePointsPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n get dunkMadePercent(): number {\n return !this.dunksMade || !this.dunkAttempts ? 0 : Math.round(1000 * this.dunksMade / this.dunkAttempts) / 10;\n }\n\n get freeThrowsPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, listField } from './util';\nimport { TournamentGroup } from './tournament-group';\nimport { TournamentDivision } from './tournament-division';\nimport { TournamentTeam } from './tournament-team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n competitor_team_id: 'competitorTeamId',\n team_score: 'teamScore',\n competitor_team_score: 'competitorTeamScore',\n }\n})\nexport class RoundTeamGame extends BaseModel {\n id: number;\n teamId: number;\n competitorTeamId: number;\n teamScore: number;\n competitorTeamScore: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_round_id: 'tournamentRoundId',\n tournament_team: 'tournamentTeam',\n group: 'group',\n division: 'division',\n division_id: 'divisionId',\n points: 'points',\n handicap: 'handicap',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n draw_games_count: 'drawGamesCount',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n games_won_percent: 'gamesWonPercent',\n score_points_sum: 'scorePointsSum',\n missed_points_sum: 'missedPointsSum',\n win_normal_time_games_count: 'winNormalTimeGamesCount',\n lose_normal_time_games_count: 'loseNormalTimeGamesCount',\n win_overtime_games_count: 'winOvertimeGamesCount',\n lose_overtime_games_count: 'loseOvertimeGamesCount',\n last_games_won: 'lastGamesWon',\n last_games_count: 'lastGamesCount',\n tries_scored: 'triesScored',\n tries_missed: 'triesMissed',\n attack_bonuses: 'attackBonuses',\n defense_bonuses: 'defenseBonuses',\n games_by_score_count: 'gamesByScoreCount',\n games: 'games',\n },\n relation: {\n group: TournamentGroup,\n division: TournamentDivision,\n tournamentTeam: TournamentTeam,\n games: listField(RoundTeamGame),\n }\n})\nexport class TournamentRoundTeam extends BaseModel {\n private _games: RoundTeamGame[];\n\n id: number;\n tournamentRoundId: number;\n tournamentTeam: TournamentTeam;\n group: TournamentGroup;\n division: TournamentDivision;\n divisionId: number;\n points: number;\n handicap: number;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n scoreSum: number;\n missedSum: number;\n scorePointsSum: number;\n missedPointsSum: number;\n winNormalTimeGamesCount: number;\n loseNormalTimeGamesCount: number;\n winOvertimeGamesCount: number;\n loseOvertimeGamesCount: number;\n gamesWonPercent: number;\n lastGamesWon: number;\n lastGamesCount: number;\n triesScored: number;\n triesMissed: number;\n attackBonuses: number;\n defenseBonuses: number;\n gamesByScoreCount: {[key: string]: number};\n gamesMapping: {[key: number]: RoundTeamGame[]} = {};\n\n set games(value: RoundTeamGame[]) {\n this._games = value;\n this.gamesMapping = value.reduce((acc, game) => {\n const competitorTeamId = game.teamId === this.tournamentTeam.team.id ? game.competitorTeamId : game.teamId;\n return {\n ...acc,\n [competitorTeamId]: [\n ...(acc[competitorTeamId] || []),\n game,\n ]\n };\n }, {});\n }\n\n get games(): RoundTeamGame[] {\n return this._games;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Tournament } from '../models/tournament';\nimport { map } from 'rxjs/operators';\nimport { TournamentNews } from '../models/tournament-news';\nimport { Game, GameStatuses } from '../models/game';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { Playoff } from '../models/playoff';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyStatistic } from '../models/hockey-statistic';\nimport { FootballStatistic } from '../models/football-statistic';\nimport { LeagueUserPermissions } from '../models/league-user';\nimport { HandballStatistic } from '../models/handball-statistic';\nimport { RugbyStatistic } from '../models/rugby-statistic';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { TeamAchievement } from '../models/team-achievement';\nimport { WaterpoloStatistic } from '../models/waterpolo-statistic';\nimport { TournamentRound } from '../models/tournament-round';\nimport { TournamentDivision } from '../models/tournament-division';\nimport { UserGender } from '../models/user';\nimport { GameUserLimitations } from '../models/game-user-limitation';\nimport { GameHockeyPosition } from '../models/hockey-profile';\nimport { GameFootballPosition } from '../models/football-profile';\nimport { GameHandballPosition } from '../models/handball-profile';\nimport { GameWaterpoloPosition } from '../models/waterpolo-profile';\nimport { GameBasketballPosition } from '../models/basketball-profile';\nimport { GameVolleyballPosition } from '../models/volleyball-profile';\nimport { GameRugbyPosition } from '../models/rugby-profile';\nimport { WrestballStatistic } from '../models/wrestball-statistic';\nimport { TournamentRoundTeam } from '../models/tournament-round-team';\n\nexport interface TournamentGamesFilters {\n tournamentIds?: number[];\n tournamentSeasonId?: number;\n tournamentStageId?: number;\n tournamentRoundId?: number;\n tournamentGroupId?: number;\n divisionId?: number;\n tournamentTour?: number;\n teamId?: number;\n playoffStage?: number;\n playoffRound?: number;\n playoffId?: number;\n isPlayoff?: boolean;\n status?: GameStatuses;\n statuses?: GameStatuses[];\n tournamentCourtId?: number;\n leaguePlayerId?: number;\n userId?: number;\n query?: string;\n date_from?: string;\n date_to?: string;\n}\n\nexport type StatisticGroupByTypes = 'team' | 'user' | 'team_user' | 'tournament_team' | 'league_player' | 'tournament_team_user'\n | 'month' | 'win_loses';\n\nexport interface StatisticFilters {\n league_id?: number;\n tournament_id?: number;\n tournament_ids?: number[];\n tournament_season_id?: number;\n tournament_season_ids?: number[];\n tournament_team_id?: number;\n league_player_id?: number;\n tournament_team_user_id?: number;\n team_id?: number;\n team_user_id?: number;\n user_id?: number;\n tournament_stage_id?: number;\n tournament_round_id?: number;\n division_id?: number;\n tournament_group_id?: number;\n tournament_tour?: number;\n playoff_stage?: number;\n playoff_round?: number;\n playoff_id?: number;\n is_playoff?: boolean;\n date_from?: string;\n date_to?: string;\n query?: string;\n gender?: UserGender;\n basketball_position?: GameBasketballPosition;\n volleyball_position?: GameVolleyballPosition;\n hockey_position?: GameHockeyPosition;\n football_position?: GameFootballPosition;\n handball_position?: GameHandballPosition;\n waterpolo_position?: GameWaterpoloPosition;\n rugby_position?: GameRugbyPosition;\n league_player_field_value?: {[key: string]: string};\n tournament_team_field_value?: {[key: string]: string};\n per_game?: boolean;\n group_by: StatisticGroupByTypes;\n only_closed?: boolean;\n check_ignore_game?: boolean;\n min_games_count?: number;\n order_by?: string;\n page?: number;\n size?: number;\n}\n\nexport interface StatisticLeadersFilters {\n tournament_id?: number;\n tournament_ids?: number[];\n tournament_season_id?: number;\n tournament_team_id?: number;\n team_id?: number;\n tournament_stage_id?: number;\n tournament_tour?: number;\n playoff_stage?: number;\n playoff_id?: number;\n date_from?: string;\n date_to?: string;\n per_game?: boolean;\n group_by: StatisticGroupByTypes;\n size?: number;\n fields: string[];\n}\n\nexport interface TournamentEventsListFilter {\n event?: TournamentEventTypes;\n search?: string;\n tournamentTour?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(tournamentId: number): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/${alias}/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getSeasonTournaments(seasonTournamentId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/season_tournament/${seasonTournamentId}/tournaments/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getNews(tournamentId: number): Promise<TournamentNews[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`)\n .pipe(map(result => TournamentNews.toFront(result)))\n .toPromise();\n }\n\n async getEvents(tournamentId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/events/`, {params, observe: 'response'})\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getTournamentStages(tournamentId: number): Promise<TournamentStage[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stages/`).pipe(\n map(data => TournamentStage.toFront(data))\n ).toPromise();\n }\n\n async getTournamentRounds(tournamentId: number): Promise<TournamentRound[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/rounds/`).pipe(\n map(data => TournamentRound.toFront(data)),\n ).toPromise();\n }\n\n async getTournamentDivisions(tournamentId: number): Promise<TournamentDivision[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/divisions/`).pipe(\n map(data => TournamentDivision.toFront(data)),\n ).toPromise();\n }\n\n async getPlayoff(tournamentId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/playoff/`).pipe(\n map(result => Playoff.toFront(result))\n ).toPromise();\n }\n\n async getPlayoffGames(playoffId: number, playoffNumber?: string): Promise<Game[]> {\n let params = new HttpParams();\n if (playoffNumber) {\n params = params.set('playoff_number', playoffNumber);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_playoff/${playoffId}/games/`,\n {params}\n ).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getGamesStages(tournamentId: number, roundId?: number): Promise<GameTimelineStages> {\n let params = new HttpParams();\n if (roundId) {\n params = params.set('tournament_round_id', roundId.toString());\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_stages/`,\n {params}\n )\n .pipe(map(data => GameTimelineStages.toFront(data)))\n .toPromise();\n }\n\n async getGames(tournamentId: number, page: number, size: number, filters: TournamentGamesFilters = {}): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games/`, {params, observe: 'response'})\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))).toPromise();\n }\n\n async getGamesDates(tournamentId: number): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_dates/`,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body\n }))\n ).toPromise();\n }\n\n async getGroups(tournamentId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/groups/`)\n .pipe(map(result => TournamentGroup.toFront(result)))\n .toPromise();\n }\n\n async getTeams(tournamentId: number, groupId?: number, short?: boolean, micro?: boolean): Promise<TournamentTeam[]> {\n let params = new HttpParams();\n if (groupId) {\n params = params.set('group_id', groupId.toString());\n }\n if (short) {\n params = params.set('short', '1');\n }\n if (micro) {\n params = params.set('micro', '1');\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams/`, {params})\n .pipe(map(result => TournamentTeam.toFront(result)))\n .toPromise();\n }\n\n async getStageTeams(tournamentId: number): Promise<TournamentStageTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stage_teams/`)\n .pipe(map(result => TournamentStageTeam.toFront(result)))\n .toPromise();\n }\n\n async getTeamsAchievements(tournamentId: number): Promise<TeamAchievement[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/achievements/`)\n .pipe(map(result => TeamAchievement.toFront(result)))\n .toPromise();\n }\n\n async getTeamById(tournamentTeamId: number): Promise<TournamentTeam> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/`)\n .pipe(map(result => TournamentTeam.toFront(result)))\n .toPromise();\n }\n\n async getTeamRoundTeams(tournamentTeamId: number): Promise<TournamentRoundTeam[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/tournament_round_teams/`\n ).pipe(\n map(response => TournamentRoundTeam.toFront(response))\n ).toPromise();\n }\n\n async getUserById(userId: number): Promise<TournamentTeamUser> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${userId}/`)\n .pipe(map(result => TournamentTeamUser.toFront(result)))\n .toPromise();\n }\n\n async getUserGames(tournamentUserId: number): Promise<Game[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${tournamentUserId}/games/`)\n .pipe(map(result => Game.toFront(result)))\n .toPromise();\n }\n\n async downloadTable(tournamentId: number, format: 'pdf' | 'xlsx', isChess?: boolean): Promise<any> {\n let httpParams = new HttpParams().set('file_type', format);\n if (isChess) {\n httpParams = httpParams.set('isChess', true);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/table_file/`, {\n params: httpParams,\n responseType: 'blob'\n }).toPromise();\n }\n\n async getBasketballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: BasketballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/basketball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = BasketballStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getVolleyballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: VolleyballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/volleyball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = VolleyballStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getHockeyStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: HockeyStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/hockey_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = HockeyStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getFootballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: FootballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/football_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = FootballStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getHandballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: HandballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/handball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = HandballStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getWaterpoloStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: WaterpoloStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/waterpolo_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = WaterpoloStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getBasketballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<BasketballStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/basketball_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: BasketballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getVolleyballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<VolleyballStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/volleyball_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: VolleyballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getHockeyStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<HockeyStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/hockey_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: HockeyStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getFootballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<FootballStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/football_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: FootballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getHandballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<HandballStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/handball_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: HandballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getRugbyStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<RugbyStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/rugby_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: RugbyStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getWaterpoloStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<WaterpoloStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/waterpolo_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: WaterpoloStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getWrestballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<WrestballStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/wrestball_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: WrestballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getTournamentTeamUsers(tournamentTeamId: number, includes: string[] = []): Promise<TournamentTeamUser[]> {\n let params = new HttpParams();\n for (const include of includes) {\n params = params.append('include', include);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/users/`, {params}).pipe(\n map(result => TournamentTeamUser.toFront(result))\n ).toPromise();\n }\n\n async myPermission(tournamentId: number): Promise<LeagueUserPermissions[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/permission/`).pipe(\n map((data: any) => (data.permissions || []).map(item => LeagueUserPermissions[item]))\n ).toPromise();\n }\n\n async getTournamentTeamTournaments(tournamentTeamId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getTournamentUserTournaments(tournamentTeamUserId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${tournamentTeamUserId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getTournamentTeamUsersLimitation(tournamentTeamId: number): Promise<GameUserLimitations[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/users_limitation/`).pipe(\n map(result => GameUserLimitations.toFront(result)),\n ).toPromise();\n }\n\n async downloadTeamSanctionList(tournamentTeamId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/sanction_list_file/?file_type=${fileType}`, {\n params: new HttpParams().set('file_type', fileType),\n responseType: 'blob'\n }).toPromise();\n }\n}\n\nexport function applyGamesFilters(filters: TournamentGamesFilters, params: HttpParams): HttpParams {\n if (filters.tournamentIds) {\n params = params.set('tournament_ids', filters.tournamentIds.join(','));\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.tournamentRoundId) {\n params = params.set('tournament_round_id', filters.tournamentRoundId.toString());\n }\n if (filters.tournamentGroupId) {\n params = params.set('tournament_group_id', filters.tournamentGroupId.toString());\n }\n if (filters.divisionId) {\n params = params.set('division_id', filters.divisionId.toString());\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.playoffRound) {\n params = params.set('playoff_round', filters.playoffRound.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n if (filters.tournamentCourtId) {\n params = params.set('tournament_court_id', filters.tournamentCourtId.toString());\n }\n if (filters.leaguePlayerId) {\n params = params.set('league_player_id', filters.leaguePlayerId.toString());\n }\n if (filters.userId) {\n params = params.set('user_id', filters.userId.toString());\n }\n if (filters.query) {\n params = params.set('query', filters.query);\n }\n if (filters.date_from) {\n params = params.set('date_from', filters.date_from);\n }\n if (filters.date_to) {\n params = params.set('date_to', filters.date_to);\n }\n if (filters.isPlayoff !== undefined && filters.isPlayoff !== null) {\n params = params.set('is_playoff', filters.isPlayoff ? '1' : '0');\n }\n return params;\n}\n\nexport function applyStatisticFilters(filters: StatisticFilters): object {\n const rawFilters = {};\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n if (key === 'basketball_position') {\n rawFilters[key] = GameBasketballPosition[filters[key]];\n } else if (key === 'volleyball_position') {\n rawFilters[key] = GameVolleyballPosition[filters[key]];\n } else if (key === 'hockey_position') {\n rawFilters[key] = GameHockeyPosition[filters[key]];\n } else if (key === 'football_position') {\n rawFilters[key] = GameFootballPosition[filters[key]];\n } else if (key === 'handball_position') {\n rawFilters[key] = GameHandballPosition[filters[key]];\n } else if (key === 'waterpolo_position') {\n rawFilters[key] = GameWaterpoloPosition[filters[key]];\n } else if (key === 'rugby_position') {\n rawFilters[key] = GameRugbyPosition[filters[key]];\n } else {\n rawFilters[key] = filters[key];\n }\n }\n }\n\n if (filters.per_game !== undefined) {\n rawFilters['per_game'] = filters.per_game ? '1' : '0';\n }\n\n if (filters.tournament_ids) {\n rawFilters['tournament_ids'] = filters.tournament_ids.join(',');\n }\n\n if (filters.tournament_season_ids) {\n rawFilters['tournament_season_ids'] = filters.tournament_season_ids.join(',');\n }\n\n if (filters.is_playoff !== undefined && filters.is_playoff !== null) {\n rawFilters['is_playoff'] = filters.is_playoff ? '1' : '0';\n }\n\n if (filters.only_closed !== undefined && filters.only_closed !== null) {\n rawFilters['only_closed'] = filters.only_closed ? '1' : '0';\n }\n\n if (filters.check_ignore_game !== undefined && filters.check_ignore_game !== null) {\n rawFilters['check_ignore_game'] = filters.check_ignore_game ? '1' : '0';\n }\n\n return rawFilters;\n}\n\nexport function applyStatisticLeadersFilters(filters: StatisticLeadersFilters, params: HttpParams): HttpParams {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n\n if (filters.tournament_ids) {\n params = params.set('tournament_ids', filters.tournament_ids.join(','));\n }\n if (filters.fields) {\n params = params.set('fields', filters.fields.join(','));\n }\n return params;\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n link: 'link',\n sort: 'sort',\n },\n relation: {\n picture: File\n }\n})\nexport class LeaguePartner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import {ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField} from './util';\nimport {File} from './file';\n\nexport enum BannerLocation {\n slider = 'slider',\n central = 'central',\n media = 'media',\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n link: 'link',\n sort: 'sort',\n location: 'location',\n },\n relation: {\n picture: File,\n location: enumField(BannerLocation),\n }\n})\nexport class LeagueBanner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n location: BannerLocation;\n\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n file: 'file',\n },\n relation: {\n file: File,\n }\n})\nexport class LeagueDocument extends BaseModel {\n id: number;\n file: File;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { Team } from './team';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n teams: 'teams',\n league_players: 'leaguePlayers',\n },\n relation: {\n teams: listField(Team),\n leaguePlayers: listField(LeaguePlayer),\n }\n})\nexport class TeamsAndUsers extends BaseModel {\n teams: Team[];\n leaguePlayers: LeaguePlayer[];\n\n get isEmpty(): boolean {\n return (!this.teams || this.teams.length === 0) &&\n (!this.leaguePlayers || this.leaguePlayers.length === 0);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n },\n})\nexport class SeasonTournament extends BaseModel {\n id: number;\n name: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { League } from '../models/league';\nimport { map } from 'rxjs/operators';\nimport { Tournament, TournamentStatuses } from '../models/tournament';\nimport { ConfigService } from '../services/config.service';\nimport { applyGamesFilters, TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { GameMediaFilters } from './media-api';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { Game, GameStatuses } from '../models/game';\nimport { LeaguePartner } from '../models/league-partner';\nimport { LeagueCourt } from '../models/league-court';\nimport { BannerLocation, LeagueBanner } from '../models/league-banner';\nimport { LeagueDocument } from '../models/league-document';\nimport { TeamsAndUsers } from '../models/teams-and-users';\nimport { SeasonTournament } from '../models/season-tournament';\nimport { LeaguePlayerField } from '../models/league-player-field';\n\nexport enum TournamentFilterStatusEnum {\n open = 1,\n recruitment,\n in_progress,\n closed,\n}\n\nexport interface TournamentListFilters {\n search?: string;\n statuses?: TournamentStatuses[];\n tournamentStatus?: TournamentFilterStatusEnum;\n seasonId?: number;\n seasonTournamentId?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class LeagueApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getByAlias(alias: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${alias}/`).pipe(\n map(result => League.toFront(result))\n ).toPromise();\n }\n\n async getByDomain(domain: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/by_domain/${domain}/`).pipe(\n map(result => League.toFront(result))\n ).toPromise();\n }\n\n async getSeasonTournaments(leagueId: number): Promise<SeasonTournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/season_tournaments/`).pipe(\n map(response => SeasonTournament.toFront(response)),\n ).toPromise();\n }\n\n async getTournaments(leagueId: number, filters?: TournamentListFilters): Promise<Tournament[]> {\n let params = new HttpParams();\n if (filters) {\n params = applyTournamentListFilters(params, filters);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/`, {params}).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getTournamentsPaginated(\n leagueId: number,\n page: number,\n size: number,\n filters?: TournamentListFilters,\n ): Promise<PaginatedResponse<Tournament[]>> {\n let params = new HttpParams().set('page', page).set('size', size);\n if (filters) {\n params = applyTournamentListFilters(params, filters);\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/`,\n {params, observe: 'response'}\n ).pipe(\n map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: Tournament.toFront(response.body)\n }))\n ).toPromise();\n }\n\n async getEvents(\n leagueId: number,\n page: number,\n size: number,\n filters?: TournamentEventsListFilter,\n ): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/events/`,\n {params, observe: 'response'},\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getTournamentSeasons(leagueId: number): Promise<TournamentSeason[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`).pipe(\n map(result => TournamentSeason.toFront(result))\n ).toPromise();\n }\n\n async getGames(leagueId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/games/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getSeasons(leagueId: number, page = 1, size = 20, notClosed?: boolean, include?: string[]): Promise<PaginatedResponse<TournamentSeason[]>> {\n const params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString())\n .set('not_closed', notClosed ? '1' : '')\n .set('include', include ? include.join(',') : '');\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`, {\n params,\n observe: 'response'\n })\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentSeason.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getPartners(leagueId: number): Promise<LeaguePartner[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/partners/`).pipe(\n map(result => LeaguePartner.toFront(result))\n ).toPromise();\n }\n\n async getBanners(leagueId: number, location?: BannerLocation): Promise<LeagueBanner[]> {\n const params = location ? new HttpParams().set('location', location) : new HttpParams();\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/banners/`, {params}).pipe(\n map(result => LeagueBanner.toFront(result))\n ).toPromise();\n }\n\n async getCourts(leagueId: number): Promise<LeagueCourt[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/courts/`).pipe(\n map(result => LeagueCourt.toFront(result))\n ).toPromise();\n }\n\n async getGraphicSettings(leagueId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/graphic_settings/`)\n .toPromise();\n }\n\n async getDocuments(leagueId: number): Promise<LeagueDocument[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/documents/`).pipe(\n map(result => LeagueDocument.toFront(result))\n ).toPromise();\n }\n\n async searchTeamsAndUsers(leagueId: number, query: string): Promise<TeamsAndUsers> {\n const params = (new HttpParams()).set('query', query);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/team_and_user_search/`, {params}\n ).pipe(\n map(result => TeamsAndUsers.toFront(result))\n ).toPromise();\n }\n\n async getLeaguePlayerFields(leagueId: number): Promise<LeaguePlayerField[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/player_fields/`).pipe(\n map(result => LeaguePlayerField.toFront(result)),\n ).toPromise();\n }\n}\n\nfunction applyTournamentListFilters(params: HttpParams, filters: TournamentListFilters): HttpParams {\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.statuses) {\n params = params.set('statuses', filters.statuses.map(s => TournamentStatuses[s]).join(','));\n }\n if (filters.tournamentStatus) {\n params = params.set('tournament_status', TournamentFilterStatusEnum[filters.tournamentStatus]);\n }\n if (filters.seasonId) {\n params = params.set('season_id', filters.seasonId);\n }\n if (filters.seasonTournamentId) {\n params = params.set('season_tournament_id', filters.seasonTournamentId);\n }\n return params;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { LeagueNews, LeagueNewsType } from '../models/league-news';\nimport { map } from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class LeagueNewsApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getLeagueNewsList(leagueId: number, page: number, size: number, type: LeagueNewsType = LeagueNewsType.text, seasonId?: number): Promise<PaginatedResponse<LeagueNews[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString())\n .set('type', LeagueNewsType[type]);\n if (seasonId) {\n params = params.set('season', seasonId.toString());\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/`, {params, observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: LeagueNews.toFront(response.body)\n })))\n .toPromise();\n }\n\n async getMainLeagueNews(leagueId: number): Promise<LeagueNews> {\n return this.httpClient.get<any[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => response && response.length > 0 ? LeagueNews.toFront(response[0]) : null))\n .toPromise();\n }\n\n async getMainLeagueNewsList(leagueId: number): Promise<LeagueNews[]> {\n return this.httpClient.get<any[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => LeagueNews.toFront(response)))\n .toPromise();\n }\n\n async getNewsById(newsId: number): Promise<LeagueNews> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_news/${newsId}/`)\n .pipe(map(response => LeagueNews.toFront(response)))\n .toPromise();\n }\n\n async getTournamentNewsList(tournamentId: number): Promise<PaginatedResponse<LeagueNews[]>> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`, {observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: LeagueNews.toFront(response.body)\n })))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { LeaguePlayer } from '../models/league-player';\nimport { map } from 'rxjs/operators';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\n\n@Injectable({providedIn: 'root'})\nexport class LeaguePlayerApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(leaguePlayerId: number): Promise<LeaguePlayer> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_player/${leaguePlayerId}/`).pipe(\n map(item => LeaguePlayer.toFront(item))\n ).toPromise();\n }\n\n getTournamentUsers(leaguePlayerId: number, seasonId?: number): Promise<TournamentTeamUser[]> {\n let params = new HttpParams();\n if (seasonId) {\n params = params.set('season_id', seasonId.toString());\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_player/${leaguePlayerId}/tournament_users/`, {params}).pipe(\n map(item => TournamentTeamUser.toFront(item))\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\n\ninterface LeagueTeamFilters {\n tournament_id?: number;\n tournament_season_id?: number;\n query?: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class LeagueTeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getLeagueTeams(filters?: LeagueTeamFilters): Promise<Team[]> {\n let params = new HttpParams();\n if (filters) {\n if (filters.tournament_id) {\n params = params.set('tournament_id', filters.tournament_id);\n }\n if (filters.tournament_season_id) {\n params = params.set('tournament_season_id', filters.tournament_season_id);\n }\n if (filters.query) {\n params = params.set('query', filters.query);\n }\n }\n return this.httpClient.get<any[]>(`${this.configService.get('apiUrl')}/api/v1/league_team/`, {params}).pipe(\n map(response => response.map(item => Team.toFront(item))),\n ).toPromise();\n }\n\n async getLeagueTeam(teamId: number): Promise<Team> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_team/${teamId}/`).pipe(\n map(response => Team.toFront(response)),\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { MediaItem } from '../models/media-item';\nimport { Game, GameStatuses } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\nimport { applyGamesFilters, TournamentGamesFilters } from './tournament-api';\n\nexport interface GameMediaFilters extends TournamentGamesFilters {\n mediaCount?: number;\n}\n\nexport interface MediaFilters {\n mediaType?: 'photo' | 'video' | 'live_video';\n sort?: string;\n teamId?: number;\n statuses?: GameStatuses[];\n}\n\n@Injectable({providedIn: 'root'})\nexport class MediaApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getMedia(mediaId: number): Promise<MediaItem> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/`).pipe(\n map(result => MediaItem.toFront(result))\n ).toPromise();\n }\n\n async getTournamentGameMedia(tournamentId: number, page: number, size: number, filters?: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/game_media/`, {observe: 'response', params}).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getLeagueGameMedia(leagueId: number, page: number, size: number, filters?: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/game_media/`, {observe: 'response', params}).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getLeagueMedia(leagueId: number, page: number, size: number, filters: MediaFilters = {}): Promise<PaginatedResponse<MediaItem[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters.mediaType) {\n params = params.set('media_type', filters.mediaType);\n }\n if (filters.sort) {\n params = params.set('sort', filters.sort);\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/media/`, {params, observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: MediaItem.toFront(response.body)\n }))).toPromise();\n }\n\n async getGameMediaById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/game_media/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getGameMedia(gameId: number): Promise<MediaItem[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/media/?size=1000`).pipe(\n map(result => MediaItem.toFront(result))\n ).toPromise();\n }\n\n async createZip(mediaIds: number[]): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/media/zip/`, mediaIds, { responseType: 'blob' })\n .toPromise();\n }\n\n async downloadMedia(mediaId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/download/`,{responseType: 'blob'})\n .toPromise();\n }\n}\n\nexport function applyGameMediaFilters(filters: GameMediaFilters, params: HttpParams, ): HttpParams {\n if (filters) {\n params = applyGamesFilters(filters, params);\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.playoffId) {\n params = params.set('playoff_id', filters.playoffId.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.playoffRound) {\n params = params.set('playoff_round', filters.playoffRound.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.mediaCount) {\n params = params.set('media_count', filters.mediaCount.toString());\n }\n }\n return params;\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { User } from './user';\n\nexport enum PollStatuses {\n open = 1,\n closed,\n archived,\n}\n\n@ModelInstance({\n mappingFields: {\n uuid: 'uuid',\n name: 'name'\n }\n})\nexport class PollVariant extends BaseModel {\n uuid: string;\n name: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n answer_uuid: 'answerUuid',\n user: 'user',\n poll_id: 'pollId',\n },\n relation: {\n user: User\n }\n})\nexport class PollAnswer extends BaseModel {\n id: number;\n answerUuid: string;\n user: User;\n pollId: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n active: 'active',\n status: 'status',\n team_id: 'teamId',\n name: 'name',\n description: 'description',\n variants: 'variants',\n author: 'author',\n answers: 'answers',\n multiple_answer: 'multipleAnswer',\n anonymous: 'anonymous',\n created_at: 'createdAt'\n },\n relation: {\n status: enumField(PollStatuses),\n variants: PollVariant,\n author: User,\n answers: PollAnswer,\n createdAt: DateTimeField,\n }\n})\nexport class Poll extends BaseModel {\n id: number;\n active: boolean;\n teamId: number;\n status: PollStatuses;\n name: string;\n description: string;\n _variants: PollVariant[];\n author: User;\n _answers: PollAnswer[];\n multipleAnswer: boolean;\n anonymous: boolean;\n createdAt: Date;\n variantsWithAnswers: {variant: PollVariant, percent: number}[] = [];\n\n set variants(value: PollVariant[]) {\n this._variants = value || [];\n if (this._answers) {\n this.calculateAnswersPercentage();\n }\n }\n get variants(): PollVariant[] {\n return this._variants;\n }\n\n set answers(value: PollAnswer[]) {\n this._answers = value || [];\n if (this._variants) {\n this.calculateAnswersPercentage();\n }\n }\n get answers(): PollAnswer[] {\n return this._answers;\n }\n\n calculateAnswersPercentage() {\n if (!this._answers.length) {\n return;\n }\n\n const variants = this._variants.map(v => v.uuid);\n const answersByVariant = this._answers.reduce((acc, item) => {\n if (variants.indexOf(item.answerUuid) < 0) {\n return acc;\n }\n if (!acc[item.answerUuid]) {\n acc[item.answerUuid] = 0;\n }\n acc[item.answerUuid]++;\n return acc;\n }, {});\n this.variantsWithAnswers = this._variants.map(item => ({\n variant: item,\n percent: answersByVariant[item.uuid] ? Math.round(100 * answersByVariant[item.uuid] / this._answers.length) : 0\n }))\n .sort((a, b) => a.percent > b.percent ? -1 : 1);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n user: 'user',\n team: 'team',\n team_id: 'teamId',\n user_accept: 'userAccept',\n team_accept: 'teamAccept',\n users_count: 'usersCount',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n score_sum: 'scoreSum',\n created_at: 'createdAt',\n updated_at: 'updatedAt',\n },\n relation: {\n user: User,\n team: Team,\n createdAt: DateTimeField,\n updateAt: DateTimeField,\n }\n})\nexport class TeamInvite extends BaseModel {\n id: number;\n userId: number;\n user: User;\n teamId: number;\n team: Team;\n userAccept: boolean;\n teamAccept: boolean;\n usersCount: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n createdAt: Date;\n updatedAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { TeamUser } from './team-user';\nimport { Game } from './game';\n\nexport enum GameInviteStatus {\n accepted = 1,\n declined,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_user: 'teamUser',\n game_id: 'gameId',\n game: 'game',\n status: 'status',\n },\n relation: {\n game: Game,\n teamUser: TeamUser,\n status: enumField(GameInviteStatus),\n }\n})\nexport class GameInvite extends BaseModel {\n id: number;\n teamUser: TeamUser;\n gameId: number;\n game: Game;\n status: GameInviteStatus;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","export enum TeamEventTypes {\n training = 1,\n other = 2,\n}\n","import { TeamEventTypes } from '../models/team-event-type';\nimport { Locales } from './locales';\n\nexport const TeamEventTypeLocalization = {\n [Locales.ru]: {\n [TeamEventTypes.training]: 'Тренировка',\n [TeamEventTypes.other]: 'Другое',\n },\n [Locales.en]: {\n [TeamEventTypes.training]: 'Training',\n [TeamEventTypes.other]: 'Other',\n }\n};\n","import { BaseModel, enumField, ModelInstance, DateTimeField, ToBackHook, ToFrontHook } from './util';\nimport { Team } from './team';\nimport { TeamEventTypeLocalization } from '../localization/team-event-type';\nimport { TeamEventTypes } from './team-event-type';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n team: 'team',\n event_type: 'eventType',\n event_custom_name: 'eventCustomName',\n description: 'description',\n datetime: 'datetime',\n location: 'location',\n },\n relation: {\n eventType: enumField(TeamEventTypes),\n team: Team,\n datetime: DateTimeField,\n }\n})\nexport class TeamEvent extends BaseModel {\n id: number;\n teamId: number;\n team: Team;\n eventType: TeamEventTypes;\n eventCustomName: string;\n description: string;\n datetime: Date;\n location: string;\n\n get name(): string {\n if (this.eventType === TeamEventTypes.other) {\n return this.eventCustomName;\n }\n return TeamEventTypeLocalization[this.eventType];\n }\n\n get isClosed(): boolean {\n return this.datetime.getTime() < new Date().getTime();\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum TeamEventInviteStatuses {\n accepted = 1,\n declined = 2\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_event_id: 'teamEventId',\n team_user_id: 'teamUserId',\n status: 'status',\n },\n relation: {\n status: enumField(TeamEventInviteStatuses)\n }\n})\nexport class TeamEventInvite {\n id: number;\n teamEventId: number;\n teamUserId: number;\n status: TeamEventInviteStatuses;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\nimport { TeamUser } from './team-user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team_invite_id: 'tournamentTeamInviteId',\n tournament_team_id: 'tournamentTeamId',\n team_user: 'teamUser',\n accepted: 'accepted'\n },\n relation: {\n teamUser: TeamUser\n }\n})\nexport class TournamentTeamUserInvite extends BaseModel {\n id: number;\n tournamentTeamInviteId: number;\n tournamentTeamId: number;\n teamUser: TeamUser;\n accepted: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Team } from './team';\nimport { Tournament } from './tournament';\nimport { TournamentTeamUserInvite } from './tournament-team-user-invite';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team: 'team',\n tournament: 'tournament',\n team_accept: 'teamAccept',\n organization_accept: 'organizationAccept',\n user_invites_count: 'userInvitesCount',\n user_invites: 'userInvites',\n notifications_count: 'notificationsCount',\n },\n relation: {\n team: Team,\n tournament: Tournament,\n userInvites: TournamentTeamUserInvite,\n }\n})\nexport class TournamentInvite extends BaseModel {\n id: number;\n team: Team;\n tournament: Tournament;\n teamAccept: boolean;\n organizationAccept: boolean;\n userInvitesCount: number;\n userInvites: TournamentTeamUserInvite[];\n notificationsCount: number;\n\n get isOpen(): boolean {\n return (this.teamAccept === null || this.organizationAccept === null) && this.teamAccept !== false && this.organizationAccept !== false;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { Team } from './team';\nimport { Poll } from './poll';\nimport { Game } from './game';\nimport { TeamInvite } from './team-invite';\nimport { TeamUser } from './team-user';\nimport { GameInvite } from './game-invite';\nimport { TeamEvent } from './team-event';\nimport { TeamEventInvite } from './team-event-invite';\nimport { Tournament } from './tournament';\nimport { TournamentInvite } from './tournament-invite';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\n\nexport enum NotificationType {\n team_updated = 1,\n team_invited,\n team_join_request,\n team_join_declined_by_team,\n team_join_declined_by_user,\n team_join_canceled_by_team,\n team_join_canceled_by_user,\n team_joined_for_user,\n team_joined_for_team,\n team_user_role_changed_for_user,\n team_user_role_changed_for_team,\n team_user_number_changed,\n team_user_deleted_for_user,\n team_user_deleted_for_team,\n team_user_left,\n\n game_updated,\n game_invited,\n game_invite_accepted,\n game_invite_declined,\n game_remind,\n game_won,\n game_losing,\n game_tech_defeat,\n game_tech_victory,\n\n poll_created,\n poll_closed,\n\n team_event_invited,\n team_event_accepted,\n team_event_declined,\n team_event_remind,\n\n tournament_invited,\n tournament_joined,\n tournament_join_declined,\n tournament_join_canceled,\n tournament_user_invited,\n tournament_user_accepted_for_team,\n tournament_user_accepted_for_user,\n tournament_user_added,\n tournament_user_declined_for_team,\n tournament_user_declined_for_user,\n tournament_user_invite_deleted,\n tournament_user_deleted,\n tournament_user_disqualified_for_team,\n tournament_user_disqualified_for_user,\n tournament_user_disqualification_updated_for_team,\n tournament_user_disqualification_updated_for_user,\n tournament_team_deleted,\n\n org_tournament_invite_created,\n org_tournament_invite_declined,\n org_tournament_invite_deleted,\n org_tournament_invite_changed,\n org_tournament_user_deleted,\n org_tournament_user_invited,\n org_tournament_user_has_changes,\n org_tournament_team_leave,\n}\n\nexport enum NotificationServiceEnum {\n public = 1,\n org\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n event_type: 'event',\n data: 'data',\n initiator: 'initiator',\n team: 'team',\n team_invite: 'teamInvite',\n team_user: 'teamUser',\n poll: 'poll',\n game: 'game',\n game_invite: 'gameInvite',\n team_event: 'teamEvent',\n team_event_invite: 'teamEventInvite',\n tournament: 'tournament',\n tournament_invite: 'tournamentInvite',\n tournament_team: 'tournamentTeam',\n viewed: 'viewed',\n protected: 'protected',\n service: 'service',\n created_at: 'createdAt',\n },\n relation: {\n event: enumField(NotificationType),\n initiator: User,\n team: Team,\n teamInvite: TeamInvite,\n teamUser: TeamUser,\n poll: Poll,\n game: Game,\n gameInvite: GameInvite,\n teamEvent: TeamEvent,\n teamEventInvite: TeamEventInvite,\n tournament: Tournament,\n tournamentInvite: TournamentInvite,\n tournamentTeam: TournamentTeam,\n service: enumField(NotificationServiceEnum),\n createdAt: DateTimeField,\n }\n})\nexport class Notification extends BaseModel {\n id: number;\n event: NotificationType;\n data: any;\n initiator: User;\n team: Team;\n teamInvite: TeamInvite;\n teamUser: TeamUser;\n poll: Poll;\n game: Game;\n gameInvite: GameInvite;\n teamEvent: TeamEvent;\n teamEventInvite: TeamEventInvite;\n tournament: Tournament;\n tournamentInvite: TournamentInvite;\n tournamentTeam: TournamentTeam;\n viewed: boolean;\n protected: boolean;\n service: NotificationServiceEnum;\n createdAt: Date;\n\n get important(): boolean {\n return true;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum NotificationAllowTypes {\n all = 1,\n important,\n none\n}\n\n@ModelInstance({\n mappingFields: {\n user_id: 'userId',\n popup: 'popup',\n sound: 'sound',\n browser: 'browser',\n email: 'email'\n },\n relation: {\n sound: enumField(NotificationAllowTypes),\n browser: enumField(NotificationAllowTypes),\n }\n})\nexport class NotificationSettings extends BaseModel {\n userId: number;\n popup: boolean;\n sound: NotificationAllowTypes;\n browser: NotificationAllowTypes;\n email: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Notification } from '../models/notification';\nimport { NotificationSettings } from '../models/notification-settings';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\n\nexport interface NotificationFilters {\n protected?: boolean;\n not_viewed?: boolean;\n important?: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class NotificationBaseApi {\n protected apiUrl: string;\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCount(): Promise<number> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/count/`)\n .pipe(map(data => +data))\n .toPromise();\n }\n\n async getList(page: number, size: number, filters: NotificationFilters = {}): Promise<PaginatedResponse<Notification[]>> {\n let params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString());\n for (const key of Object.keys(filters)) {\n params = params.set(key, filters[key]);\n }\n\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/`, {params, observe: 'response'})\n .pipe(\n map(response => {\n const data: Notification[] = Notification.toFront(response.body);\n return {\n total: +response.headers.get('x-page-count'),\n data\n };\n }),\n ).toPromise();\n }\n\n async markViewed(notificationId: number, viewed: boolean): Promise<Notification> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/${notificationId}/viewed/`, {viewed})\n .pipe(map(data => Notification.toFront(data)))\n .toPromise();\n }\n\n async markAllViewed(): Promise<Notification[]> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/viewed/`, {})\n .pipe(map(data => Notification.toFront(data)))\n .toPromise();\n }\n\n async getNotificationSettings(): Promise<NotificationSettings> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`)\n .pipe(map(data => NotificationSettings.toFront(data)))\n .toPromise();\n }\n\n async updateNotificationSettings(data: NotificationSettings): Promise<NotificationSettings> {\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`,\n NotificationSettings.toBack(data)\n )\n .pipe(map(result => NotificationSettings.toFront(result)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class NotificationApi extends NotificationBaseApi {\n protected apiUrl = '/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class OrgNotificationApi extends NotificationBaseApi {\n protected apiUrl = '/org/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\nimport { City } from '../models/city';\nimport { Sport } from '../models/sport';\n\n@Injectable({providedIn: 'root'})\nexport class ReferenceApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCities(): Promise<City[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/reference/cities/`)\n .pipe(\n map(data => City.toFront(data))\n ).toPromise();\n }\n\n async getSports(): Promise<Sport[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/sport/`)\n .pipe(\n map(data => Sport.toFront(data))\n ).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { RugbyStatistic } from './rugby-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: RugbyStatistic,\n competitorTeam: RugbyStatistic\n }\n})\nexport class RugbyGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: RugbyStatistic;\n competitorTeam: RugbyStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n tries: 'tries',\n penalty_tries: 'penaltyTries',\n conversion_goals: 'conversionGoals',\n conversion_misses: 'conversionMisses',\n penalty_misses: 'penaltyMisses',\n penalty_goals: 'penaltyGoals',\n drop_goals: 'dropGoals',\n drop_goal_misses: 'dropGoalMisses',\n free_kicks: 'freeKicks',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n red_cards_20: 'redCards20',\n offloads: 'offloads',\n tackles: 'tackles',\n handling_errors: 'handlingErrors',\n carries_over_gainline: 'carriesOverGainline',\n foot_field_shots: 'footFieldShots',\n foot_out_shots: 'footOutShots',\n foot_kicks_50_22: 'footKicks5022',\n fouls: 'fouls',\n team_fouls: 'teamFouls',\n outs: 'outs',\n runs: 'runs',\n game_time: 'gameTime',\n plus_minus: 'plusMinus'\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class RugbyGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n tries: number;\n penaltyTries: number;\n conversionGoals: number;\n conversionMisses: number;\n penaltyMisses: number;\n penaltyGoals: number;\n dropGoals: number;\n dropGoalMisses: number;\n freeKicks: number;\n yellowCards: number;\n redCards: number;\n offloads: number;\n tackles: number;\n handlingErrors: number;\n carriesOverGainline: number;\n footFieldShots: number;\n footOutShots: number;\n footKicks5022: number;\n fouls: number;\n teamFouls: number;\n outs: number;\n runs: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get conversionKicks(): number {\n return (this.conversionGoals || 0) + (this.conversionMisses || 0);\n }\n\n get conversionGoalsPercent(): number {\n if (!this.conversionKicks) {\n return 0;\n }\n return Math.floor(1000 * this.conversionGoals / this.conversionKicks) / 10;\n }\n\n get penaltyKicksOnGoal(): number {\n return (this.penaltyGoals || 0) + (this.penaltyMisses || 0);\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penaltyKicksOnGoal) {\n return 0;\n }\n return Math.floor(1000 * this.penaltyGoals / this.penaltyKicksOnGoal) / 10;\n }\n\n get dropGoalKicks(): number {\n return (this.dropGoals || 0) + (this.dropGoalMisses || 0);\n }\n\n get dropGoalsPercent(): number {\n if (!this.dropGoalKicks) {\n return 0;\n }\n return Math.floor(1000 * this.dropGoals / this.dropGoalKicks) / 10;\n }\n\n get totalGoals(): number {\n return (this.conversionGoals || 0) + (this.dropGoals || 0) + (this.penaltyGoals || 0);\n }\n\n get footShots(): number {\n return (this.footFieldShots || 0) + (this.footOutShots || 0) + (this.footKicks5022 || 0);\n }\n\n get totalFouls(): number {\n return (this.fouls || 0) + (this.teamFouls || 0);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, listField, enumField } from './util';\n\nexport enum RugbyFoulSanctions {\n scrum = 1,\n lineout,\n free_kick,\n penalty_shot,\n yellow_card,\n red_card,\n start_kick,\n twenty_two_meters_kick,\n conversion_cancel\n}\n\nexport enum RugbyFoulGameStage {\n start_kick= 1,\n open_game,\n tackle,\n ruck_or_maul,\n scrum,\n out_and_lineout,\n scoring_field,\n kick_on_goal,\n free_kick,\n team,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n sanction: 'sanction',\n game_stage: 'gameStage',\n },\n relation: {\n sanction: listField(enumField(RugbyFoulSanctions)),\n gameStage: enumField(RugbyFoulGameStage),\n }\n})\nexport class RugbyFoulType extends BaseModel {\n id: number;\n name: string;\n sanction: RugbyFoulSanctions[];\n gameStage: RugbyFoulGameStage;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\nimport { RugbyFoulGameStage, RugbyFoulSanctions, RugbyFoulType } from './rugby-foul-type';\n\nexport enum RugbyGameLogTypes {\n enter_game = 1,\n exit_game,\n try,\n penalty_try,\n conversion_goal,\n conversion_miss,\n penalty_miss,\n penalty_goal,\n drop_goal,\n drop_goal_miss,\n free_kick,\n foul,\n yellow_card,\n red_card,\n red_card_20,\n offload,\n tackle,\n handling_error,\n carries_over_gainline,\n bleeding_injury,\n head_injury,\n end_game_penalty_miss,\n end_game_penalty_goal,\n foot_field_shot,\n foot_out_shot,\n foot_kick_50_22,\n run,\n\n // team actions\n timeout,\n tap_penalty,\n penalty_kick_to_touch,\n scrum_won,\n scrum_lost,\n scrum_won_free,\n lineout_won,\n lineout_lost,\n quick_throw,\n ruck_won,\n ruck_lost,\n maul_won,\n maul_lost,\n team_foul,\n start_kick,\n twenty_two_meters_kick,\n goal_kick,\n out\n}\n\nexport const RUGBY_GAME_LOG_TYPE_POINTS = {\n [RugbyGameLogTypes.penalty_try]: 7,\n [RugbyGameLogTypes.try]: 5,\n [RugbyGameLogTypes.conversion_goal]: 2,\n [RugbyGameLogTypes.penalty_goal]: 3,\n [RugbyGameLogTypes.drop_goal]: 3,\n [RugbyGameLogTypes.end_game_penalty_goal]: 1, // Не влияет на общий счет\n};\n\nexport const RUGBY_TEAM_LOG_TYPES = [\n RugbyGameLogTypes.timeout, RugbyGameLogTypes.scrum_won, RugbyGameLogTypes.scrum_lost, RugbyGameLogTypes.scrum_won_free,\n RugbyGameLogTypes.lineout_won, RugbyGameLogTypes.lineout_lost,\n RugbyGameLogTypes.quick_throw, RugbyGameLogTypes.ruck_won, RugbyGameLogTypes.ruck_lost,\n RugbyGameLogTypes.maul_won, RugbyGameLogTypes.maul_lost, RugbyGameLogTypes.team_foul,\n RugbyGameLogTypes.penalty_kick_to_touch, RugbyGameLogTypes.tap_penalty,\n RugbyGameLogTypes.start_kick, RugbyGameLogTypes.twenty_two_meters_kick, RugbyGameLogTypes.goal_kick,\n RugbyGameLogTypes.penalty_try, RugbyGameLogTypes.out\n];\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n group: 'group',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n foul_type: 'foulType',\n foul_sanction: 'foulSanction',\n foul_game_stage: 'foulGameStage',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(RugbyGameLogTypes),\n foulType: RugbyFoulType,\n foulSanction: enumField(RugbyFoulSanctions),\n foulGameStage: enumField(RugbyFoulGameStage),\n }\n})\nexport class RugbyGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n group: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: RugbyGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n foulType: RugbyFoulType;\n foulSanction: RugbyFoulSanctions;\n foulGameStage: RugbyFoulGameStage;\n\n compare(model: RugbyGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return RUGBY_GAME_LOG_TYPE_POINTS[this.logType] !== undefined;\n }\n\n scorePoints(): number {\n return RUGBY_GAME_LOG_TYPE_POINTS[this.logType];\n }\n\n isAfter(log: RugbyGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n isFoulType(): boolean {\n return [RugbyGameLogTypes.team_foul, RugbyGameLogTypes.foul].indexOf(this.logType) > -1;\n }\n\n isTeamType(): boolean {\n return RUGBY_TEAM_LOG_TYPES.includes(this.logType);\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { GameBaseApi } from './game-base-api';\nimport { RugbyGameTeamStatistic } from '../models/rugby-game-team-statistic';\nimport { RugbyGameStatistic } from '../models/rugby-game-statistic';\nimport { RugbyGameLog } from '../models/rugby-game-log';\nimport { RugbyFoulType } from '../models/rugby-foul-type';\n\n@Injectable({providedIn: 'root'})\nexport class RugbyGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<RugbyGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/team_statistic/`).pipe(\n map(result => RugbyGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<RugbyGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/user_statistic/`).pipe(\n map(result => RugbyGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<RugbyGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/logs/`).pipe(\n map(result => RugbyGameLog.toFront(result))\n ).toPromise();\n }\n\n async getFoulTypes(): Promise<RugbyFoulType> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/foul_types/`).pipe(\n map(result => RugbyFoulType.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', 'pdf'),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n email: 'email',\n first_name: 'firstName',\n last_name: 'lastName',\n },\n})\nexport class TeamInviteExternal extends BaseModel {\n id: number;\n teamId: number;\n email: string;\n firstName: string;\n lastName: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook, enumField } from './util';\n\nexport enum TeamPermissionTypes {\n for_all = 1,\n for_users,\n for_team\n}\n\n@ModelInstance({\n mappingFields: {\n players: 'players',\n games: 'games',\n statistic: 'statistic',\n polls: 'polls',\n events: 'events'\n },\n relation: {\n players: enumField(TeamPermissionTypes),\n games: enumField(TeamPermissionTypes),\n statistic: enumField(TeamPermissionTypes),\n polls: enumField(TeamPermissionTypes),\n events: enumField(TeamPermissionTypes)\n }\n})\nexport class TeamPermission extends BaseModel {\n players: TeamPermissionTypes;\n games: TeamPermissionTypes;\n statistic: TeamPermissionTypes;\n polls: TeamPermissionTypes;\n events: TeamPermissionTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { TeamUserRole } from './team-user';\n\n@ModelInstance({\n mappingFields: {\n can_edit: 'canEdit',\n can_view_users: 'canViewUsers',\n can_manage_permission: 'canManagePermission',\n can_change_owner: 'canChangeOwner',\n can_delete: 'canDelete',\n can_manage_invites: 'canManageInvites',\n can_view_invites: 'canViewInvites',\n can_manage_polls: 'canManagePolls',\n can_view_polls: 'canViewPolls',\n can_answer_poll: 'canAnswerPoll',\n can_manage_games: 'canManageGames',\n can_view_games: 'canViewGames',\n can_view_statistic: 'canViewStatistic',\n can_promote_users: 'canPromoteUsers',\n can_edit_users: 'canEditUsers',\n can_delete_users: 'canDeleteUsers',\n can_view_events: 'canViewEvents',\n can_manage_events: 'canManageEvents',\n can_view_tournaments: 'canViewTournaments',\n can_manage_tournaments: 'canManageTournaments',\n role: 'role'\n },\n relation: {\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamAccess extends BaseModel {\n canEdit: boolean;\n canViewUsers: boolean;\n canManagePermission: boolean;\n canChangeOwner: boolean;\n canDelete: boolean;\n canManageInvites: boolean;\n canViewInvites: boolean;\n canManagePolls: boolean;\n canViewPolls: boolean;\n canAnswerPoll: boolean;\n canManageGames: boolean;\n canViewGames: boolean;\n canViewStatistic: boolean;\n canPromoteUsers: boolean;\n canEditUsers: boolean;\n canDeleteUsers: boolean;\n canViewEvents: boolean;\n canManageEvents: boolean;\n canViewTournaments: boolean;\n canManageTournaments: boolean;\n role: TeamUserRole;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser, TeamUserRole } from '../models/team-user';\nimport { User } from '../models/user';\nimport { TeamInvite } from '../models/team-invite';\nimport { TeamInviteExternal } from '../models/team-invite-external';\nimport { Poll } from '../models/poll';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { TeamEvent } from '../models/team-event';\nimport { Tournament } from '../models/tournament';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { TeamPermission } from '../models/team-permission';\nimport { TeamAccess } from '../models/team-access';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async search(query: string, sportId?: number): Promise<Team[]> {\n let params = (new HttpParams()).set('search', query);\n if (sportId) {\n params = params.set('sport', sportId.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/`, {params})\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async create(team: Team): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/`, Team.toBack(team))\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getById(teamId: number): Promise<Team> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`)\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getTeamAccess(teamId: number): Promise<TeamAccess> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/access/`)\n .pipe(map(data => TeamAccess.toFront(data)))\n .toPromise();\n }\n\n async update(teamId: number, values: any): Promise<Team> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`, Team.toBack(values))\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async delete(team: Team): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${team.id}/`)\n .toPromise();\n }\n\n async getPermission(teamId: number): Promise<TeamPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`)\n .pipe(map(data => TeamPermission.toFront(data)))\n .toPromise();\n }\n\n async updatePermission(teamId: number, permission: TeamPermission): Promise<TeamPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`, TeamPermission.toBack(permission))\n .pipe(map(data => TeamPermission.toFront(data)))\n .toPromise();\n }\n\n async getUsers(teamId: number, tournamentId?: number): Promise<TeamUser[]> {\n let params = new HttpParams();\n if (tournamentId) {\n params = params.set('tournament_id', tournamentId.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`, {params})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateUserRole(teamId: number, teamUserId: number, role: TeamUserRole): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/role/`, {role: TeamUserRole[role]})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateUserNumber(teamId: number, teamUserId: number, gameNumber: number): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/number/`, {number: gameNumber.toString()})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async deleteUser(teamUser: TeamUser): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${teamUser.teamId}/users/${teamUser.id}/`)\n .toPromise();\n }\n\n async changeOwner(teamId: number, user: User): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/owner/`, {id: user.id})\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getInvites(teamId: number): Promise<TeamInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`)\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async sendInvite(teamId: number, user: User): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`, {user})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/accept/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async declineInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/decline/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async resendInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/resend/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async getInvitesExternal(teamId: number): Promise<TeamInviteExternal[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`)\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async sendInviteExternal(teamId: number, invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`, TeamInviteExternal.toBack(invite))\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async deleteInviteExternal(invite: TeamInviteExternal): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/`)\n .toPromise();\n }\n\n async resendInviteExternal(invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/resend/`, {})\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async getPolls(teamId: number, archive: boolean = false): Promise<Poll[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => Poll.toFront(data)))\n .toPromise();\n }\n\n async createPoll(teamId: number, poll: Poll): Promise<Poll> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/`, Poll.toBack(poll))\n .pipe(map(data => Poll.toFront(data)))\n .toPromise();\n }\n\n async getUsersStatistic(teamId: number): Promise<BasketballStatistic[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballStatistic(teamId: number): Promise<VolleyballStatistic[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/volleyball_statistics/`)\n .pipe(map(data => VolleyballStatistic.toFront(data)))\n .toPromise();\n }\n\n async joinTeam(teamId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/join/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async leaveTeam(teamId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/leave/`, {})\n .toPromise();\n }\n\n async getGames(teamId: number, archive = false): Promise<Game[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async createGame(teamId: number, game: Game): Promise<Game> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/`, Game.toBack(game))\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async getTeamEvents(teamId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async createTeamEvent(teamId: number, teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`, TeamEvent.toBack(teamEvent))\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async getTournaments(teamId: number): Promise<Tournament[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/`)\n .pipe(map(data => Tournament.toFront(data)))\n .toPromise();\n }\n\n async getTournamentTeams(teamId: number): Promise<TournamentTeam[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_teams/`)\n .pipe(map(data => TournamentTeam.toFront(data)))\n .toPromise();\n }\n\n async getTournamentInvites(teamId: number): Promise<TournamentInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_invites/`)\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async getTournamentGames(teamId: number, tournamentId: number, page: number, size?: number): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/${tournamentId}/games/`, {params, observe: 'response'})\n .pipe(map((response: HttpResponse<any>) => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n }))\n .toPromise();\n }\n\n async acceptTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/accept/`, {})\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async declineTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/decline/`, {})\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async registerLazyUser(teamId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/lazy_user/`, {user: User.toBack(userData)})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async getLazyUser(teamUserId: number): Promise<TeamUser> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateLazyUser(teamUserId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`, {user: User.toBack(userData)})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async deleteLazyUser(teamUserId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .toPromise();\n }\n\n async resendLazyUserEmail(teamUserId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/resend_email/`, {})\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { TeamEvent } from '../models/team-event';\nimport { TeamEventInvite } from '../models/team-event-invite';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamEventApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getTeamEvent(teamEventId: number): Promise<TeamEvent> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async updateTeamEvent(teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEvent.id}/`, TeamEvent.toBack(teamEvent))\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async deleteTeamEvent(teamEventId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .toPromise();\n }\n\n async getTeamEventInvites(teamEventId: number): Promise<TeamEventInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`)\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async createTeamEventInvite(teamEventId: number, teamUserId: number): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`, {team_user_id: teamUserId})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/accept/`, {})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async declineTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/decline/`, {})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Team } from './team';\n\n@ModelInstance({\n mappingFields: {\n valid_users_count: 'validUsersCount',\n invalid_users_count: 'invalidUsersCount',\n has_access: 'hasAccess',\n invite_sent: 'inviteSent',\n already_in_tournament: 'alreadyInTournament'\n }\n})\nexport class TournamentJoinData extends BaseModel {\n validUsersCount: number;\n invalidUsersCount: number;\n hasAccess: boolean;\n inviteSent: boolean;\n alreadyInTournament: boolean;\n\n get usersCount(): number {\n return this.validUsersCount + this.invalidUsersCount;\n }\n\n get valid() {\n return this.hasAccess && !this.inviteSent && !this.alreadyInTournament;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n join_data: 'joinData'\n },\n relation: {\n team: Team,\n joinData: TournamentJoinData\n }\n})\nexport class TournamentJoinTeam extends BaseModel {\n team: Team;\n joinData: TournamentJoinData;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, DateField, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { UserGender } from './user';\n\n@ModelInstance({\n mappingFields: {\n email: 'email',\n phone: 'phone',\n gender: 'gender',\n birth_date: 'birthDate',\n size: 'size',\n nickname: 'nickname',\n city: 'city',\n },\n relation: {\n birthDate: DateField,\n gender: enumField(UserGender),\n }\n})\nexport class TournamentJoin1x1Data extends BaseModel {\n email: string;\n phone: string;\n gender: string;\n birthDate: Date;\n size: string;\n nickname: string;\n city: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TournamentJoinTeam } from '../models/tournament-join-team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser } from '../models/team-user';\nimport { TournamentTeamUserInvite } from '../models/tournament-team-user-invite';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { ConfigService } from '../services/config.service';\nimport { TournamentJoin1x1Data } from '../models/tournament-join1x1-data';\n\nexport enum TournamentJoin1x1Status {\n not_sent = 1,\n invite_sent,\n in_tournament,\n not_valid,\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentJoinApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getTeamsForJoin(tournamentId: number): Promise<TournamentJoinTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams_for_join/`).pipe(\n map(response => TournamentJoinTeam.toFront(response))\n ).toPromise();\n }\n\n async getTeamUsers(teamId: number): Promise<TeamUser[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`)\n .pipe(\n map(data => TeamUser.toFront(data))\n ).toPromise();\n }\n\n async joinTournament(tournamentId: number, teamId: number, invites: TournamentTeamUserInvite[]): Promise<TournamentInvite> {\n const body = {\n team: {id: teamId},\n user_invites: TournamentTeamUserInvite.toBack(invites)\n };\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join/`, body)\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async join1x1Tournament(tournamentId: number, additionalData: TournamentJoin1x1Data): Promise<TournamentInvite> {\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join_1x1/`,\n TournamentJoin1x1Data.toBack(additionalData)\n )\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async join1x1TournamentStatus(tournamentId: number): Promise<TournamentJoin1x1Status> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join_1x1_status/`)\n .pipe(map((data: { status: string }) => TournamentJoin1x1Status[data.status]))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { TournamentRound } from '../models/tournament-round';\nimport { map } from 'rxjs/operators';\nimport { TournamentRoundTeam } from '../models/tournament-round-team';\nimport { Playoff } from '../models/playoff';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { applyGamesFilters, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { Game } from '../models/game';\n\nexport interface TournamentRoundTeamsFilters {\n groupId?: number;\n divisionId?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentRoundApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(tournamentRoundId: number): Promise<TournamentRound> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/`).pipe(\n map(data => TournamentRound.toFront(data)),\n ).toPromise();\n }\n\n async getTeams(tournamentRoundId: number, filters?: TournamentRoundTeamsFilters): Promise<TournamentRoundTeam[]> {\n let params = new HttpParams();\n if (filters) {\n if (filters.divisionId) {\n params = params.set('division_id', filters.divisionId);\n }\n if (filters.groupId) {\n params = params.set('group_id', filters.groupId);\n }\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/teams/`,\n {params}\n ).pipe(\n map(data => TournamentRoundTeam.toFront(data)),\n ).toPromise();\n }\n\n async getPlayoffs(tournamentRoundId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/playoffs/`).pipe(\n map(data => Playoff.toFront(data)),\n ).toPromise();\n }\n\n async getGroups(tournamentRoundId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/groups/`).pipe(\n map(data => TournamentGroup.toFront(data)),\n ).toPromise();\n }\n\n async getGames(roundId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${roundId}/games/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { Game, GameStatuses } from '../models/game';\nimport { Tournament } from '../models/tournament';\nimport { applyGamesFilters, TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { applyGameMediaFilters, GameMediaFilters } from './media-api';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\nimport { Playoff } from '../models/playoff';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentSeasonApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<TournamentSeason> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/${alias}/`).pipe(\n map(result => TournamentSeason.toFront(result))\n ).toPromise();\n }\n\n async getTournaments(seasonId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getGames(seasonId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getEvents(seasonId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/events/`,\n {params, observe: 'response'}\n )\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getGameMedia(seasonId: number, page: number, size: number, filters: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/game_media/`,\n {observe: 'response', params})\n .pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getTeams(seasonId: number, short?: boolean, micro?: boolean): Promise<TournamentTeam[]> {\n let params = new HttpParams();\n if (short) {\n params = params.set('short', '1');\n }\n if (micro) {\n params = params.set('micro', '1');\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/teams/`, {params}).pipe(\n map(result => TournamentTeam.toFront(result))\n ).toPromise();\n }\n\n async getPlayoffs(seasonId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/playoffs/`).pipe(\n map(result => Playoff.toFront(result))\n ).toPromise();\n }\n\n async getGamesStages(seasonId: number): Promise<GameTimelineStages> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games_stages/`)\n .pipe(map(data => GameTimelineStages.toFront(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { map } from 'rxjs/operators';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { Playoff } from '../models/playoff';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { ConfigService } from '../services/config.service';\nimport { TeamAchievement } from '../models/team-achievement';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentStageApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(id: number): Promise<TournamentStage> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${id}/`)\n .pipe(map(result => TournamentStage.toFront(result)))\n .toPromise();\n }\n\n async getGroups(stageId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/groups/`)\n .pipe(map(result => TournamentGroup.toFront(result)))\n .toPromise();\n }\n\n async getTeamsAchievements(stageId: number): Promise<TeamAchievement[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/achievements/`)\n .pipe(map(result => TeamAchievement.toFront(result)))\n .toPromise();\n }\n\n async getPlayoffs(stageId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/playoff/`)\n .pipe(map(result => Playoff.toFront(result)))\n .toPromise();\n }\n\n async getTeams(stageId: number): Promise<TournamentStageTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/teams/`)\n .pipe(map(result => TournamentStageTeam.toFront(result)))\n .toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n edit: 'edit',\n personal_data: 'personalData',\n teams: 'teams',\n statistic: 'statistic',\n games: 'games'\n }\n})\nexport class UserAccess extends BaseModel {\n edit: boolean;\n personalData: boolean;\n teams: boolean;\n statistic: boolean;\n games: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum UserPermissionTypes {\n denied = 1,\n for_all,\n for_users,\n for_team\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n personal_data: 'personalData',\n games: 'games',\n teams: 'teams',\n statistic: 'statistic'\n },\n relation: {\n personalData: enumField(UserPermissionTypes),\n games: enumField(UserPermissionTypes),\n teams: enumField(UserPermissionTypes),\n statistic: enumField(UserPermissionTypes)\n }\n})\nexport class UserPermission extends BaseModel {\n id: number;\n personalData: UserPermissionTypes;\n games: UserPermissionTypes;\n teams: UserPermissionTypes;\n statistic: UserPermissionTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { User } from '../models/user';\nimport { File } from '../models/file';\nimport { map } from 'rxjs/operators';\nimport { UserProfile } from '../models/user-profile';\nimport { BasketballProfile } from '../models/basketball-profile';\nimport { VolleyballProfile } from '../models/volleyball-profile';\nimport { Team } from '../models/team';\nimport { TeamInvite } from '../models/team-invite';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { GameInvite } from '../models/game-invite';\nimport { TeamEvent } from '../models/team-event';\nimport { UserAccess } from '../models/user-access';\nimport { UserPermission } from '../models/user-permission';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class UserApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCurrentUser(): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/`)\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getUserById(userId: number): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`)\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getAccess(userId?: number): Promise<UserAccess> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/access/`)\n .pipe(map(data => UserAccess.toFront(data)))\n .toPromise();\n }\n\n async updateUser(userId: number, data: any): Promise<User> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`, User.toBack(data))\n .pipe(map(result => User.toFront(result)))\n .toPromise();\n }\n\n async updateUserPhoto(file: any, filename?: string): Promise<File> {\n const formData = new FormData();\n formData.append('file', file, filename);\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/photo/`, formData)\n .pipe(map(data => File.toFront(data)))\n .toPromise();\n }\n\n async changePassword(userId: number, oldPassword: string, password: string, passwordConfirm: string): Promise<any> {\n const payload = {\n old_password: oldPassword,\n password,\n password_confirm: passwordConfirm\n };\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_password/`, payload)\n .toPromise();\n }\n\n async changeEmail(userId: number, email: string, password: string): Promise<any> {\n const payload = {email, password};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email/`, payload)\n .toPromise();\n }\n\n async changeEmailConfirm(userId, email: string, password: string, token: number): Promise<any> {\n const payload = {email, password, token};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email_confirm/`, payload)\n .toPromise();\n }\n\n async getUserProfile(userId: number): Promise<UserProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/profile/`)\n .pipe(map(data => UserProfile.toFront(data)))\n .toPromise();\n }\n\n async getBasketballProfile(userId: number): Promise<BasketballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/basketball_profile/`)\n .pipe(map(data => BasketballProfile.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballProfile(userId: number): Promise<VolleyballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_profile/`)\n .pipe(map(data => VolleyballProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserProfile(userProfile: UserProfile): Promise<UserProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userProfile.userId}/profile/`, UserProfile.toBack(userProfile))\n .pipe(map(data => UserProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserBasketballProfile(basketballProfile: BasketballProfile): Promise<BasketballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${basketballProfile.userId}/basketball_profile/`, BasketballProfile.toBack(basketballProfile))\n .pipe(map(data => BasketballProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserVolleyballProfile(volleyballProfile: VolleyballProfile): Promise<VolleyballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${volleyballProfile.userId}/volleyball_profile/`, VolleyballProfile.toBack(volleyballProfile))\n .pipe(map(data => VolleyballProfile.toFront(data)))\n .toPromise();\n }\n\n async getUserPermissions(userId?: number): Promise<UserPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/permission/`)\n .pipe(map(data => UserPermission.toFront(data)))\n .toPromise();\n }\n\n async updateUserPermission(data: any): Promise<UserPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/current/permission/`, UserPermission.toBack(data))\n .pipe(map(result => UserPermission.toFront(result)))\n .toPromise();\n }\n\n async getTeams(userId: number): Promise<Team[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/teams/`)\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getInvites(): Promise<TeamInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/`)\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/accept/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async declineInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/decline/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async getStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getStreetballStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/streetball_statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballStatistic(userId: number): Promise<VolleyballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_statistics/`)\n .pipe(map(data => VolleyballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getGames(userId: number): Promise<Game[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/games/`)\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async getGameInvites(): Promise<GameInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/`)\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/accept/`, {})\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async declineGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/decline/`, {})\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async searchUsers(query: string): Promise<User[]> {\n const params = (new HttpParams()).set('search', query);\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/`, {params})\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async setWizardShowed(wizard: string): Promise<User> {\n return this.httpClient\n .put(`${this.configService.get('apiUrl')}/api/v1/user/current/wizards/`, {wizard})\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getTeamEvents(userId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/team_events/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook, BaseModel } from './util';\nimport { VolleyballStatistic } from './volleyball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam',\n },\n relation: {\n team: VolleyballStatistic,\n competitorTeam: VolleyballStatistic,\n }\n})\nexport class VolleyballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: VolleyballStatistic;\n competitorTeam: VolleyballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n serve_hits: 'serveHits',\n serve_faults: 'serveFaults',\n serve_aces: 'serveAces',\n good_serves: 'goodServes',\n stuff_blocks: 'stuffBlocks',\n block_faults: 'blockFaults',\n block_rebounds: 'blockRebounds',\n attack_spikes: 'attackSpikes',\n attack_faults: 'attackFaults',\n attack_shots: 'attackShots',\n receives: 'receives',\n receive_faults: 'receiveFaults',\n excellent_receives: 'excellentReceives',\n serve_receives: 'serveReceives',\n serve_receive_faults: 'serveReceiveFaults',\n excellent_serve_receives: 'excellentServeReceives',\n points: 'points',\n faults: 'faults',\n yellow_cards: 'yellowCards',\n }\n})\nexport class VolleyballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n goodServes: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n points: number;\n faults: number;\n yellowCards: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get attacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots)) / 10;\n }\n\n get blocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds)) / 10;\n }\n\n get totalReceives(): number {\n return Math.floor(10 * (this.receives + this.excellentReceives + this.receiveFaults)) / 10;\n }\n\n get totalServeReceives(): number {\n return Math.floor(10 * (this.serveReceives + this.excellentServeReceives + this.serveReceiveFaults)) / 10;\n }\n\n get totalServes(): number {\n return Math.floor(10 * (this.serveAces + this.serveHits + this.serveFaults + this.goodServes)) / 10;\n }\n\n get totalAttacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots + this.attackFaults)) / 10;\n }\n\n get totalBlocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds + this.blockFaults)) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\n\nexport enum VolleyballGameLogType {\n enter_game = 1,\n exit_game,\n remove_game,\n serve_hit,\n serve_fault,\n serve_ace,\n stuff_block,\n block_fault,\n block_rebound,\n attack_spike,\n attack_fault,\n attack_shot,\n receive,\n receive_fault,\n excellent_receive,\n point,\n fault,\n serve_receive,\n serve_receive_fault,\n excellent_serve_receive,\n timeout,\n yellow_card,\n tie_ball,\n good_serve\n}\n\nexport const SCORE_LOG_TYPES = [\n VolleyballGameLogType.serve_ace, VolleyballGameLogType.stuff_block,\n VolleyballGameLogType.attack_spike, VolleyballGameLogType.point\n];\nexport const FAULT_LOG_TYPES = [\n VolleyballGameLogType.serve_fault, VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.block_fault, VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.fault, VolleyballGameLogType.serve_receive_fault\n];\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n log_type: 'logType',\n set: 'set',\n rally: 'rally',\n position: 'position',\n team_id: 'teamId',\n datetime: 'datetime',\n is_highlight: 'isHighlight',\n group: 'group',\n is_coach: 'isCoach',\n is_bench: 'isBench',\n },\n relation: {\n logType: enumField(VolleyballGameLogType),\n datetime: DateTimeField\n }\n})\nexport class VolleyballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n active = true;\n gameId: number;\n gameUserId: number;\n logType: VolleyballGameLogType;\n set: number;\n rally: number;\n position: number;\n teamId: number;\n datetime: Date;\n isHighlight: boolean;\n gameUser: GameUser;\n group: string;\n isCoach: boolean;\n isBench: boolean;\n\n compare(model: VolleyballGameLog): number {\n const orderFields = ['set', 'rally', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n isScoreType() {\n return SCORE_LOG_TYPES.includes(this.logType);\n }\n\n isFaultType() {\n return FAULT_LOG_TYPES.includes(this.logType);\n }\n\n isServe() {\n return [\n VolleyballGameLogType.serve_hit,\n VolleyballGameLogType.serve_ace,\n VolleyballGameLogType.serve_fault,\n VolleyballGameLogType.good_serve,\n ].includes(this.logType);\n }\n\n isAttack() {\n return [\n VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.attack_spike,\n VolleyballGameLogType.attack_shot\n ].includes(this.logType);\n }\n\n isReceive() {\n return [\n VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.receive,\n VolleyballGameLogType.excellent_receive\n ].includes(this.logType);\n }\n\n isServeReceive() {\n return [\n VolleyballGameLogType.serve_receive_fault,\n VolleyballGameLogType.serve_receive,\n VolleyballGameLogType.excellent_serve_receive\n ].includes(this.logType);\n }\n\n isBlock() {\n return [\n VolleyballGameLogType.block_fault,\n VolleyballGameLogType.block_rebound,\n VolleyballGameLogType.stuff_block\n ].includes(this.logType);\n }\n\n isEnterExit() {\n return [\n VolleyballGameLogType.enter_game,\n VolleyballGameLogType.exit_game,\n VolleyballGameLogType.timeout\n ].includes(this.logType);\n }\n\n isComboType() {\n return ![\n VolleyballGameLogType.receive,\n VolleyballGameLogType.serve_receive\n ].includes(this.logType);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Game } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { VolleyballGameTeamStatistic } from '../models/volleyball-game-team-statistic';\nimport { VolleyballGameStatistic } from '../models/volleyball-game-statistic';\nimport { VolleyballGameLog } from '../models/volleyball-game-log';\nimport { ConfigService } from '../services/config.service';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class VolleyballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<VolleyballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/team_statistic/`).pipe(\n map(result => VolleyballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<VolleyballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/user_statistic/`).pipe(\n map(result => VolleyballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<VolleyballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/logs/`).pipe(\n map(result => VolleyballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocolLight(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol_light/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadProtocolAdvanced(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol_advanced/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum WaterpoloGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n shootout_attempt,\n shootout_goal,\n assist,\n block_shot ,\n free_kick_on_goal,\n minor_penalty ,\n major_penalty ,\n match_penalty ,\n foul,\n yellow_card,\n red_card,\n penalty_shot ,\n face_off_lose ,\n face_off_win ,\n save ,\n timeout,\n penalty_start,\n penalty_end,\n after_game_shootout_attempt,\n after_game_shootout_goal,\n after_game_shootout_save,\n shootout_save,\n loss,\n steal,\n free_kick_miss,\n free_kick_goal,\n free_kick_pass,\n free_kick_self,\n corner_on_goal,\n corner_miss,\n corner_goal,\n corner_pass,\n corner_self,\n personal_foul,\n counterattack_goal,\n counterattack_on_goal,\n counterattack_miss,\n counterattack_save ,\n maneuver_goal,\n maneuver_on_goal,\n maneuver_miss,\n maneuver_save,\n center_forward_goal,\n center_forward_on_goal,\n center_forward_miss,\n center_forward_save,\n free_kick_save,\n corner_save,\n tackle,\n penalty_foul,\n attack_foul,\n turnover,\n counter_attack_shot_blocked,\n maneuver_shot_blocked,\n center_forward_shot_blocked,\n free_kick_shot_blocked,\n corner_shot_blocked,\n complete_penalty_time,\n defense_select_position,\n save_possession,\n perimetr_shot_goal,\n perimetr_shot_on_goal,\n perimetr_shot_miss,\n perimetr_shot_blocked,\n perimetr_shot_save,\n post_shot_goal,\n post_shot_on_goal,\n post_shot_miss,\n post_shot_blocked,\n post_shot_save,\n fast_shot_goal,\n fast_shot_on_goal,\n fast_shot_miss,\n fast_shot_blocked,\n fast_shot_save\n}\n\nexport enum WaterpoloAdvantageTypes {\n power_play = 1,\n shorthanded,\n even_strength\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n advantage: 'advantage',\n advantage_num: 'advantageNum',\n is_goalie: 'isGoalie',\n penalized_game_user_id: 'penalizedGameUserId',\n foul_on_game_user_id: 'foulOnGameUserId',\n mutual_penalty: 'mutualPenalty',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(WaterpoloGameLogTypes),\n advantage: enumField(WaterpoloAdvantageTypes),\n }\n})\nexport class WaterpoloGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: WaterpoloGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n advantage: WaterpoloAdvantageTypes;\n advantageNum: number;\n isGoalie: boolean;\n _penalizedGameUserId: number;\n foulOnGameUserId: number;\n foulOnGameUser: GameUser;\n mutualPenalty: boolean;\n\n get penalizedGameUserId(): number {\n if (this._penalizedGameUserId) {\n return this._penalizedGameUserId;\n }\n return this.gameUserId;\n }\n\n set penalizedGameUserId(value: number) {\n this._penalizedGameUserId = value;\n }\n\n compare(model: WaterpoloGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [\n WaterpoloGameLogTypes.goal, WaterpoloGameLogTypes.shootout_goal, WaterpoloGameLogTypes.after_game_shootout_goal,\n WaterpoloGameLogTypes.free_kick_goal, WaterpoloGameLogTypes.corner_goal,\n WaterpoloGameLogTypes.counterattack_goal, WaterpoloGameLogTypes.maneuver_goal, WaterpoloGameLogTypes.center_forward_goal,\n WaterpoloGameLogTypes.perimetr_shot_goal, WaterpoloGameLogTypes.post_shot_goal, WaterpoloGameLogTypes.fast_shot_goal\n ].indexOf(this.logType) > -1;\n }\n\n isPenaltyType(): boolean {\n return [\n WaterpoloGameLogTypes.minor_penalty, WaterpoloGameLogTypes.major_penalty, WaterpoloGameLogTypes.match_penalty, WaterpoloGameLogTypes.personal_foul\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType(): boolean {\n return [\n WaterpoloGameLogTypes.minor_penalty, WaterpoloGameLogTypes.major_penalty, WaterpoloGameLogTypes.match_penalty,\n WaterpoloGameLogTypes.personal_foul, WaterpoloGameLogTypes.foul, WaterpoloGameLogTypes.attack_foul, WaterpoloGameLogTypes.penalty_foul\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: WaterpoloGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_total_shots_on_goal: 'ppTotalShotsOnGoal',\n ev_total_shots_on_goal: 'evTotalShotsOnGoal',\n sh_total_shots_on_goal: 'shTotalShotsOnGoal',\n pp_goals: 'ppGoals',\n ev_goals: 'evGoals',\n sh_goals: 'shGoals',\n pp_counterattack_goals: 'ppCounterAttackGoals',\n pp_counterattack_on_goals: 'ppCounterAttackOnGoals',\n pp_counterattack_misses: 'ppCounterAttackMisses',\n pp_counterattack_shots_blocked: 'ppCounterAttackShotsBlocked',\n ev_counterattack_goals: 'evCounterAttackGoals',\n ev_counterattack_on_goals: 'evCounterAttackOnGoals',\n ev_counterattack_misses: 'evCounterAttackMisses',\n ev_counterattack_shots_blocked: 'evCounterAttackShotsBlocked',\n sh_counterattack_goals: 'shCounterAttackGoals',\n sh_counterattack_on_goals: 'shCounterAttackOnGoals',\n sh_counterattack_misses: 'shCounterAttackMisses',\n sh_counterattack_shots_blocked: 'shCounterAttackShotsBlocked',\n pp_maneuver_goals: 'ppManeuverGoals',\n pp_maneuver_on_goals: 'ppManeuverOnGoals',\n pp_maneuver_misses: 'ppManeuverMisses',\n pp_maneuver_shots_blocked: 'ppManeuverShotsBlocked',\n ev_maneuver_goals: 'evManeuverGoals',\n ev_maneuver_on_goals: 'evManeuverOnGoals',\n ev_maneuver_misses: 'evManeuverMisses',\n ev_maneuver_shots_blocked: 'evManeuverShotsBlocked',\n sh_maneuver_goals: 'shManeuverGoals',\n sh_maneuver_on_goals: 'shManeuverOnGoals',\n sh_maneuver_misses: 'shManeuverMisses',\n sh_maneuver_shots_blocked: 'shManeuverShotsBlocked',\n pp_center_forward_goals: 'ppCenterForwardGoals',\n pp_center_forward_on_goals: 'ppCenterForwardOnGoals',\n pp_center_forward_misses: 'ppCenterForwardMisses',\n pp_center_forward_shots_blocked: 'ppCenterForwardShotsBlocked',\n ev_center_forward_goals: 'evCenterForwardGoals',\n ev_center_forward_on_goals: 'evCenterForwardOnGoals',\n ev_center_forward_misses: 'evCenterForwardMisses',\n ev_center_forward_shots_blocked: 'evCenterForwardShotsBlocked',\n sh_center_forward_goals: 'shCenterForwardGoals',\n sh_center_forward_on_goals: 'shCenterForwardOnGoals',\n sh_center_forward_misses: 'shCenterForwardMisses',\n sh_center_forward_shots_blocked: 'shCenterForwardShotsBlocked',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n after_game_shootout_attempts: 'afterGameShootoutAttempts',\n after_game_shootout_goals: 'afterGameShootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n pp_saves: 'ppSaves',\n sh_saves: 'shSaves',\n ev_saves: 'evSaves',\n pp_counterattack_saves: 'ppCounterAttackSaves',\n sh_counterattack_saves: 'shCounterAttackSaves',\n ev_counterattack_saves: 'evCounterAttackSaves',\n pp_maneuver_saves: 'ppManeuverSaves',\n sh_maneuver_saves: 'shManeuverSaves',\n ev_maneuver_saves: 'evManeuverSaves',\n pp_center_forward_saves: 'ppCenterForwardSaves',\n sh_center_forward_saves: 'shCenterForwardSaves',\n ev_center_forward_saves: 'evCenterForwardSaves',\n pp_free_kick_saves: 'ppFreeKickSaves',\n sh_free_kick_saves: 'shFreeKickSaves',\n ev_free_kick_saves: 'evFreeKickSaves',\n pp_corner_saves: 'ppCornerSaves',\n sh_corner_saves: 'shCornerSaves',\n ev_corner_saves: 'evCornerSaves',\n pp_total_game_saves: 'ppTotalGameSaves',\n sh_total_game_saves: 'shTotalGameSaves',\n ev_total_game_saves: 'evTotalGameSaves',\n shootout_saves: 'shootoutSaves',\n after_game_shootout_saves: 'afterGameShootoutSaves',\n pp_goals_against: 'ppGoalsAgainst',\n sh_goals_against: 'shGoalsAgainst',\n ev_goals_against: 'evGoalsAgainst',\n goals_against: 'goalsAgainst',\n pp_counterattack_goals_against: 'ppCounterAttackGoalsAgainst',\n sh_counterattack_goals_against: 'shCounterAttackGoalsAgainst',\n ev_counterattack_goals_against: 'evCounterAttackGoalsAgainst',\n counterattack_goals_against: 'counterAttackGoalsAgainst',\n pp_maneuver_goals_against: 'ppManeuverGoalsAgainst',\n sh_maneuver_goals_against: 'shManeuverGoalsAgainst',\n ev_maneuver_goals_against: 'evManeuverGoalsAgainst',\n maneuver_goals_against: 'maneuverGoalsAgainst',\n pp_center_forward_goals_against: 'ppCenterForwardGoalsAgainst',\n sh_center_forward_goals_against: 'shCenterForwardGoalsAgainst',\n ev_center_forward_goals_against: 'evCenterForwardGoalsAgainst',\n center_forward_goals_against: 'centerForwardGoalsAgainst',\n pp_free_kick_goals_against: 'ppFreeKickGoalsAgainst',\n sh_free_kick_goals_against: 'shFreeKickGoalsAgainst',\n ev_free_kick_goals_against: 'evFreeKickGoalsAgainst',\n free_kick_goals_against: 'freeKickGoalsAgainst',\n pp_corner_goals_against: 'ppCornerGoalsAgainst',\n sh_corner_goals_against: 'shCornerGoalsAgainst',\n ev_corner_goals_against: 'evCornerGoalsAgainst',\n corner_goals_against: 'cornerGoalsAgainst',\n shootout_goals_against: 'shootoutGoalsAgainst',\n after_game_shootout_goals_against: 'afterGameShootoutGoalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n fouls: 'fouls',\n minor_penalties: 'minorPenalties',\n major_penalties: 'majorPenalties',\n match_penalties: 'matchPenalties',\n penalty_fouls: 'penaltyFouls',\n turnovers: 'turnovers',\n attack_fouls: 'attackFouls',\n personal_fouls: 'personalFouls',\n drawn_fouls: 'drawnFouls',\n drawn_turnovers: 'drawnTurnovers',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n losses: 'losses',\n steals: 'steals',\n pp_free_kick_goals: 'ppFreeKickGoals',\n pp_free_kick_on_goals: 'ppFreeKickOnGoals',\n pp_free_kick_misses: 'ppFreeKickMisses',\n pp_free_kick_shots_blocked: 'ppFreeKickShotsBlocked',\n sh_free_kick_goals: 'shFreeKickGoals',\n sh_free_kick_on_goals: 'shFreeKickOnGoals',\n sh_free_kick_misses: 'shFreeKickMisses',\n sh_free_kick_shots_blocked: 'shFreeKickShotsBlocked',\n ev_free_kick_goals: 'evFreeKickGoals',\n ev_free_kick_on_goals: 'evFreeKickOnGoals',\n ev_free_kick_misses: 'evFreeKickMisses',\n ev_free_kick_shots_blocked: 'evFreeKickShotsBlocked',\n free_kick_passes: 'freeKickPasses',\n free_kick_selfs: 'freeKickSelfs',\n pp_corner_goals: 'ppCornerGoals',\n pp_corner_on_goals: 'ppCornerOnGoals',\n pp_corner_misses: 'ppCornerMisses',\n pp_corner_shots_blocked: 'ppCornerShotsBlocked',\n sh_corner_goals: 'shCornerGoals',\n sh_corner_on_goals: 'shCornerOnGoals',\n sh_corner_misses: 'shCornerMisses',\n sh_corner_shots_blocked: 'shCornerShotsBlocked',\n ev_corner_goals: 'evCornerGoals',\n ev_corner_on_goals: 'evCornerOnGoals',\n ev_corner_misses: 'evCornerMisses',\n ev_corner_shots_blocked: 'evCornerShotsBlocked',\n corner_passes: 'cornerPasses',\n corner_selfs: 'cornerSelfs',\n tackles: 'tackles',\n player_efficiency: 'playerEfficiency',\n defense_select_positions: 'defenseSelectPositions',\n save_possessions: 'savePossessions',\n\n pp_perimetr_shot_goals: 'ppPerimetrShotGoals',\n pp_perimetr_shot_on_goals: 'ppPerimetrShotOnGoals',\n pp_perimetr_shot_misses: 'ppPerimetrShotMisses',\n pp_perimetr_shots_blocked: 'ppPerimetrShotsBlocked',\n ev_perimetr_shot_goals: 'evPerimetrShotGoals',\n ev_perimetr_shot_on_goals: 'evPerimetrShotOnGoals',\n ev_perimetr_shot_misses: 'evPerimetrShotMisses',\n ev_perimetr_shots_blocked: 'evPerimetrShotsBlocked',\n sh_perimetr_shot_goals: 'shPerimetrShotGoals',\n sh_perimetr_shot_on_goals: 'shPerimetrShotOnGoals',\n sh_perimetr_shot_misses: 'shPerimetrShotMisses',\n sh_perimetr_shots_blocked: 'shPerimetrShotsBlocked',\n pp_perimetr_shot_saves: 'ppPerimetrShotSaves',\n sh_perimetr_shot_saves: 'shPerimetrShotSaves',\n ev_perimetr_shot_saves: 'evPerimetrShotSaves',\n pp_perimetr_shot_goals_against: 'ppPerimetrShotGoalsAgainst',\n sh_perimetr_shot_goals_against: 'shPerimetrShotGoalsAgainst',\n ev_perimetr_shot_goals_against: 'evPerimetrShotGoalsAgainst',\n perimetr_shot_goals_against: 'perimetrShotGoalsAgainst',\n\n pp_post_shot_goals: 'ppPostShotGoals',\n pp_post_shot_on_goals: 'ppPostShotOnGoals',\n pp_post_shot_misses: 'ppPostShotMisses',\n pp_post_shots_blocked: 'ppPostShotsBlocked',\n ev_post_shot_goals: 'evPostShotGoals',\n ev_post_shot_on_goals: 'evPostShotOnGoals',\n ev_post_shot_misses: 'evPostShotMisses',\n ev_post_shots_blocked: 'evPostShotsBlocked',\n sh_post_shot_goals: 'shPostShotGoals',\n sh_post_shot_on_goals: 'shPostShotOnGoals',\n sh_post_shot_misses: 'shPostShotMisses',\n sh_post_shots_blocked: 'shPostShotsBlocked',\n pp_post_shot_saves: 'ppPostShotSaves',\n sh_post_shot_saves: 'shPostShotSaves',\n ev_post_shot_saves: 'evPostShotSaves',\n pp_post_shot_goals_against: 'ppPostShotGoalsAgainst',\n sh_post_shot_goals_against: 'shPostShotGoalsAgainst',\n ev_post_shot_goals_against: 'evPostShotGoalsAgainst',\n post_shot_goals_against: 'postShotGoalsAgainst',\n\n pp_fast_shot_goals: 'ppFastShotGoals',\n pp_fast_shot_on_goals: 'ppFastShotOnGoals',\n pp_fast_shot_misses: 'ppFastShotMisses',\n pp_fast_shots_blocked: 'ppFastShotsBlocked',\n ev_fast_shot_goals: 'evFastShotGoals',\n ev_fast_shot_on_goals: 'evFastShotOnGoals',\n ev_fast_shot_misses: 'evFastShotMisses',\n ev_fast_shots_blocked: 'evFastShotsBlocked',\n sh_fast_shot_goals: 'shFastShotGoals',\n sh_fast_shot_on_goals: 'shFastShotOnGoals',\n sh_fast_shot_misses: 'shFastShotMisses',\n sh_fast_shots_blocked: 'shFastShotsBlocked',\n pp_fast_shot_saves: 'ppFastShotSaves',\n sh_fast_shot_saves: 'shFastShotSaves',\n ev_fast_shot_saves: 'evFastShotSaves',\n pp_fast_shot_goals_against: 'ppFastShotGoalsAgainst',\n sh_fast_shot_goals_against: 'shFastShotGoalsAgainst',\n ev_fast_shot_goals_against: 'evFastShotGoalsAgainst',\n fast_shot_goals_against: 'fastShotGoalsAgainst',\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class WaterpoloGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppTotalShotsOnGoal: number;\n evTotalShotsOnGoal: number;\n shTotalShotsOnGoal: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppCounterAttackGoals: number;\n ppCounterAttackOnGoals: number;\n ppCounterAttackMisses: number;\n ppCounterAttackShotsBlocked: number;\n evCounterAttackGoals: number;\n evCounterAttackOnGoals: number;\n evCounterAttackMisses: number;\n evCounterAttackShotsBlocked: number;\n shCounterAttackGoals: number;\n shCounterAttackOnGoals: number;\n shCounterAttackMisses: number;\n shCounterAttackShotsBlocked: number;\n ppManeuverGoals: number;\n ppManeuverOnGoals: number;\n ppManeuverMisses: number;\n ppManeuverShotsBlocked: number;\n evManeuverGoals: number;\n evManeuverOnGoals: number;\n evManeuverMisses: number;\n evManeuverShotsBlocked: number;\n shManeuverGoals: number;\n shManeuverOnGoals: number;\n shManeuverMisses: number;\n shManeuverShotsBlocked: number;\n ppCenterForwardGoals: number;\n ppCenterForwardOnGoals: number;\n ppCenterForwardMisses: number;\n ppCenterForwardShotsBlocked: number;\n evCenterForwardGoals: number;\n evCenterForwardOnGoals: number;\n evCenterForwardMisses: number;\n evCenterForwardShotsBlocked: number;\n shCenterForwardGoals: number;\n shCenterForwardOnGoals: number;\n shCenterForwardMisses: number;\n shCenterForwardShotsBlocked: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n ppSaves: number;\n shSaves: number;\n evSaves: number;\n ppCounterAttackSaves: number;\n shCounterAttackSaves: number;\n evCounterAttackSaves: number;\n ppManeuverSaves: number;\n shManeuverSaves: number;\n evManeuverSaves: number;\n ppCenterForwardSaves: number;\n shCenterForwardSaves: number;\n evCenterForwardSaves: number;\n ppFreeKickSaves: number;\n shFreeKickSaves: number;\n evFreeKickSaves: number;\n ppCornerSaves: number;\n shCornerSaves: number;\n evCornerSaves: number;\n ppTotalGameSaves: number;\n shTotalGameSaves: number;\n evTotalGameSaves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n ppCounterAttackGoalsAgainst: number;\n shCounterAttackGoalsAgainst: number;\n evCounterAttackGoalsAgainst: number;\n counterAttackGoalsAgainst: number;\n ppManeuverGoalsAgainst: number;\n shManeuverGoalsAgainst: number;\n evManeuverGoalsAgainst: number;\n maneuverGoalsAgainst: number;\n ppCenterForwardGoalsAgainst: number;\n shCenterForwardGoalsAgainst: number;\n evCenterForwardGoalsAgainst: number;\n centerForwardGoalsAgainst: number;\n ppFreeKickGoalsAgainst: number;\n shFreeKickGoalsAgainst: number;\n evFreeKickGoalsAgainst: number;\n freeKickGoalsAgainst: number;\n ppCornerGoalsAgainst: number;\n shCornerGoalsAgainst: number;\n evCornerGoalsAgainst: number;\n cornerGoalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n fouls: number;\n minorPenalties: number;\n majorPenalties: number;\n matchPenalties: number;\n penaltyFouls: number;\n turnovers: number;\n attackFouls: number;\n personalFouls: number;\n drawnFouls: number;\n drawnTurnovers: number;\n yellowCards: number;\n redCards: number;\n losses: number;\n steals: number;\n ppFreeKickGoals: number;\n ppFreeKickOnGoals: number;\n ppFreeKickMisses: number;\n ppFreeKickShotsBlocked: number;\n shFreeKickGoals: number;\n shFreeKickOnGoals: number;\n shFreeKickMisses: number;\n shFreeKickShotsBlocked: number;\n evFreeKickGoals: number;\n evFreeKickOnGoals: number;\n evFreeKickMisses: number;\n evFreeKickShotsBlocked: number;\n freeKickPasses: number;\n freeKickSelfs: number;\n ppCornerGoals: number;\n ppCornerOnGoals: number;\n ppCornerMisses: number;\n ppCornerShotsBlocked: number;\n shCornerGoals: number;\n shCornerOnGoals: number;\n shCornerMisses: number;\n shCornerShotsBlocked: number;\n evCornerGoals: number;\n evCornerOnGoals: number;\n evCornerMisses: number;\n evCornerShotsBlocked: number;\n cornerPasses: number;\n cornerSelfs: number;\n tackles: number;\n playerEfficiency: number;\n defenseSelectPositions: number;\n savePossessions: number;\n\n ppPerimetrShotGoals: number;\n ppPerimetrShotOnGoals: number;\n ppPerimetrShotMisses: number;\n ppPerimetrShotsBlocked: number;\n evPerimetrShotGoals: number;\n evPerimetrShotOnGoals: number;\n evPerimetrShotMisses: number;\n evPerimetrShotsBlocked: number;\n shPerimetrShotGoals: number;\n shPerimetrShotOnGoals: number;\n shPerimetrShotMisses: number;\n shPerimetrShotsBlocked: number;\n ppPerimetrShotSaves: number;\n shPerimetrShotSaves: number;\n evPerimetrShotSaves: number;\n ppPerimetrShotGoalsAgainst: number;\n shPerimetrShotGoalsAgainst: number;\n evPerimetrShotGoalsAgainst: number;\n perimetrShotGoalsAgainst: number;\n\n ppPostShotGoals: number;\n ppPostShotOnGoals: number;\n ppPostShotMisses: number;\n ppPostShotsBlocked: number;\n evPostShotGoals: number;\n evPostShotOnGoals: number;\n evPostShotMisses: number;\n evPostShotsBlocked: number;\n shPostShotGoals: number;\n shPostShotOnGoals: number;\n shPostShotMisses: number;\n shPostShotsBlocked: number;\n ppPostShotSaves: number;\n shPostShotSaves: number;\n evPostShotSaves: number;\n ppPostShotGoalsAgainst: number;\n shPostShotGoalsAgainst: number;\n evPostShotGoalsAgainst: number;\n postShotGoalsAgainst: number;\n\n ppFastShotGoals: number;\n ppFastShotOnGoals: number;\n ppFastShotMisses: number;\n ppFastShotsBlocked: number;\n evFastShotGoals: number;\n evFastShotOnGoals: number;\n evFastShotMisses: number;\n evFastShotsBlocked: number;\n shFastShotGoals: number;\n shFastShotOnGoals: number;\n shFastShotMisses: number;\n shFastShotsBlocked: number;\n ppFastShotSaves: number;\n shFastShotSaves: number;\n evFastShotSaves: number;\n ppFastShotGoalsAgainst: number;\n shFastShotGoalsAgainst: number;\n evFastShotGoalsAgainst: number;\n fastShotGoalsAgainst: number;\n\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get penaltyTime(): string {\n if (!this.penaltyMinutes) {\n return '00:00';\n }\n const minutes = Math.floor(this.penaltyMinutes / 60);\n const seconds = Math.floor(this.penaltyMinutes - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0);\n }\n\n get totalCounterAttackGoals(): number {\n return (this.ppCounterAttackGoals || 0) + (this.evCounterAttackGoals || 0) + (this.shCounterAttackGoals || 0);\n }\n\n get ppCounterAttackShots(): number {\n return (this.ppCounterAttackOnGoals || 0) + (this.ppCounterAttackMisses || 0) + (this.ppCounterAttackShotsBlocked || 0);\n }\n\n get shCounterAttackShots(): number {\n return (this.shCounterAttackOnGoals || 0) + (this.shCounterAttackMisses || 0) + (this.shCounterAttackShotsBlocked || 0);\n }\n\n get evCounterAttackShots(): number {\n return (this.evCounterAttackOnGoals || 0) + (this.evCounterAttackMisses || 0) + (this.evCounterAttackShotsBlocked || 0);\n }\n\n get counterAttackShotMisses(): number {\n return (this.ppCounterAttackMisses || 0) + (this.shCounterAttackMisses || 0) + (this.evCounterAttackMisses || 0);\n }\n\n get counterAttackShotOnGoals(): number {\n return (this.ppCounterAttackOnGoals || 0) + (this.shCounterAttackOnGoals || 0) + (this.evCounterAttackOnGoals || 0);\n }\n\n get counterAttackShotsBlocked(): number {\n return (this.ppCounterAttackShotsBlocked || 0) + (this.shCounterAttackShotsBlocked || 0) + (this.evCounterAttackShotsBlocked || 0);\n }\n\n get counterAttackShots(): number {\n return this.counterAttackShotMisses + this.counterAttackShotOnGoals + this.counterAttackShotsBlocked;\n }\n\n get counterAttackGoalsPercent(): number {\n if (!this.totalCounterAttackGoals || !this.counterAttackShots) {\n return 0;\n }\n return Math.round(1000 * this.totalCounterAttackGoals / this.counterAttackShots) / 10;\n }\n\n get totalManeuverGoals(): number {\n return (this.ppManeuverGoals || 0) + (this.shManeuverGoals || 0) + (this.evManeuverGoals || 0);\n }\n\n get ppManeuverShots(): number {\n return (this.ppManeuverOnGoals || 0) + (this.ppManeuverMisses || 0) + (this.ppManeuverShotsBlocked || 0);\n }\n\n get shManeuverShots(): number {\n return (this.shManeuverOnGoals || 0) + (this.shManeuverMisses || 0) + (this.shManeuverShotsBlocked || 0);\n }\n\n get evManeuverShots(): number {\n return (this.evManeuverOnGoals || 0) + (this.evManeuverMisses || 0) + (this.evManeuverShotsBlocked || 0);\n }\n\n get maneuverShotMisses(): number {\n return (this.ppManeuverMisses || 0) + (this.shManeuverMisses || 0) + (this.evManeuverMisses || 0);\n }\n\n get maneuverShotOnGoals(): number {\n return (this.ppManeuverOnGoals || 0) + (this.shManeuverOnGoals || 0) + (this.evManeuverOnGoals || 0);\n }\n\n get maneuverShotsBlocked(): number {\n return (this.ppManeuverShotsBlocked || 0) + (this.shManeuverShotsBlocked || 0) + (this.evManeuverShotsBlocked || 0);\n }\n\n get maneuverShots(): number {\n return this.maneuverShotMisses + this.maneuverShotOnGoals + this.maneuverShotsBlocked;\n }\n\n get maneuverGoalsPercent(): number {\n if (!this.totalManeuverGoals || !this.maneuverShots) {\n return 0;\n }\n return Math.round(1000 * this.totalManeuverGoals / this.maneuverShots) / 10;\n }\n\n get totalCenterForwardGoals(): number {\n return (this.ppCenterForwardGoals || 0) + (this.shCenterForwardGoals || 0) + (this.evCenterForwardGoals || 0);\n }\n\n get ppCenterForwardShots(): number {\n return (this.ppCenterForwardOnGoals || 0) + (this.ppCenterForwardMisses || 0) + (this.ppCenterForwardShotsBlocked || 0);\n }\n\n get shCenterForwardShots(): number {\n return (this.shCenterForwardOnGoals || 0) + (this.shCenterForwardMisses || 0) + (this.shCenterForwardShotsBlocked || 0);\n }\n\n get evCenterForwardShots(): number {\n return (this.evCenterForwardOnGoals || 0) + (this.evCenterForwardMisses || 0) + (this.evCenterForwardShotsBlocked || 0);\n }\n\n get centerForwardShotMisses(): number {\n return (this.ppCenterForwardMisses || 0) + (this.shCenterForwardMisses || 0) + (this.evCenterForwardMisses || 0);\n }\n\n get centerForwardShotOnGoals(): number {\n return (this.ppCenterForwardOnGoals || 0) + (this.shCenterForwardOnGoals || 0) + (this.evCenterForwardOnGoals || 0);\n }\n\n get centerForwardShotsBlocked(): number {\n return (this.ppCenterForwardShotsBlocked || 0) + (this.shCenterForwardShotsBlocked || 0) + (this.evCenterForwardShotsBlocked || 0);\n }\n\n get centerForwardShots(): number {\n return this.centerForwardShotMisses + this.centerForwardShotOnGoals + this.centerForwardShotsBlocked;\n }\n\n get centerForwardGoalsPercent(): number {\n if (!this.totalCenterForwardGoals || !this.centerForwardShots) {\n return 0;\n }\n return Math.round(1000 * this.totalCenterForwardGoals / this.centerForwardShots) / 10;\n }\n\n get totalPerimetrShotGoals(): number {\n return (this.ppPerimetrShotGoals || 0) + (this.evPerimetrShotGoals || 0) + (this.shPerimetrShotGoals || 0);\n }\n\n get ppPerimetrShots(): number {\n return (this.ppPerimetrShotOnGoals || 0) + (this.ppPerimetrShotMisses || 0) + (this.ppPerimetrShotsBlocked || 0);\n }\n\n get shPerimetrShots(): number {\n return (this.shPerimetrShotOnGoals || 0) + (this.shPerimetrShotMisses || 0) + (this.shPerimetrShotsBlocked || 0);\n }\n\n get evPerimetrShots(): number {\n return (this.evPerimetrShotOnGoals || 0) + (this.evPerimetrShotMisses || 0) + (this.evPerimetrShotsBlocked || 0);\n }\n\n get perimetrShotMisses(): number {\n return (this.ppPerimetrShotMisses || 0) + (this.shPerimetrShotMisses || 0) + (this.evPerimetrShotMisses || 0);\n }\n\n get perimetrShotOnGoals(): number {\n return (this.ppPerimetrShotOnGoals || 0) + (this.shPerimetrShotOnGoals || 0) + (this.evPerimetrShotOnGoals || 0);\n }\n\n get perimetrShotsBlocked(): number {\n return (this.ppPerimetrShotsBlocked || 0) + (this.shPerimetrShotsBlocked || 0) + (this.evPerimetrShotsBlocked || 0);\n }\n\n get perimetrShots(): number {\n return this.perimetrShotMisses + this.perimetrShotOnGoals + this.perimetrShotsBlocked;\n }\n\n get perimetrShotGoalsPercent(): number {\n if (!this.totalPerimetrShotGoals || !this.perimetrShots) {\n return 0;\n }\n return Math.round(1000 * this.totalPerimetrShotGoals / this.perimetrShots) / 10;\n }\n\n get totalPostShotGoals(): number {\n return (this.ppPostShotGoals || 0) + (this.evPostShotGoals || 0) + (this.shPostShotGoals || 0);\n }\n\n get ppPostShots(): number {\n return (this.ppPostShotOnGoals || 0) + (this.ppPostShotMisses || 0) + (this.ppPostShotsBlocked || 0);\n }\n\n get shPostShots(): number {\n return (this.shPostShotOnGoals || 0) + (this.shPostShotMisses || 0) + (this.shPostShotsBlocked || 0);\n }\n\n get evPostShots(): number {\n return (this.evPostShotOnGoals || 0) + (this.evPostShotMisses || 0) + (this.evPostShotsBlocked || 0);\n }\n\n get postShotMisses(): number {\n return (this.ppPostShotMisses || 0) + (this.shPostShotMisses || 0) + (this.evPostShotMisses || 0);\n }\n\n get postShotOnGoals(): number {\n return (this.ppPostShotOnGoals || 0) + (this.shPostShotOnGoals || 0) + (this.evPostShotOnGoals || 0);\n }\n\n get postShotsBlocked(): number {\n return (this.ppPostShotsBlocked || 0) + (this.shPostShotsBlocked || 0) + (this.evPostShotsBlocked || 0);\n }\n\n get postShots(): number {\n return this.postShotMisses + this.postShotOnGoals + this.postShotsBlocked;\n }\n\n get postShotGoalsPercent(): number {\n if (!this.totalPostShotGoals || !this.postShots) {\n return 0;\n }\n return Math.round(1000 * this.totalPostShotGoals / this.postShots) / 10;\n }\n\n get totalFastShotGoals(): number {\n return (this.ppFastShotGoals || 0) + (this.evFastShotGoals || 0) + (this.shFastShotGoals || 0);\n }\n\n get ppFastShots(): number {\n return (this.ppFastShotOnGoals || 0) + (this.ppFastShotMisses || 0) + (this.ppFastShotsBlocked || 0);\n }\n\n get shFastShots(): number {\n return (this.shFastShotOnGoals || 0) + (this.shFastShotMisses || 0) + (this.shFastShotsBlocked || 0);\n }\n\n get evFastShots(): number {\n return (this.evFastShotOnGoals || 0) + (this.evFastShotMisses || 0) + (this.evFastShotsBlocked || 0);\n }\n\n get fastShotMisses(): number {\n return (this.ppFastShotMisses || 0) + (this.shFastShotMisses || 0) + (this.evFastShotMisses || 0);\n }\n\n get fastShotOnGoals(): number {\n return (this.ppFastShotOnGoals || 0) + (this.shFastShotOnGoals || 0) + (this.evFastShotOnGoals || 0);\n }\n\n get fastShotsBlocked(): number {\n return (this.ppFastShotsBlocked || 0) + (this.shFastShotsBlocked || 0) + (this.evFastShotsBlocked || 0);\n }\n\n get fastShots(): number {\n return this.fastShotMisses + this.fastShotOnGoals + this.fastShotsBlocked;\n }\n\n get fastShotGoalsPercent(): number {\n if (!this.totalFastShotGoals || !this.fastShots) {\n return 0;\n }\n return Math.round(1000 * this.totalFastShotGoals / this.fastShots) / 10;\n }\n\n get ppShots(): number {\n return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0) +\n (this.ppFreeKickMisses || 0) + (this.ppFreeKickOnGoals || 0) + (this.ppFreeKickShotsBlocked || 0) +\n (this.ppCornerMisses || 0) + (this.ppCornerOnGoals || 0) + (this.ppCornerShotsBlocked || 0) +\n this.ppCounterAttackShots + this.ppManeuverShots + this.ppCenterForwardShots +\n this.ppPerimetrShots + this.ppPostShots + this.ppFastShots;\n }\n\n get evShots(): number {\n return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0) +\n (this.evFreeKickMisses || 0) + (this.evFreeKickOnGoals || 0) + (this.evFreeKickShotsBlocked || 0) +\n (this.evCornerMisses || 0) + (this.evCornerOnGoals || 0) + (this.evCornerShotsBlocked || 0) +\n this.evCounterAttackShots + this.evManeuverShots + this.evCenterForwardShots +\n this.evPerimetrShots + this.evPostShots + this.evFastShots;\n }\n\n get shShots(): number {\n return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0) +\n (this.shFreeKickMisses || 0) + (this.shFreeKickOnGoals || 0) + (this.shFreeKickShotsBlocked || 0) +\n (this.shCornerMisses || 0) + (this.shCornerOnGoals || 0) + (this.shCornerShotsBlocked || 0) +\n this.shCounterAttackShots + this.shManeuverShots + this.shCenterForwardShots +\n this.shPerimetrShots + this.shPostShots + this.shFastShots;\n }\n\n get totalShGoals(): number {\n return (this.shGoals || 0) + (this.shFreeKickGoals || 0) + (this.shCornerGoals || 0) +\n (this.shCounterAttackGoals || 0) + (this.shManeuverGoals || 0) + (this.shCenterForwardGoals || 0) +\n (this.shPerimetrShotGoals || 0) + (this.shPostShotGoals || 0) + (this.shFastShotGoals || 0);\n }\n\n get totalEvGoals(): number {\n return (this.evGoals || 0) + (this.evFreeKickGoals || 0) + (this.evCornerGoals || 0) +\n (this.evCounterAttackGoals || 0) + (this.evManeuverGoals || 0) + (this.evCenterForwardGoals || 0) +\n (this.evPerimetrShotGoals || 0) + (this.evPostShotGoals || 0) + (this.evFastShotGoals || 0);\n }\n\n get totalPpGoals(): number {\n return (this.ppGoals || 0) + (this.ppFreeKickGoals || 0) + (this.ppCornerGoals || 0) +\n (this.ppCounterAttackGoals || 0) + (this.ppManeuverGoals || 0) + (this.ppCenterForwardGoals || 0) +\n (this.ppPerimetrShotGoals || 0) + (this.ppPostShotGoals || 0) + (this.ppFastShotGoals || 0);\n }\n\n get goals(): number {\n return this.totalShGoals + this.totalEvGoals + this.totalPpGoals;\n }\n\n get totalGoals(): number {\n return this.goals + (this.shootoutGoals || 0);\n }\n\n get shootoutShots(): number {\n return (this.shootoutGoals || 0) + (this.shootoutAttempts || 0);\n }\n\n get inGameShotMisses(): number {\n return (this.ppShotMisses || 0) + (this.evShotMisses || 0) + (this.shShotMisses || 0) +\n this.counterAttackShotMisses + this.maneuverShotMisses + this.centerForwardShotMisses +\n this.perimetrShotMisses + this.postShotMisses + this.fastShotMisses;\n }\n\n get shotMisses(): number {\n return (this.ppFreeKickMisses || 0) + (this.evFreeKickMisses || 0) + (this.shFreeKickMisses || 0) +\n (this.ppCornerMisses || 0) + (this.evCornerMisses || 0) + (this.shCornerMisses || 0) +\n this.inGameShotMisses;\n }\n\n get totalPpShotMisses(): number {\n return (this.ppShotMisses || 0) + (this.ppFreeKickMisses || 0) + (this.ppCornerMisses || 0) +\n (this.ppCounterAttackMisses || 0) + (this.ppManeuverMisses || 0) + (this.ppCenterForwardMisses || 0) +\n (this.ppPerimetrShotMisses || 0) + (this.ppPostShotMisses || 0) + (this.ppFastShotMisses || 0);\n }\n\n get shotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0) +\n (this.ppFreeKickOnGoals || 0) + (this.evFreeKickOnGoals || 0) + (this.shFreeKickOnGoals || 0) +\n (this.ppCornerOnGoals || 0) + (this.evCornerOnGoals || 0) + (this.shCornerOnGoals || 0) +\n this.counterAttackShotOnGoals + this.maneuverShotOnGoals + this.centerForwardShotOnGoals +\n this.perimetrShotOnGoals + this.postShotOnGoals + this.fastShotOnGoals;\n }\n\n get totalPpShotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.ppFreeKickOnGoals || 0) + (this.ppCornerOnGoals || 0) +\n (this.ppCounterAttackOnGoals || 0) + (this.ppManeuverOnGoals || 0) + (this.ppCenterForwardOnGoals || 0) +\n (this.ppPerimetrShotOnGoals || 0) + (this.ppPostShotOnGoals || 0) + (this.ppFastShotOnGoals || 0);\n }\n\n get inGameShotsOnGoals(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0) +\n this.counterAttackShotOnGoals + this.maneuverShotOnGoals + this.centerForwardShotOnGoals +\n this.perimetrShotOnGoals + this.postShotOnGoals + this.fastShotOnGoals;\n }\n\n get shots(): number {\n return this.ppShots + this.evShots + this.shShots;\n }\n\n get totalShots(): number {\n return this.shots + this.shootoutShots;\n }\n\n get faceOffs(): number {\n return (this.faceOffWins || 0) + (this.faceOffLosses || 0);\n }\n\n get freeKickShotMisses(): number {\n return (this.ppFreeKickMisses || 0) + (this.evFreeKickMisses || 0) + (this.shFreeKickMisses || 0);\n }\n\n get freeKickShotsBlocked(): number {\n return (this.ppFreeKickShotsBlocked || 0) + (this.evFreeKickShotsBlocked || 0) + (this.shFreeKickShotsBlocked || 0);\n }\n\n get freeKickOnGoals(): number {\n return (this.ppFreeKickOnGoals || 0) + (this.evFreeKickOnGoals || 0) + (this.shFreeKickOnGoals || 0);\n }\n\n get totalFreeKickGoals(): number {\n return (this.ppFreeKickGoals || 0) + (this.shFreeKickGoals || 0) + (this.evFreeKickGoals || 0);\n }\n\n get totalFreeKicks(): number {\n return (this.freeKickSelfs || 0) + (this.freeKickPasses || 0) +\n this.freeKickShotMisses + this.freeKickOnGoals + this.totalFreeKickGoals + this.freeKickShotsBlocked;\n }\n\n get freeKickGoalsPercent(): number {\n if (!this.totalFreeKickGoals || !this.totalFreeKicks) {\n return 0;\n }\n return Math.round(1000 * this.totalFreeKickGoals / this.totalFreeKicks) / 10;\n }\n\n get totalCornerGoals(): number {\n return (this.ppCornerGoals || 0) + (this.shCornerGoals || 0) + (this.evCornerGoals || 0);\n }\n\n get cornerShotMisses(): number {\n return (this.ppCornerMisses || 0) + (this.shCornerMisses || 0) + (this.evCornerMisses || 0);\n }\n\n get cornerOnGoals(): number {\n return (this.ppCornerOnGoals || 0) + (this.shCornerOnGoals || 0) + (this.evCornerOnGoals || 0);\n }\n\n get cornerShotsBlocked(): number {\n return (this.ppCornerShotsBlocked || 0) + (this.shCornerShotsBlocked || 0) + (this.evCornerShotsBlocked || 0);\n }\n\n get totalCorners(): number {\n return (this.cornerSelfs || 0) + (this.cornerPasses || 0) + this.cornerShotsBlocked +\n this.cornerOnGoals + this.cornerShotMisses + this.totalCornerGoals;\n }\n\n get shotsBlocked(): number {\n return (this.ppShotsBlocked || 0) + (this.evShotsBlocked || 0) + (this.shShotsBlocked || 0) +\n this.counterAttackShotsBlocked + this.maneuverShotsBlocked + this.centerForwardShotsBlocked +\n this.freeKickShotsBlocked + this.cornerShotsBlocked +\n this.perimetrShotsBlocked + this.postShotsBlocked + this.fastShotsBlocked;\n }\n\n get totalFouls(): number {\n return (this.fouls || 0) + (this.personalFouls || 0);\n }\n\n get totalPenalties(): number {\n return (this.minorPenalties || 0) + (this.majorPenalties || 0) + (this.matchPenalties || 0);\n }\n\n get positionAttackGoals(): number {\n return (this.shGoals || 0) + (this.evGoals || 0) + (this.ppGoals || 0);\n }\n\n get positionAttackShotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0);\n }\n\n get positionAttackShotsMiss(): number {\n return (this.ppShotMisses || 0) + (this.evShotMisses || 0) + (this.shShotMisses || 0);\n }\n\n get positionAttackShots(): number {\n return this.positionAttackShotsOnGoal + this.positionAttackShotsMiss;\n }\n\n get positionAttackGoalsPercent(): number {\n if (!this.positionAttackGoals || !this.positionAttackShots) {\n return 0;\n }\n return Math.round(1000 * this.positionAttackGoals / this.positionAttackShots) / 10;\n }\n\n get totalInGameGoals(): number {\n return this.totalCenterForwardGoals + this.totalManeuverGoals + this.totalCounterAttackGoals + this.positionAttackGoals +\n this.totalPerimetrShotGoals + this.totalPostShotGoals + this.totalFastShotGoals;\n }\n\n get ppGoalsPercent(): number {\n if (!this.totalPpGoals || !this.ppShots) {\n return 0;\n }\n return Math.round(1000 * this.totalPpGoals / this.ppShots) / 10;\n }\n\n get evGoalsPercent(): number {\n if (!this.totalEvGoals || !this.evShots) {\n return 0;\n }\n return Math.round(1000 * this.totalEvGoals / this.evShots) / 10;\n }\n\n get shGoalsPercent(): number {\n if (!this.totalShGoals || !this.shShots) {\n return 0;\n }\n return Math.round(1000 * this.totalShGoals / this.shShots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.goals || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.goals / this.shots) / 10;\n }\n\n get totalGoalsPercent(): number {\n if (!this.totalGoals || !this.totalShots) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.totalShots) / 10;\n }\n\n get faceOffPercent(): number {\n if (!this.faceOffWins || !this.faceOffs) {\n return 0;\n }\n return Math.round(1000 * this.faceOffWins / this.faceOffs) / 10;\n }\n\n get shootoutGoalsPercent(): number {\n if (!this.shootoutGoals || !this.shootoutShots) {\n return 0;\n }\n return Math.round(1000 * this.shootoutGoals / this.shootoutShots) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n /*goalie stat */\n get positionAttackSaves(): number {\n return (this.ppSaves || 0) + (this.shSaves || 0) + (this.evSaves || 0);\n }\n\n get positionAttackShotsAgainst(): number {\n return this.positionAttackSaves + (this.goalsAgainst || 0);\n }\n\n get positionAttackSavesPercent(): number {\n if (!this.positionAttackSaves || !this.positionAttackShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.positionAttackSaves / this.positionAttackShotsAgainst) / 10;\n }\n\n get counterAttackSaves(): number {\n return (this.ppCounterAttackSaves || 0) + (this.shCounterAttackSaves || 0) + (this.evCounterAttackSaves || 0);\n }\n\n get counterAttackShotsAgainst(): number {\n return this.counterAttackSaves + (this.counterAttackGoalsAgainst || 0);\n }\n\n get counterAttackSavesPercent(): number {\n if (!this.counterAttackSaves || !this.counterAttackShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.counterAttackSaves / this.counterAttackShotsAgainst) / 10;\n }\n\n\n get centerForwardSaves(): number {\n return (this.ppCenterForwardSaves || 0) + (this.shCenterForwardSaves || 0) + (this.evCenterForwardSaves || 0);\n }\n\n get centerForwardShotsAgainst(): number {\n return this.centerForwardSaves + (this.centerForwardGoalsAgainst || 0);\n }\n\n get centerForwardSavesPercent(): number {\n if (!this.centerForwardSaves || !this.centerForwardShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.centerForwardSaves / this.centerForwardShotsAgainst) / 10;\n }\n\n get maneuverSaves(): number {\n return (this.ppManeuverSaves || 0) + (this.shManeuverSaves || 0) + (this.evManeuverSaves || 0);\n }\n\n get maneuverShotsAgainst(): number {\n return this.maneuverSaves + (this.maneuverGoalsAgainst || 0);\n }\n\n get maneuverSavesPercent(): number {\n if (!this.maneuverSaves || !this.maneuverShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.maneuverSaves / this.maneuverShotsAgainst) / 10;\n }\n\n get freeKickSaves(): number {\n return (this.ppFreeKickSaves || 0) + (this.shFreeKickSaves || 0) + (this.evFreeKickSaves || 0);\n }\n\n get freeKickShotsAgainst(): number {\n return this.freeKickSaves + (this.freeKickGoalsAgainst || 0);\n }\n\n get freeKickSavesPercent(): number {\n if (!this.freeKickSaves || !this.freeKickShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.freeKickSaves / this.freeKickShotsAgainst) / 10;\n }\n\n get cornerSaves(): number {\n return (this.ppCornerSaves || 0) + (this.shCornerSaves || 0) + (this.evCornerSaves || 0);\n }\n\n get cornerShotsAgainst(): number {\n return this.cornerSaves + (this.cornerGoalsAgainst || 0);\n }\n\n get cornerSavesPercent(): number {\n if (!this.cornerSaves || !this.cornerShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.cornerSaves / this.cornerShotsAgainst) / 10;\n }\n\n get perimetrShotSaves(): number {\n return (this.ppPerimetrShotSaves || 0) + (this.shPerimetrShotSaves || 0) + (this.evPerimetrShotSaves || 0);\n }\n\n get perimetrShotsAgainst(): number {\n return this.perimetrShotSaves + (this.perimetrShotGoalsAgainst || 0);\n }\n\n get perimetrShotSavesPercent(): number {\n if (!this.perimetrShotSaves || !this.perimetrShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.perimetrShotSaves / this.perimetrShotsAgainst) / 10;\n }\n\n get postShotSaves(): number {\n return (this.ppPostShotSaves || 0) + (this.shPostShotSaves || 0) + (this.evPostShotSaves || 0);\n }\n\n get postShotsAgainst(): number {\n return this.postShotSaves + (this.postShotGoalsAgainst || 0);\n }\n\n get postShotSavesPercent(): number {\n if (!this.postShotSaves || !this.postShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.postShotSaves / this.postShotsAgainst) / 10;\n }\n\n get fastShotSaves(): number {\n return (this.ppFastShotSaves || 0) + (this.shFastShotSaves || 0) + (this.evFastShotSaves || 0);\n }\n\n get fastShotsAgainst(): number {\n return this.fastShotSaves + (this.fastShotGoalsAgainst || 0);\n }\n\n get fastShotSavesPercent(): number {\n if (!this.fastShotSaves || !this.fastShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.fastShotSaves / this.fastShotsAgainst) / 10;\n }\n\n\n get inGameSaves(): number {\n return (this.shSaves || 0) + (this.evSaves || 0) + (this.ppSaves || 0) +\n this.counterAttackSaves + this.maneuverSaves + this.centerForwardSaves +\n this.perimetrShotSaves + this.postShotSaves + this.fastShotSaves;\n }\n\n get saves(): number {\n return this.inGameSaves + this.freeKickSaves + this.cornerSaves;\n }\n\n get totalSaves(): number {\n return this.saves + (this.shootoutSaves || 0);\n }\n\n get inGameGoalsAgainst(): number {\n return (this.goalsAgainst || 0) + (this.counterAttackGoalsAgainst || 0) + (this.maneuverGoalsAgainst || 0) + (this.centerForwardGoalsAgainst || 0) +\n (this.perimetrShotGoalsAgainst || 0) + (this.postShotGoalsAgainst || 0) + (this.fastShotGoalsAgainst || 0);\n }\n\n get shootoutShotsAgainst(): number {\n return (this.shootoutSaves || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameGoalsAgainst(): number {\n return this.inGameGoalsAgainst + (this.freeKickGoalsAgainst || 0) + (this.cornerGoalsAgainst || 0);\n }\n\n get totalGoalsAgainst(): number {\n return this.gameGoalsAgainst + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameShotsAgainst(): number {\n return this.saves + this.gameGoalsAgainst;\n }\n\n get totalShotsAgainst(): number {\n return this.gameShotsAgainst + this.shootoutShotsAgainst;\n }\n\n get shootoutSavesPercent(): number {\n if (!this.shootoutSaves || !this.shootoutShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.shootoutSaves / this.shootoutShotsAgainst) / 10;\n }\n\n get savesPercent(): number {\n if (!this.saves || !this.gameShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.gameShotsAgainst) / 10;\n }\n\n get totalSavesPercent(): number {\n if (!this.totalSaves || !this.totalShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalSaves / this.totalShotsAgainst) / 10;\n }\n\n get totalShSaves(): number {\n return (this.shCounterAttackSaves || 0) + (this.shManeuverSaves || 0) + (this.shCenterForwardSaves || 0) +\n (this.shSaves || 0) + (this.shFreeKickSaves || 0) + (this.shCornerSaves || 0) +\n (this.shPerimetrShotSaves) + (this.shPostShotSaves) + (this.shFastShotSaves);\n }\n\n get totalShGoalsAgainst(): number {\n return (this.shGoalsAgainst || 0) + (this.shFreeKickGoalsAgainst || 0) + (this.shCornerGoalsAgainst || 0) +\n (this.shCounterAttackGoalsAgainst || 0) + (this.shManeuverGoalsAgainst || 0) + (this.shCenterForwardGoalsAgainst || 0) +\n (this.shPerimetrShotGoalsAgainst || 0) + (this.shPostShotGoalsAgainst || 0) + (this.shFastShotGoalsAgainst || 0);\n }\n\n get totalShShotsAgainst(): number {\n return this.totalShSaves + this.totalShGoalsAgainst;\n }\n\n get totalShSavesPercent(): number {\n if (!this.totalShSaves || !this.totalShShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalShSaves / this.totalShShotsAgainst) / 10;\n }\n\n get totalEvSaves(): number {\n return (this.evCounterAttackSaves || 0) + (this.evManeuverSaves || 0) + (this.evCenterForwardSaves || 0) +\n (this.evSaves || 0) + (this.evFreeKickSaves || 0) + (this.evCornerSaves || 0) +\n (this.evPerimetrShotSaves) + (this.evPostShotSaves) + (this.evFastShotSaves);\n }\n\n get totalEvGoalsAgainst(): number {\n return (this.evGoalsAgainst || 0) + (this.evFreeKickGoalsAgainst || 0) + (this.evCornerGoalsAgainst || 0) +\n (this.evCounterAttackGoalsAgainst || 0) + (this.evManeuverGoalsAgainst || 0) + (this.evCenterForwardGoalsAgainst || 0) +\n (this.evPerimetrShotGoalsAgainst || 0) + (this.evPostShotGoalsAgainst || 0) + (this.evFastShotGoalsAgainst || 0);\n }\n\n get totalEvShotsAgainst(): number {\n return this.totalEvSaves + this.totalEvGoalsAgainst;\n }\n\n get totalEvSavesPercent(): number {\n if (!this.totalEvSaves || !this.totalEvShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalEvSaves / this.totalEvShotsAgainst) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { WaterpoloStatistic } from './waterpolo-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: WaterpoloStatistic,\n competitorTeam: WaterpoloStatistic\n }\n})\nexport class WaterpoloGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: WaterpoloStatistic;\n competitorTeam: WaterpoloStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { WaterpoloGameLog } from '../models/waterpolo-game-log';\nimport { WaterpoloGameStatistic } from '../models/waterpolo-game-statistic';\nimport { WaterpoloGameTeamStatistic } from '../models/waterpolo-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class WaterpoloGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<WaterpoloGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/team_statistic/`).pipe(\n map(result => WaterpoloGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<WaterpoloGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/user_statistic/`).pipe(\n map(result => WaterpoloGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<WaterpoloGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/logs/`).pipe(\n map(result => WaterpoloGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { WrestballStatistic } from './wrestball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: WrestballStatistic,\n competitorTeam: WrestballStatistic\n }\n})\nexport class WrestballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: WrestballStatistic;\n competitorTeam: WrestballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n points: 'points',\n free_throws_made: 'freeThrowsMade',\n two_points_free_throw_made: 'twoPointsFreeThrowMade',\n three_points_free_throw_made: 'threePointsFreeThrowMade',\n total_free_throw_made: 'totalFreeThrowMade',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n one_points_made: 'onePointsMade',\n dunks_made: 'dunksMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n two_point_free_throw_attempts: 'twoPointFreeThrowAttempts',\n three_point_free_throw_attempts: 'threePointFreeThrowAttempts',\n total_free_throw_attempts: 'totalFreeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n dunk_attempts: 'dunkAttempts',\n one_point_percent: 'onePointPercent',\n two_point_percent: 'twoPointPercent',\n three_point_percent: 'threePointPercent',\n free_throw_percent: 'freeThrowPercent',\n total_free_throw_percent: 'totalFreeThrowPercent',\n dunks_made_percent: 'dunksMadePercent',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n drawn_fouls: 'drawnFouls',\n drawn_wrestler_attempts: 'drawnWrestlerAttempts',\n drawn_wrestler_won_attempts: 'drawnWrestlerWonAttempts',\n drawn_wrestler_lost_attempts: 'drawnWrestlerLostAttempts',\n wrestler_scrums_won: 'wrestlerScrumsWon',\n wrestler_scrums_lost: 'wrestlerScrumsLost',\n wrestler_scrums_tie: 'wrestlerScrumsTie',\n wrestler_scrum_points: 'wrestlerScrumPoints',\n wrestler_scrums_counterattack: 'wrestlerScrumsCounterattack',\n wrestler_scrums_counterattack_points: 'wrestlerScrumsCounterattackPoints',\n scrums_won: 'scrumsWon',\n scrums_lost: 'scrumsLost',\n scrums_tie: 'scrumsTie',\n scrum_points: 'scrumPoints',\n scrums_ball_advantage_won: 'scrumsBallAdvantageWon',\n scrums_ball_advantage_lost: 'scrumsBallAdvantageLost',\n scrums_ball_advantage_tie: 'scrumsBallAdvantageTie',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n updated_at: 'updatedAt',\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class WrestballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n freeThrowsMade: number;\n twoPointsFreeThrowMade: number;\n threePointsFreeThrowMade: number;\n totalFreeThrowMade: number;\n twoPointsMade: number;\n threePointsMade: number;\n onePointsMade: number;\n dunksMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n twoPointFreeThrowAttempts: number;\n threePointFreeThrowAttempts: number;\n totalFreeThrowAttempts: number;\n onePointAttempts: number;\n dunkAttempts: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n disqualificationFouls: number;\n drawnFouls: number;\n drawnWrestlerAttempts: number;\n drawnWrestlerWonAttempts: number;\n drawnWrestlerLostAttempts: number;\n wrestlerScrumsWon: number;\n wrestlerScrumsLost: number;\n wrestlerScrumsTie: number;\n wrestlerScrumPoints: number;\n wrestlerScrumsCounterattack: number;\n wrestlerScrumsCounterattackPoints: number;\n scrumsWon: number;\n scrumsLost: number;\n scrumsTie: number;\n scrumPoints: number;\n scrumsBallAdvantageWon: number;\n scrumsBallAdvantageLost: number;\n scrumsBallAdvantageTie: number;\n yellowCards: number;\n redCards: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get totalFouls(): number {\n return (this.personalFouls || 0)\n + (this.technicalFouls || 0)\n + (this.unsportsmanlikeFouls || 0)\n + (this.disqualificationFouls || 0)\n + (this.yellowCards || 0)\n + (this.redCards || 0);\n }\n\n set onePointPercent(v: number) {}\n\n get onePointPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n set twoPointPercent(v: number) {}\n\n get twoPointPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n set threePointPercent(v: number) {}\n\n get threePointPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n set freeThrowPercent(v: number) {}\n\n get freeThrowPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n set totalFreeThrowPercent(v: number) {}\n\n get totalFreeThrowPercent(): number {\n if (!this.totalFreeThrowMade || !this.totalFreeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.totalFreeThrowMade / this.totalFreeThrowAttempts) / 10;\n }\n\n set dunksMadePercent(v: number) {}\n\n get dunksMadePercent(): number {\n return !this.dunksMade || !this.dunkAttempts ? 0 : Math.round(1000 * this.dunksMade / this.dunkAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n\n get wrestlerScrums(): number {\n return (this.wrestlerScrumsWon || 0)\n + (this.wrestlerScrumsLost || 0)\n + (this.wrestlerScrumsTie || 0)\n + (this.wrestlerScrumsCounterattack || 0);\n }\n\n get wrestlerScrumsWonPercent(): number {\n if (!this.wrestlerScrumsWon || !this.wrestlerScrums) {\n return 0;\n }\n return Math.round(1000 * this.wrestlerScrumsWon / this.wrestlerScrums) / 10;\n }\n\n get scrums(): number {\n return (this.scrumsWon || 0) + (this.scrumsLost || 0) + (this.scrumsTie || 0);\n }\n\n get scrumsWonPercent(): number {\n if (!this.scrumsWon || !this.scrums) {\n return 0;\n }\n return Math.round(1000 * this.scrumsWon / this.scrums) / 10;\n }\n\n get scrumsBallAdvantageTotal(): number {\n return (this.scrumsBallAdvantageWon || 0) + (this.scrumsBallAdvantageLost || 0) + (this.scrumsBallAdvantageTie || 0);\n }\n\n get scrumsBallAdvantageWonPercent(): number {\n if (!this.scrumsBallAdvantageWon || !this.scrumsBallAdvantageTotal) {\n return 0;\n }\n return Math.round(1000 * this.scrumsBallAdvantageWon / this.scrumsBallAdvantageTotal) / 10;\n }\n\n get totalScrums(): number {\n return (this.wrestlerScrums || 0) + (this.scrums || 0) + (this.scrumsBallAdvantageTotal || 0);\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum WrestballGameLogTypes {\n enter_game = 1,\n exit_game,\n remove_game,\n one_point_made,\n one_point_attempt,\n two_point_made,\n two_point_attempt,\n three_point_made,\n three_point_attempt,\n free_throw_made,\n free_throw_attempt,\n assist,\n block,\n rebound,\n offensive_rebound,\n defensive_rebound,\n team_rebound,\n steal,\n turnover,\n personal_foul,\n timeout,\n wrestler_scrum,\n wrestler_scrum_won,\n wrestler_scrum_lost,\n wrestler_scrum_tie,\n scrum,\n scrum_won,\n scrum_lost,\n scrum_tie,\n yellow_card,\n red_card,\n wrestler_scrum_counterattack,\n scrum_ball_advantage_won,\n scrum_ball_advantage_lost,\n scrum_ball_advantage_tie,\n dunk_made,\n dunk_attempt,\n two_point_free_throw_made,\n two_point_free_throw_attempt,\n three_point_free_throw_made,\n three_point_free_throw_attempt\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n foul_on_game_user_id: 'foulOnGameUserId',\n wrestler_attempt_on_game_user_id: 'wrestlerAttemptOnGameUserId',\n is_coach: 'isCoach',\n is_bench: 'isBench',\n marked: 'marked',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(WrestballGameLogTypes),\n }\n})\nexport class WrestballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: WrestballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n foulOnGameUserId: number;\n foulOnGameUser: GameUser;\n wrestlerAttemptOnGameUserId: number;\n wrestlerAttemptOnGameUser: GameUser;\n isCoach: boolean;\n isBench: boolean;\n\n isPointsType() {\n return [\n WrestballGameLogTypes.two_point_made,\n WrestballGameLogTypes.three_point_made,\n WrestballGameLogTypes.free_throw_made,\n WrestballGameLogTypes.two_point_free_throw_made,\n WrestballGameLogTypes.three_point_free_throw_made,\n WrestballGameLogTypes.one_point_made,\n WrestballGameLogTypes.scrum_won,\n WrestballGameLogTypes.wrestler_scrum_won,\n WrestballGameLogTypes.wrestler_scrum_counterattack,\n WrestballGameLogTypes.dunk_made,\n ].indexOf(this.logType) > -1;\n }\n\n isReboundType() {\n return [\n WrestballGameLogTypes.rebound,\n WrestballGameLogTypes.offensive_rebound,\n WrestballGameLogTypes.defensive_rebound,\n WrestballGameLogTypes.team_rebound,\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType() {\n return [\n WrestballGameLogTypes.personal_foul,\n WrestballGameLogTypes.yellow_card,\n WrestballGameLogTypes.red_card,\n ].indexOf(this.logType) > -1;\n }\n\n isScrumType() {\n return [\n WrestballGameLogTypes.wrestler_scrum_won,\n WrestballGameLogTypes.wrestler_scrum_lost,\n WrestballGameLogTypes.wrestler_scrum_tie,\n WrestballGameLogTypes.scrum_won,\n WrestballGameLogTypes.scrum_lost,\n WrestballGameLogTypes.scrum_tie,\n WrestballGameLogTypes.scrum_ball_advantage_won,\n WrestballGameLogTypes.scrum_ball_advantage_lost,\n WrestballGameLogTypes.scrum_ball_advantage_tie\n ].indexOf(this.logType) > -1;\n }\n\n isRestlerScrumType() {\n return [\n WrestballGameLogTypes.wrestler_scrum_won,\n WrestballGameLogTypes.wrestler_scrum_lost,\n WrestballGameLogTypes.wrestler_scrum_tie\n ].indexOf(this.logType) > -1;\n }\n\n getScore() {\n const scoreMapping = {\n [WrestballGameLogTypes.one_point_made]: 1,\n [WrestballGameLogTypes.free_throw_made]: 1,\n [WrestballGameLogTypes.two_point_free_throw_made]: 2,\n [WrestballGameLogTypes.three_point_free_throw_made]: 3,\n [WrestballGameLogTypes.two_point_made]: 2,\n [WrestballGameLogTypes.three_point_made]: 3,\n [WrestballGameLogTypes.scrum_won]: 2,\n [WrestballGameLogTypes.wrestler_scrum_won]: 2,\n [WrestballGameLogTypes.wrestler_scrum_counterattack]: 2,\n [WrestballGameLogTypes.dunk_made]: 2,\n };\n return scoreMapping[this.logType] || 0;\n }\n\n compare(model: WrestballGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { GameBaseApi } from './game-base-api';\nimport { WrestballGameTeamStatistic } from '../models/wrestball-game-team-statistic';\nimport { WrestballGameStatistic } from '../models/wrestball-game-statistic';\nimport { WrestballGameLog } from '../models/wrestball-game-log';\n\n@Injectable({providedIn: 'root'})\nexport class WrestballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_wrestball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<WrestballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_wrestball_game/${gameId}/team_statistic/`).pipe(\n map(result => WrestballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<WrestballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_wrestball_game/${gameId}/user_statistic/`).pipe(\n map(result => WrestballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<WrestballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_wrestball_game/${gameId}/logs/`).pipe(\n map(result => WrestballGameLog.toFront(result))\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TeamUser } from '../models/team-user';\n\n@Injectable({providedIn: 'root'})\nexport class PublicTeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(teamId: number): Promise<Team> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/`).pipe(\n map(result => Team.toFront(result))\n ).toPromise();\n }\n\n getTournamentTeams(teamId: number, leagueId: number): Promise<TournamentTeam[]> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/tournament_teams/`, {params}).pipe(\n map(result => TournamentTeam.toFront(result))\n ).toPromise();\n }\n\n async getUsers(teamId: number): Promise<TeamUser[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/users/`)\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { User } from '../models/user';\nimport { map } from 'rxjs/operators';\nimport { Tournament } from '../models/tournament';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\nimport { LeaguePlayer } from '../models/league-player';\n\n@Injectable({providedIn: 'root'})\nexport class PublicUserApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(userId: number): Promise<User> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/`).pipe(\n map(result => User.toFront(result))\n ).toPromise();\n }\n\n getTournaments(userId: number, leagueId: number): Promise<Tournament[]> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/tournaments/`, {params}).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n getTournamentUser(userId: number, seasonId: number): Promise<TournamentTeamUser> {\n const params = new HttpParams().set('season_id', seasonId.toString());\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/tournament_user/`, {params}).pipe(\n map(result => TournamentTeamUser.toFront(result))\n ).toPromise();\n }\n\n getLeaguePlayer(userId: number, leagueId: number): Promise<LeaguePlayer> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/league_player/`, {params}).pipe(\n map(result => LeaguePlayer.toFront(result))\n ).toPromise();\n }\n}\n","import { BasketballGameLogTypes } from '../models/basketball-game-log';\nimport { Locales } from './locales';\n\nexport const BasketballGameLogTypeLocalization = {\n [Locales.ru]: {\n [BasketballGameLogTypes.enter_game]: 'Выход на площадку',\n [BasketballGameLogTypes.exit_game]: 'Ушел с площадки',\n [BasketballGameLogTypes.remove_game]: 'Удаление с площадки',\n [BasketballGameLogTypes.two_point_attempt]: 'Бросок 2 очка',\n [BasketballGameLogTypes.three_point_attempt]: 'Бросок 3 очка',\n [BasketballGameLogTypes.free_throw_attempt]: 'Штрафной бросок',\n [BasketballGameLogTypes.one_point_attempt]: 'Бросок 1 очко',\n [BasketballGameLogTypes.two_point_made]: '2 очка',\n [BasketballGameLogTypes.three_point_made]: '3 очка',\n [BasketballGameLogTypes.free_throw_made]: '1 очко, штрафной',\n [BasketballGameLogTypes.one_point_made]: '1 очко',\n [BasketballGameLogTypes.assist]: 'Передача',\n [BasketballGameLogTypes.block]: 'Блокшот',\n [BasketballGameLogTypes.rebound]: 'Подбор',\n [BasketballGameLogTypes.offensive_rebound]: 'Подбор в нападении',\n [BasketballGameLogTypes.defensive_rebound]: 'Подбор в защите',\n [BasketballGameLogTypes.steal]: 'Перехват',\n [BasketballGameLogTypes.turnover]: 'Потеря',\n [BasketballGameLogTypes.personal_foul]: 'Фол',\n [BasketballGameLogTypes.technical_foul]: 'Технический фол',\n [BasketballGameLogTypes.unsportsmanlike_foul]: 'Неспортиный фол',\n [BasketballGameLogTypes.timeout]: 'Таймаут',\n [BasketballGameLogTypes.team_rebound]: 'Командный подбор',\n [BasketballGameLogTypes.dunk_attempt]: 'Данк мимо',\n [BasketballGameLogTypes.dunk_made]: 'Данк',\n [BasketballGameLogTypes.four_point_attempt]: 'Бросок 4 очка',\n [BasketballGameLogTypes.four_point_made]: '4 очка',\n [BasketballGameLogTypes.shootout]: 'Буллит',\n [BasketballGameLogTypes.shootout_won]: 'Буллит выигран',\n [BasketballGameLogTypes.shootout_lost]: 'Буллит проигран',\n [BasketballGameLogTypes.moneyball_free_throw_attempt]: 'Штрафной бросок',\n [BasketballGameLogTypes.moneyball_free_throw_made]: '2 очка, штрафной',\n },\n [Locales.en]: {\n [BasketballGameLogTypes.enter_game]: 'Entering the court',\n [BasketballGameLogTypes.exit_game]: 'Exit the court',\n [BasketballGameLogTypes.remove_game]: 'Remove from the court',\n [BasketballGameLogTypes.two_point_attempt]: 'Two point attempt',\n [BasketballGameLogTypes.three_point_attempt]: 'Three point attempt',\n [BasketballGameLogTypes.free_throw_attempt]: 'Free throw attempt',\n [BasketballGameLogTypes.one_point_attempt]: 'One point attempt',\n [BasketballGameLogTypes.two_point_made]: '2 points',\n [BasketballGameLogTypes.three_point_made]: '3 points',\n [BasketballGameLogTypes.free_throw_made]: '1 point, free throw',\n [BasketballGameLogTypes.one_point_made]: '1 point',\n [BasketballGameLogTypes.assist]: 'Assist',\n [BasketballGameLogTypes.block]: 'Block',\n [BasketballGameLogTypes.rebound]: 'Rebound',\n [BasketballGameLogTypes.offensive_rebound]: 'Offensive rebound',\n [BasketballGameLogTypes.defensive_rebound]: 'Defensive rebound',\n [BasketballGameLogTypes.steal]: 'Steal',\n [BasketballGameLogTypes.turnover]: 'Turnover',\n [BasketballGameLogTypes.personal_foul]: 'Foul',\n [BasketballGameLogTypes.technical_foul]: 'Technical foul',\n [BasketballGameLogTypes.unsportsmanlike_foul]: 'Unsportsmanlike foul',\n [BasketballGameLogTypes.timeout]: 'Timeout',\n [BasketballGameLogTypes.team_rebound]: 'Team rebound',\n [BasketballGameLogTypes.four_point_attempt]: 'Four point attempt',\n [BasketballGameLogTypes.four_point_made]: '4 points',\n [BasketballGameLogTypes.dunk_attempt]: 'Dunk miss',\n [BasketballGameLogTypes.dunk_attempt]: 'Dunk',\n [BasketballGameLogTypes.shootout]: 'Shootout',\n [BasketballGameLogTypes.shootout_won]: 'Shootout won',\n [BasketballGameLogTypes.shootout_lost]: 'Shootout lost',\n [BasketballGameLogTypes.moneyball_free_throw_attempt]: 'Free throw attempt',\n [BasketballGameLogTypes.moneyball_free_throw_made]: '2 points, free throw',\n }\n};\n","import { BasketballSubLogTypes } from '../models/basketball-game-log';\nimport { Locales } from './locales';\n\nexport const BasketballGameSubLogTypesLocalization = {\n [Locales.ru]: {\n // Shots\n [BasketballSubLogTypes.jump_shot]: 'Джампшот',\n [BasketballSubLogTypes.step_back_jump_shot]: 'Степ-бэк',\n [BasketballSubLogTypes.floating_jump_shot]: 'Флоатинг',\n [BasketballSubLogTypes.fade_away_jump_shot]: 'Фэйдавэй',\n [BasketballSubLogTypes.pull_up_jump_shot]: 'Пуллап',\n [BasketballSubLogTypes.turnaround_jump_shot]: 'Турнэраунд',\n [BasketballSubLogTypes.dunk]: 'Данк',\n [BasketballSubLogTypes.layup]: 'Лэйап',\n [BasketballSubLogTypes.driving_layup]: 'Драйвинг лэйап',\n [BasketballSubLogTypes.alley_oop]: 'Алейуп',\n [BasketballSubLogTypes.hook_shot]: 'Хукшот',\n\n // foul\n [BasketballSubLogTypes.offensive_foul]: 'В нападении',\n [BasketballSubLogTypes.shot_foul]: 'При броксе',\n [BasketballSubLogTypes.mutual_foul]: 'Обоюдный фол',\n\n // Turnover\n [BasketballSubLogTypes.bad_pass]: 'Плохой пас',\n [BasketballSubLogTypes.ball_handling]: 'На ведении',\n [BasketballSubLogTypes.travel]: 'Пробежка',\n [BasketballSubLogTypes.double_dribble]: 'Двойное ведение',\n [BasketballSubLogTypes.out_of_bounds]: 'Заступ в аут',\n [BasketballSubLogTypes.three_seconds]: '3 секунды',\n [BasketballSubLogTypes.five_seconds]: '5 секунд',\n [BasketballSubLogTypes.eight_seconds]: '8 секунд',\n [BasketballSubLogTypes.twenty_four_seconds]: '24 секунды',\n [BasketballSubLogTypes.back_court]: 'Зона',\n [BasketballSubLogTypes.offensive_goal_tending]: 'Гоалтендинг',\n [BasketballSubLogTypes.other_turnover]: 'Другое',\n },\n [Locales.en]: {\n // Shots\n [BasketballSubLogTypes.jump_shot]: 'Jump shot',\n [BasketballSubLogTypes.step_back_jump_shot]: 'Step back',\n [BasketballSubLogTypes.floating_jump_shot]: 'Floating',\n [BasketballSubLogTypes.fade_away_jump_shot]: 'Fade-away',\n [BasketballSubLogTypes.pull_up_jump_shot]: 'Pull-up',\n [BasketballSubLogTypes.turnaround_jump_shot]: 'Turnaround',\n [BasketballSubLogTypes.dunk]: 'Dunk',\n [BasketballSubLogTypes.layup]: 'Layup',\n [BasketballSubLogTypes.driving_layup]: 'Driving layup',\n [BasketballSubLogTypes.alley_oop]: 'Alley-oop',\n [BasketballSubLogTypes.hook_shot]: 'Hook-shot',\n\n // foul\n [BasketballSubLogTypes.offensive_foul]: 'Offensive foul',\n [BasketballSubLogTypes.shot_foul]: 'Shot foul',\n [BasketballSubLogTypes.mutual_foul]: 'Mutual foul',\n\n // Turnover\n [BasketballSubLogTypes.bad_pass]: 'Bad pass',\n [BasketballSubLogTypes.ball_handling]: 'Ball handling',\n [BasketballSubLogTypes.travel]: 'Travel',\n [BasketballSubLogTypes.double_dribble]: 'Double dribble',\n [BasketballSubLogTypes.out_of_bounds]: 'Out of bounds',\n [BasketballSubLogTypes.three_seconds]: '3 second',\n [BasketballSubLogTypes.five_seconds]: '5 second',\n [BasketballSubLogTypes.eight_seconds]: '8 second',\n [BasketballSubLogTypes.twenty_four_seconds]: '24 second',\n [BasketballSubLogTypes.back_court]: 'Back court',\n [BasketballSubLogTypes.offensive_goal_tending]: 'Goal tending',\n [BasketballSubLogTypes.other_turnover]: 'Other',\n }\n};\n","import { Country } from '../models/city';\nimport { Locales } from './locales';\n\nexport const CountryLocalization = {\n [Locales.ru]: {\n [Country.RU]: 'Россия',\n [Country.BL]: 'Беларусь',\n [Country.AM]: 'Армения',\n [Country.KZ]: 'Казахстан',\n [Country.KG]: 'Кыргызстан',\n [Country.USA]: 'США',\n [Country.GE]: 'Грузия',\n [Country.AZ]: 'Азербайджан',\n [Country.CHN]: 'Китай',\n [Country.EGY]: 'Египет',\n [Country.IRN]: 'Иран',\n [Country.GRC]: 'Греция',\n },\n [Locales.en]: {\n [Country.RU]: 'Russia',\n [Country.BL]: 'Belarus',\n [Country.AM]: 'Armenia',\n [Country.KZ]: 'Kazakhstan',\n [Country.KG]: 'Kyrgyzstan',\n [Country.USA]: 'USA',\n [Country.GE]: 'Georgia',\n [Country.AZ]: 'Azerbaijan',\n [Country.CHN]: 'China',\n [Country.EGY]: 'Egypt',\n [Country.IRN]: 'Iran',\n [Country.GRC]: 'Greece',\n },\n};\n","import { HockeyGameLogTypes } from '../models/hockey-game-log';\nimport { Locales } from './locales';\n\nexport const HockeyGameLogTypeLocalization = {\n [Locales.ru]: {\n [HockeyGameLogTypes.enter_game]: 'Выход на площадку',\n [HockeyGameLogTypes.exit_game]: 'Ушел с площадки',\n [HockeyGameLogTypes.shot_miss]: 'Бросок мимо',\n [HockeyGameLogTypes.shot_on_goal]: 'Бросок по воротам',\n [HockeyGameLogTypes.shot_blocked]: 'Заблокированный бросок',\n [HockeyGameLogTypes.goal]: 'Гол',\n [HockeyGameLogTypes.shootout_attempt]: 'Буллит промах',\n [HockeyGameLogTypes.shootout_goal]: 'Буллит гол',\n [HockeyGameLogTypes.after_game_shootout_attempt]: 'Буллит промах',\n [HockeyGameLogTypes.after_game_shootout_goal]: 'Буллит гол',\n [HockeyGameLogTypes.assist]: 'Передача',\n [HockeyGameLogTypes.block_shot]: 'Блокировка броска',\n [HockeyGameLogTypes.minor_penalty]: 'Малый штраф',\n [HockeyGameLogTypes.major_penalty]: 'Большой штраф',\n [HockeyGameLogTypes.misconduct_penalty]: 'Дисциплинарный штраф',\n [HockeyGameLogTypes.game_misconduct_penalty]: 'Дисциплинарный штраф до конца игры',\n [HockeyGameLogTypes.match_penalty]: 'Матч-штраф',\n [HockeyGameLogTypes.penalty_shot]: 'Штрафной бросок',\n [HockeyGameLogTypes.face_off_lose]: 'Проигрыш в вбрасывании',\n [HockeyGameLogTypes.face_off_win]: 'Победа в вбрасывании',\n [HockeyGameLogTypes.save]: 'Отражен бросок',\n [HockeyGameLogTypes.shootout_save]: 'Отражен бросок',\n [HockeyGameLogTypes.after_game_shootout_save]: 'Отражен бросок',\n [HockeyGameLogTypes.timeout]: 'Таймаут',\n [HockeyGameLogTypes.penalty_start]: 'Начало штрафного времени',\n [HockeyGameLogTypes.penalty_end]: 'Конец штрафного времени',\n [HockeyGameLogTypes.steal]: 'Отбор',\n [HockeyGameLogTypes.loss]: 'Потеря',\n [HockeyGameLogTypes.sharp_pass]: 'Острая передача',\n },\n [Locales.en]: {\n [HockeyGameLogTypes.enter_game]: 'Entering the court',\n [HockeyGameLogTypes.exit_game]: 'Exit the court',\n [HockeyGameLogTypes.shot_miss]: 'Missing shot',\n [HockeyGameLogTypes.shot_on_goal]: 'Shot on a goal',\n [HockeyGameLogTypes.shot_blocked]: 'Blocked shot',\n [HockeyGameLogTypes.goal]: 'Goal',\n [HockeyGameLogTypes.shootout_attempt]: 'Shootout miss',\n [HockeyGameLogTypes.shootout_goal]: 'Shootout goal',\n [HockeyGameLogTypes.after_game_shootout_attempt]: 'Shootout miss',\n [HockeyGameLogTypes.after_game_shootout_goal]: 'Shootout goal',\n [HockeyGameLogTypes.assist]: 'Assist',\n [HockeyGameLogTypes.block_shot]: 'Shot is blocked',\n [HockeyGameLogTypes.minor_penalty]: 'Minor penalty',\n [HockeyGameLogTypes.major_penalty]: 'Major penalty',\n [HockeyGameLogTypes.misconduct_penalty]: 'Misconduct penalty',\n [HockeyGameLogTypes.game_misconduct_penalty]: 'Disciplinary penalty until the end of the game',\n [HockeyGameLogTypes.match_penalty]: 'Match penalty',\n [HockeyGameLogTypes.penalty_shot]: 'Penalty shot',\n [HockeyGameLogTypes.face_off_lose]: 'Face-off lose',\n [HockeyGameLogTypes.face_off_win]: 'Face-off win',\n [HockeyGameLogTypes.save]: 'Throw is reflected',\n [HockeyGameLogTypes.shootout_save]: 'Throw is reflected',\n [HockeyGameLogTypes.after_game_shootout_save]: 'Throw is reflected',\n [HockeyGameLogTypes.timeout]: 'Timeout',\n [HockeyGameLogTypes.penalty_start]: 'The beginning of the penalty time',\n [HockeyGameLogTypes.penalty_end]: 'End of penalty time',\n [HockeyGameLogTypes.steal]: 'Steal',\n [HockeyGameLogTypes.loss]: 'Loss',\n [HockeyGameLogTypes.sharp_pass]: 'Sharp pass',\n }\n};\n","import { FootballGameLogTypes } from '../models/football-game-log';\nimport { Locales } from './locales';\n\nexport const FootballGameLogTypeLocalization = {\n [Locales.ru]: {\n [FootballGameLogTypes.enter_game]: 'Выход на поле',\n [FootballGameLogTypes.exit_game]: 'Ушел с поля',\n [FootballGameLogTypes.shot_miss]: 'Удар мимо',\n [FootballGameLogTypes.shot_on_goal]: 'Удар в створ',\n [FootballGameLogTypes.shot_blocked]: 'Заблокированный удар',\n [FootballGameLogTypes.goal]: 'Гол',\n [FootballGameLogTypes.assist]: 'Передача',\n [FootballGameLogTypes.penalty_attempt]: 'Пенальти промах',\n [FootballGameLogTypes.penalty_goal]: 'Пенальти гол',\n [FootballGameLogTypes.small_penalty_attempt]: '10-метровый промах',\n [FootballGameLogTypes.small_penalty_goal]: '10-метровый гол',\n [FootballGameLogTypes.block_shot]: 'Блокировка удара',\n [FootballGameLogTypes.corner]: 'Угловой',\n [FootballGameLogTypes.free_kick]: 'Штрафной удар',\n [FootballGameLogTypes.save]: 'Отражен удар',\n [FootballGameLogTypes.penalty_save]: 'Отражен пенальти',\n [FootballGameLogTypes.small_penalty_save]: 'Отражен 10 метровый',\n [FootballGameLogTypes.foul]: 'Фол',\n [FootballGameLogTypes.yellow_card]: 'Желтая карточка',\n [FootballGameLogTypes.red_card]: 'Красная карточка',\n [FootballGameLogTypes.perfect_pass]: 'Пас',\n [FootballGameLogTypes.loss]: 'Потеря',\n [FootballGameLogTypes.steal]: 'Перехват',\n [FootballGameLogTypes.out]: 'Аут',\n [FootballGameLogTypes.timeout]: 'Таймаут',\n [FootballGameLogTypes.auto_goal]: 'Автогол',\n [FootballGameLogTypes.end_game_penalty_goal]: 'Пенальти гол',\n [FootballGameLogTypes.end_game_penalty_miss]: 'Пенальти промах',\n [FootballGameLogTypes.end_game_penalty_save]: 'Отражен пенальти',\n [FootballGameLogTypes.duel_won]: 'Дуэль выиграна',\n [FootballGameLogTypes.duel_lost]: 'Дуэль проиграна',\n [FootballGameLogTypes.double_goal]: 'Гол+2',\n [FootballGameLogTypes.super_game]: 'Супер игра',\n [FootballGameLogTypes.color_ball]: 'Цветной мяч',\n [FootballGameLogTypes.bonus]: 'Бонус',\n },\n [Locales.en]: {\n [FootballGameLogTypes.enter_game]: 'Entering the court',\n [FootballGameLogTypes.exit_game]: 'Exit the court',\n [FootballGameLogTypes.shot_miss]: 'Missing shot',\n [FootballGameLogTypes.shot_on_goal]: 'Shot on goal',\n [FootballGameLogTypes.shot_blocked]: 'Shot is blocked',\n [FootballGameLogTypes.goal]: 'Goal',\n [FootballGameLogTypes.assist]: 'Assist',\n [FootballGameLogTypes.penalty_attempt]: 'Penalty miss',\n [FootballGameLogTypes.penalty_goal]: 'Penalty goal',\n [FootballGameLogTypes.small_penalty_attempt]: '10-meters shot miss',\n [FootballGameLogTypes.small_penalty_goal]: '10-meters goal',\n [FootballGameLogTypes.block_shot]: 'Blocking shot',\n [FootballGameLogTypes.corner]: 'Corner',\n [FootballGameLogTypes.free_kick]: 'Free kick',\n [FootballGameLogTypes.save]: 'Save',\n [FootballGameLogTypes.penalty_save]: 'Penalty save',\n [FootballGameLogTypes.small_penalty_save]: '10-meters save',\n [FootballGameLogTypes.foul]: 'Foul',\n [FootballGameLogTypes.yellow_card]: 'Yellow card',\n [FootballGameLogTypes.red_card]: 'Red card',\n [FootballGameLogTypes.perfect_pass]: 'Pass',\n [FootballGameLogTypes.loss]: 'Loss',\n [FootballGameLogTypes.steal]: 'Steal',\n [FootballGameLogTypes.out]: 'Out',\n [FootballGameLogTypes.timeout]: 'Timeout',\n [FootballGameLogTypes.auto_goal]: 'Own goal',\n [FootballGameLogTypes.end_game_penalty_goal]: 'Penalty goal',\n [FootballGameLogTypes.end_game_penalty_miss]: 'Penalty miss',\n [FootballGameLogTypes.end_game_penalty_save]: 'Penalty save',\n [FootballGameLogTypes.duel_won]: 'Duel won',\n [FootballGameLogTypes.duel_lost]: 'Duel lost',\n [FootballGameLogTypes.double_goal]: 'Goal+2',\n [FootballGameLogTypes.super_game]: 'Super game',\n [FootballGameLogTypes.color_ball]: 'Color ball',\n [FootballGameLogTypes.bonus]: 'Bonus',\n }\n};\n","import { HandballGameLogTypes } from '../models/handball-game-log';\nimport { Locales } from './locales';\n\nexport const HandballGameLogTypeLocalization = {\n [Locales.ru]: {\n [HandballGameLogTypes.enter_game]: 'Выход на поле',\n [HandballGameLogTypes.exit_game]: 'Ушел с поля',\n [HandballGameLogTypes.shot_miss]: 'Бросок мимо',\n [HandballGameLogTypes.shot_on_goal]: 'Бросок в створ',\n [HandballGameLogTypes.shot_blocked]: 'Заблокированный бросок',\n [HandballGameLogTypes.goal]: 'Гол',\n [HandballGameLogTypes.assist]: 'Передача',\n [HandballGameLogTypes.penalty_miss]: '7м промах',\n [HandballGameLogTypes.penalty_shot_on_goal]: '7м в створ',\n [HandballGameLogTypes.penalty_goal]: '7м гол',\n [HandballGameLogTypes.save]: 'Сэйв',\n [HandballGameLogTypes.penalty_save]: 'Сэйв 7м',\n [HandballGameLogTypes.foul]: 'Фол',\n [HandballGameLogTypes.yellow_card]: 'Желлтая карточка',\n [HandballGameLogTypes.red_card]: 'Красная карточка',\n [HandballGameLogTypes.two_minute_foul]: '2х минутный штраф',\n [HandballGameLogTypes.turnover]: 'Потеря',\n [HandballGameLogTypes.steal]: 'Перехват',\n [HandballGameLogTypes.block_shot]: 'Блок броска',\n [HandballGameLogTypes.timeout]: 'Таймаут',\n },\n [Locales.en]: {\n [HandballGameLogTypes.enter_game]: 'Entering the court',\n [HandballGameLogTypes.exit_game]: 'Exit the court',\n [HandballGameLogTypes.shot_miss]: 'Missing shot',\n [HandballGameLogTypes.shot_on_goal]: 'Shot on goal',\n [HandballGameLogTypes.shot_blocked]: 'Blocking shot',\n [HandballGameLogTypes.goal]: 'Goal',\n [HandballGameLogTypes.assist]: 'Assist',\n [HandballGameLogTypes.penalty_miss]: 'Penalty miss',\n [HandballGameLogTypes.penalty_shot_on_goal]: 'Penalty on goal',\n [HandballGameLogTypes.penalty_goal]: 'Penalty goal',\n [HandballGameLogTypes.save]: 'Save',\n [HandballGameLogTypes.penalty_save]: 'Penalty save',\n [HandballGameLogTypes.foul]: 'Foul',\n [HandballGameLogTypes.yellow_card]: 'Yellow card',\n [HandballGameLogTypes.red_card]: 'Red card',\n [HandballGameLogTypes.two_minute_foul]: '2-minute penalty',\n [HandballGameLogTypes.turnover]: 'Turnover',\n [HandballGameLogTypes.steal]: 'Steal',\n [HandballGameLogTypes.block_shot]: 'Block shot',\n [HandballGameLogTypes.timeout]: 'Timeout',\n }\n};\n","import { WaterpoloGameLogTypes } from '../models/waterpolo-game-log';\nimport { Locales } from './locales';\n\nexport const WaterpoloGameLogTypeLocalization = {\n [Locales.ru]: {\n [WaterpoloGameLogTypes.enter_game]: 'Выход на площадку',\n [WaterpoloGameLogTypes.exit_game]: 'Ушел с площадки',\n [WaterpoloGameLogTypes.shot_miss]: 'Бросок мимо',\n [WaterpoloGameLogTypes.counterattack_miss]: 'Бросок мимо в контратаке',\n [WaterpoloGameLogTypes.maneuver_miss]: 'Бросок мимо с маневра',\n [WaterpoloGameLogTypes.center_forward_miss]: 'Бросок мимо со столба',\n [WaterpoloGameLogTypes.shot_on_goal]: 'Бросок по воротам',\n [WaterpoloGameLogTypes.counterattack_on_goal]: 'Бросок по воротам в контратаке',\n [WaterpoloGameLogTypes.maneuver_on_goal]: 'Бросок по воротам с маневра',\n [WaterpoloGameLogTypes.center_forward_on_goal]: 'Бросок по воротам со столба',\n [WaterpoloGameLogTypes.shot_blocked]: 'Заблокирован бросок',\n [WaterpoloGameLogTypes.counter_attack_shot_blocked]: 'Заблокирован бросок в контратаке',\n [WaterpoloGameLogTypes.maneuver_shot_blocked]: 'Заблокирован бросок с маневра',\n [WaterpoloGameLogTypes.center_forward_shot_blocked]: 'Заблокирован бросок со столба',\n [WaterpoloGameLogTypes.goal]: 'Гол',\n [WaterpoloGameLogTypes.maneuver_goal]: 'Гол с маневра',\n [WaterpoloGameLogTypes.counterattack_goal]: 'Гол в контратаке',\n [WaterpoloGameLogTypes.center_forward_goal]: 'Гол со столба',\n [WaterpoloGameLogTypes.shootout_attempt]: 'Пенальти промах',\n [WaterpoloGameLogTypes.shootout_goal]: 'Пенальти гол',\n [WaterpoloGameLogTypes.after_game_shootout_attempt]: 'Пенальти промах',\n [WaterpoloGameLogTypes.after_game_shootout_goal]: 'Пенальти гол',\n [WaterpoloGameLogTypes.assist]: 'Голевая передача',\n [WaterpoloGameLogTypes.block_shot]: 'Блокировка броска',\n [WaterpoloGameLogTypes.minor_penalty]: 'Удаление на 20 сек.',\n [WaterpoloGameLogTypes.major_penalty]: 'Удаление + 20 сек. штраф',\n [WaterpoloGameLogTypes.match_penalty]: 'Удаление + 4 мин. штраф',\n [WaterpoloGameLogTypes.foul]: 'Фол',\n [WaterpoloGameLogTypes.penalty_foul]: 'Фол пенальти',\n [WaterpoloGameLogTypes.attack_foul]: 'Фол в нападении',\n [WaterpoloGameLogTypes.personal_foul]: 'Персональный фол',\n [WaterpoloGameLogTypes.penalty_shot]: 'Штрафной бросок',\n [WaterpoloGameLogTypes.face_off_lose]: 'Проигрыш в спринте',\n [WaterpoloGameLogTypes.face_off_win]: 'Победа в спринте',\n [WaterpoloGameLogTypes.save]: 'Отражен бросок',\n [WaterpoloGameLogTypes.counterattack_save]: 'Отражен бросок в контратаке',\n [WaterpoloGameLogTypes.maneuver_save]: 'Отражен бросок с маневра',\n [WaterpoloGameLogTypes.center_forward_save]: 'Отражен бросок со столба',\n [WaterpoloGameLogTypes.free_kick_save]: 'Отражен бросок со свободного',\n [WaterpoloGameLogTypes.corner_save]: 'Отражен бросок с углового',\n [WaterpoloGameLogTypes.shootout_save]: 'Отражен бросок с пенальти',\n [WaterpoloGameLogTypes.after_game_shootout_save]: 'Отражен бросок с пенальти',\n [WaterpoloGameLogTypes.timeout]: 'Таймаут',\n [WaterpoloGameLogTypes.penalty_start]: 'Начало штрафного времени',\n [WaterpoloGameLogTypes.penalty_end]: 'Конец штрафного времени',\n [WaterpoloGameLogTypes.yellow_card]: 'Желтая карточка',\n [WaterpoloGameLogTypes.red_card]: 'Красная карточка',\n [WaterpoloGameLogTypes.turnover]: 'Переход владения',\n [WaterpoloGameLogTypes.loss]: 'Потеря',\n [WaterpoloGameLogTypes.steal]: 'Перехват',\n [WaterpoloGameLogTypes.tackle]: 'Отбор',\n [WaterpoloGameLogTypes.free_kick_goal]: 'Гол со свободного удара',\n [WaterpoloGameLogTypes.free_kick_on_goal]: 'Бросок со свободного удара в створ',\n [WaterpoloGameLogTypes.free_kick_miss]: 'Бросок мимо со свободного удара',\n [WaterpoloGameLogTypes.free_kick_shot_blocked]: 'Заблокирован бросок со свободного удара',\n [WaterpoloGameLogTypes.free_kick_pass]: 'Пас со свободного удара',\n [WaterpoloGameLogTypes.free_kick_self]: 'Розыгрыш свободного удара',\n [WaterpoloGameLogTypes.corner_goal]: 'Гол с углового',\n [WaterpoloGameLogTypes.corner_on_goal]: 'Бросок с углового в створ',\n [WaterpoloGameLogTypes.corner_miss]: 'Бросок мимо с углового',\n [WaterpoloGameLogTypes.corner_shot_blocked]: 'Заблокирован бросок с углового',\n [WaterpoloGameLogTypes.corner_pass]: 'Пас с углового',\n [WaterpoloGameLogTypes.corner_self]: 'Розыгрыш углового',\n [WaterpoloGameLogTypes.complete_penalty_time]: 'Досрочное завершение штрафа',\n\n [WaterpoloGameLogTypes.defense_select_position]: 'Защита: выбор позиции',\n [WaterpoloGameLogTypes.save_possession]: 'Сохранение владения',\n [WaterpoloGameLogTypes.perimetr_shot_goal]: 'Гол с периметра',\n [WaterpoloGameLogTypes.perimetr_shot_on_goal]: 'Бросок с периметра в створ',\n [WaterpoloGameLogTypes.perimetr_shot_miss]: 'Бросок мимо с периметра',\n [WaterpoloGameLogTypes.perimetr_shot_blocked]: 'Заблокирован бросок с периметра',\n [WaterpoloGameLogTypes.perimetr_shot_save]: 'Отражен бросок с периметра',\n [WaterpoloGameLogTypes.post_shot_goal]: 'Гол со штанги',\n [WaterpoloGameLogTypes.post_shot_on_goal]: 'Бросок со штанги в створ',\n [WaterpoloGameLogTypes.post_shot_miss]: 'Бросок мимо со штанги',\n [WaterpoloGameLogTypes.post_shot_blocked]: 'Заблокирован бросок со штанги',\n [WaterpoloGameLogTypes.post_shot_save]: 'Отражен бросок со штанги',\n [WaterpoloGameLogTypes.fast_shot_goal]: 'Быстрый гол',\n [WaterpoloGameLogTypes.fast_shot_on_goal]: 'Быстрый бросок в створ',\n [WaterpoloGameLogTypes.fast_shot_miss]: 'Быстрый бросок мимо',\n [WaterpoloGameLogTypes.fast_shot_blocked]: 'Заблокирован быстрый бросок',\n [WaterpoloGameLogTypes.fast_shot_save]: 'Отражен быстрый бросок',\n },\n [Locales.en]: {\n [WaterpoloGameLogTypes.enter_game]: 'Entering the court',\n [WaterpoloGameLogTypes.exit_game]: 'Exit the court',\n [WaterpoloGameLogTypes.shot_miss]: 'Missing shoot',\n [WaterpoloGameLogTypes.counterattack_miss]: 'Throw past on the counterattack',\n [WaterpoloGameLogTypes.maneuver_miss]: 'Throw past from the manoeuvre',\n [WaterpoloGameLogTypes.center_forward_miss]: 'Throw past from center forward',\n [WaterpoloGameLogTypes.shot_on_goal]: 'Shot at the goal',\n [WaterpoloGameLogTypes.counterattack_on_goal]: 'Shot at the goal in a counterattack',\n [WaterpoloGameLogTypes.maneuver_on_goal]: 'Shot at the goal from a maneuver',\n [WaterpoloGameLogTypes.center_forward_on_goal]: 'Shot at the goal from center forward',\n [WaterpoloGameLogTypes.shot_blocked]: 'The throw is blocked',\n [WaterpoloGameLogTypes.counter_attack_shot_blocked]: 'A counterattack throw is blocked',\n [WaterpoloGameLogTypes.maneuver_shot_blocked]: 'The maneuver throw is blocked',\n [WaterpoloGameLogTypes.center_forward_shot_blocked]: 'The shot from the center forward is blocked',\n [WaterpoloGameLogTypes.goal]: 'Goal',\n [WaterpoloGameLogTypes.maneuver_goal]: 'Goal from a maneuver',\n [WaterpoloGameLogTypes.counterattack_goal]: 'Goal in a counterattack',\n [WaterpoloGameLogTypes.center_forward_goal]: 'Goal from the center forward',\n [WaterpoloGameLogTypes.shootout_attempt]: 'Penalty miss',\n [WaterpoloGameLogTypes.shootout_goal]: 'Penalty goal',\n [WaterpoloGameLogTypes.after_game_shootout_attempt]: 'Penalty miss',\n [WaterpoloGameLogTypes.after_game_shootout_goal]: 'Penalty goal',\n [WaterpoloGameLogTypes.assist]: 'Assist',\n [WaterpoloGameLogTypes.block_shot]: 'Blocking a throw',\n [WaterpoloGameLogTypes.minor_penalty]: 'Exclusion for 20 sec.',\n [WaterpoloGameLogTypes.major_penalty]: 'Exclusion with substitution 20 sec.',\n [WaterpoloGameLogTypes.match_penalty]: 'Exclusion with substitution after 4 min.',\n [WaterpoloGameLogTypes.foul]: 'Foul',\n [WaterpoloGameLogTypes.penalty_foul]: 'Penalty foul',\n [WaterpoloGameLogTypes.attack_foul]: 'Attack foul',\n [WaterpoloGameLogTypes.personal_foul]: 'Personal foul',\n [WaterpoloGameLogTypes.penalty_shot]: 'Penalty shot',\n [WaterpoloGameLogTypes.face_off_lose]: 'Losing in the sprint',\n [WaterpoloGameLogTypes.face_off_win]: 'Winning the sprint',\n [WaterpoloGameLogTypes.save]: 'Throw is reflected',\n [WaterpoloGameLogTypes.counterattack_save]: 'Throw in the counterattack is reflected',\n [WaterpoloGameLogTypes.maneuver_save]: 'Throw from a maneuver is reflected',\n [WaterpoloGameLogTypes.center_forward_save]: 'Throw from the center forward is reflected',\n [WaterpoloGameLogTypes.free_kick_save]: 'Free throw is reflected',\n [WaterpoloGameLogTypes.corner_save]: 'Shot from a corner is reflected',\n [WaterpoloGameLogTypes.shootout_save]: 'Penalty kick was deflected',\n [WaterpoloGameLogTypes.after_game_shootout_save]: 'Penalty kick was deflected',\n [WaterpoloGameLogTypes.timeout]: 'Timeout',\n [WaterpoloGameLogTypes.penalty_start]: 'The beginning of the penalty time',\n [WaterpoloGameLogTypes.penalty_end]: 'End of penalty time',\n [WaterpoloGameLogTypes.yellow_card]: 'Yellow card',\n [WaterpoloGameLogTypes.red_card]: 'Red card',\n [WaterpoloGameLogTypes.turnover]: 'Change of possession',\n [WaterpoloGameLogTypes.loss]: 'Loss',\n [WaterpoloGameLogTypes.steal]: 'Steal',\n [WaterpoloGameLogTypes.tackle]: 'Tackle',\n [WaterpoloGameLogTypes.free_kick_goal]: 'Free kick goal',\n [WaterpoloGameLogTypes.free_kick_on_goal]: 'Free kick shot on target',\n [WaterpoloGameLogTypes.free_kick_miss]: 'A throw by with a free kick',\n [WaterpoloGameLogTypes.free_kick_shot_blocked]: 'A free kick shot is blocked',\n [WaterpoloGameLogTypes.free_kick_pass]: 'Free kick pass',\n [WaterpoloGameLogTypes.free_kick_self]: 'Free kick draw',\n [WaterpoloGameLogTypes.corner_goal]: 'Corner goal',\n [WaterpoloGameLogTypes.corner_on_goal]: 'Shot from a corner into the target',\n [WaterpoloGameLogTypes.corner_miss]: 'Shot past from a corner',\n [WaterpoloGameLogTypes.corner_shot_blocked]: 'Blocked a shot from a corner',\n [WaterpoloGameLogTypes.corner_pass]: 'Pass from the corner',\n [WaterpoloGameLogTypes.corner_self]: 'Drawing a corner',\n [WaterpoloGameLogTypes.complete_penalty_time]: 'Early completion of the fine',\n\n [WaterpoloGameLogTypes.defense_select_position]: 'Defense: position selection',\n [WaterpoloGameLogTypes.save_possession]: 'Maintaining possession',\n [WaterpoloGameLogTypes.perimetr_shot_goal]: 'Goal from the perimeter',\n [WaterpoloGameLogTypes.perimetr_shot_on_goal]: 'Throw from perimeter on target',\n [WaterpoloGameLogTypes.perimetr_shot_miss]: 'Throw past from the perimeter',\n [WaterpoloGameLogTypes.perimetr_shot_blocked]: 'A throw from perimeter is blocked',\n [WaterpoloGameLogTypes.perimetr_shot_save]: 'A throw from perimeter is saved',\n [WaterpoloGameLogTypes.post_shot_goal]: 'Goal from the post',\n [WaterpoloGameLogTypes.post_shot_on_goal]: 'Throw from post on target',\n [WaterpoloGameLogTypes.post_shot_miss]: 'Throw past from the post',\n [WaterpoloGameLogTypes.post_shot_blocked]: 'A throw from post is blocked',\n [WaterpoloGameLogTypes.post_shot_save]: 'A throw from post is saved',\n [WaterpoloGameLogTypes.fast_shot_goal]: 'Fast goal',\n [WaterpoloGameLogTypes.fast_shot_on_goal]: 'Fast throw on target',\n [WaterpoloGameLogTypes.fast_shot_miss]: 'Fast throw is missed',\n [WaterpoloGameLogTypes.fast_shot_blocked]: 'Fast throw is blocked',\n [WaterpoloGameLogTypes.fast_shot_save]: 'Fast throw is saved',\n }\n};\n","import { OvertimeTypes } from '../models/tournament';\nimport { Locales } from './locales';\n\nexport const OvertimeTypeLocalization = {\n [Locales.ru]: {\n [OvertimeTypes.to_score_diff]: 'До разницы в N мячей',\n [OvertimeTypes.to_score_total]: 'До N очков',\n [OvertimeTypes.time]: 'По времени',\n [OvertimeTypes.without_overtime]: 'Без овертайма',\n [OvertimeTypes.to_first_goal]: 'На N минут до первой шайбы',\n [OvertimeTypes.to_first_goal_and_bullitts]: 'На N минут до первой шайбы + буллиты',\n [OvertimeTypes.bullitts]: 'Буллиты',\n [OvertimeTypes.penalties]: 'Пенальти',\n [OvertimeTypes.time_and_penalties]: 'Дополнительное время + пенальти',\n },\n [Locales.en]: {\n [OvertimeTypes.to_score_diff]: 'Up to the difference of N balls',\n [OvertimeTypes.to_score_total]: 'Up to N points',\n [OvertimeTypes.time]: 'By time',\n [OvertimeTypes.without_overtime]: 'Without overtime',\n [OvertimeTypes.to_first_goal]: 'N minutes until the first goal',\n [OvertimeTypes.to_first_goal_and_bullitts]: 'N minutes until the first goal + shootout',\n [OvertimeTypes.bullitts]: 'Shootouts',\n [OvertimeTypes.penalties]: 'Penalty',\n [OvertimeTypes.time_and_penalties]: 'Extra time + penalty',\n }\n};\n","import { RugbyFoulSanctions } from '../models/rugby-foul-type';\nimport { Locales } from './locales';\n\nexport const RugbyFoulSanctionLocalization = {\n [Locales.ru]: {\n [RugbyFoulSanctions.scrum]: 'Схватка',\n [RugbyFoulSanctions.lineout]: 'Коридор',\n [RugbyFoulSanctions.start_kick]: 'Начальный удар',\n [RugbyFoulSanctions.free_kick]: 'Свободный удар',\n [RugbyFoulSanctions.penalty_shot]: 'Штрафной удар',\n [RugbyFoulSanctions.twenty_two_meters_kick]: 'Удар с 22 метров',\n [RugbyFoulSanctions.conversion_cancel]: 'Отмена удара',\n [RugbyFoulSanctions.yellow_card]: 'Желтая карточка',\n [RugbyFoulSanctions.red_card]: 'Красная карточка',\n },\n [Locales.en]: {\n [RugbyFoulSanctions.scrum]: 'Scrum',\n [RugbyFoulSanctions.lineout]: 'Lineout',\n [RugbyFoulSanctions.start_kick]: 'Start kick',\n [RugbyFoulSanctions.free_kick]: 'Free kick',\n [RugbyFoulSanctions.penalty_shot]: 'Penalty kick',\n [RugbyFoulSanctions.twenty_two_meters_kick]: 'Kick from 22 meters',\n [RugbyFoulSanctions.conversion_cancel]: 'Conversion cancel',\n [RugbyFoulSanctions.yellow_card]: 'Yellow card',\n [RugbyFoulSanctions.red_card]: 'Red card',\n }\n};\n","import { RugbyFoulGameStage } from '../models/rugby-foul-type';\nimport { Locales } from './locales';\n\nexport const RugbyFoulGameStageLocalization = {\n [Locales.ru]: {\n [RugbyFoulGameStage.start_kick]: 'Начальные удары',\n [RugbyFoulGameStage.open_game]: 'Открытая игра',\n [RugbyFoulGameStage.tackle]: 'Игроки на земле, Захват',\n [RugbyFoulGameStage.ruck_or_maul]: 'Рак, мол',\n [RugbyFoulGameStage.scrum]: 'Схватка',\n [RugbyFoulGameStage.out_and_lineout]: 'Аут и коридор',\n [RugbyFoulGameStage.scoring_field]: 'Зачетное поле',\n [RugbyFoulGameStage.kick_on_goal]: 'Удар по воротам',\n [RugbyFoulGameStage.free_kick]: 'Штрафной, свободный удар',\n [RugbyFoulGameStage.team]: 'Команда',\n },\n [Locales.en]: {\n [RugbyFoulGameStage.start_kick]: 'Initial kicks',\n [RugbyFoulGameStage.open_game]: 'Open game',\n [RugbyFoulGameStage.tackle]: 'Players on the ground, Capture',\n [RugbyFoulGameStage.ruck_or_maul]: 'Ruck, maul',\n [RugbyFoulGameStage.scrum]: 'Scrum',\n [RugbyFoulGameStage.out_and_lineout]: 'Out and lineout',\n [RugbyFoulGameStage.scoring_field]: 'Scoring field',\n [RugbyFoulGameStage.kick_on_goal]: 'Kick on goal',\n [RugbyFoulGameStage.free_kick]: 'Free kick',\n [RugbyFoulGameStage.team]: 'Team',\n }\n};\n","import { RugbyGameLogTypes } from '../models/rugby-game-log';\nimport { Locales } from './locales';\n\nexport const RugbyGameLogTypeLocalization = {\n [Locales.ru]: {\n [RugbyGameLogTypes.enter_game]: 'Вышел на поле',\n [RugbyGameLogTypes.exit_game]: 'Ушел с поля',\n [RugbyGameLogTypes.try]: 'Попытка',\n [RugbyGameLogTypes.penalty_try]: 'Штрафная попытка',\n [RugbyGameLogTypes.conversion_goal]: 'Реализация',\n [RugbyGameLogTypes.conversion_miss]: 'Реализация промах',\n [RugbyGameLogTypes.penalty_miss]: 'Штрафной промах',\n [RugbyGameLogTypes.penalty_goal]: 'Штрафной гол',\n [RugbyGameLogTypes.penalty_kick_to_touch]: 'Штрафной в аут',\n [RugbyGameLogTypes.tap_penalty]: 'Штрафной разыгран',\n [RugbyGameLogTypes.drop_goal]: 'Дроп-гол',\n [RugbyGameLogTypes.drop_goal_miss]: 'Дроп-гол промах',\n [RugbyGameLogTypes.free_kick]: 'Свободный удар',\n [RugbyGameLogTypes.foul]: 'Фол',\n [RugbyGameLogTypes.yellow_card]: 'Желтая карточка',\n [RugbyGameLogTypes.red_card]: 'Красная карточка',\n [RugbyGameLogTypes.red_card_20]: 'Красная карточка (20 мин.)',\n [RugbyGameLogTypes.offload]: 'Скидка при завхвате',\n [RugbyGameLogTypes.tackle]: 'Успешный захват',\n [RugbyGameLogTypes.handling_error]: 'Ошибка приема',\n [RugbyGameLogTypes.carries_over_gainline]: 'Прорыв линии',\n [RugbyGameLogTypes.bleeding_injury]: 'Кровоточащая травма',\n [RugbyGameLogTypes.head_injury]: 'Травма головы',\n [RugbyGameLogTypes.end_game_penalty_miss]: 'Штрафной промах',\n [RugbyGameLogTypes.end_game_penalty_goal]: 'Штрафной гол',\n [RugbyGameLogTypes.foot_field_shot]: 'Удар ногой в поле',\n [RugbyGameLogTypes.foot_out_shot]: 'Удар ногой в аут',\n [RugbyGameLogTypes.foot_kick_50_22]: 'Удар ногой 50/22',\n [RugbyGameLogTypes.run]: 'Забег',\n [RugbyGameLogTypes.timeout]: 'Таймаут',\n [RugbyGameLogTypes.scrum_won]: 'Схватка выиграна',\n [RugbyGameLogTypes.scrum_lost]: 'Схватка проиграна',\n [RugbyGameLogTypes.scrum_won_free]: 'Схватка выиграна без сопротивления',\n [RugbyGameLogTypes.lineout_won]: 'Коридор выигран',\n [RugbyGameLogTypes.lineout_lost]: 'Коридор проигран',\n [RugbyGameLogTypes.quick_throw]: 'Быстрый вброс',\n [RugbyGameLogTypes.ruck_won]: 'Рак выигран',\n [RugbyGameLogTypes.ruck_lost]: 'Рак проигран',\n [RugbyGameLogTypes.maul_won]: 'Мол выигран',\n [RugbyGameLogTypes.maul_lost]: 'Мол проигран',\n [RugbyGameLogTypes.team_foul]: 'Нарушение',\n [RugbyGameLogTypes.start_kick]: 'Начальный удар',\n [RugbyGameLogTypes.twenty_two_meters_kick]: 'Удар с 22 метров',\n [RugbyGameLogTypes.goal_kick]: 'Удар от ворот',\n [RugbyGameLogTypes.out]: 'Аут',\n },\n [Locales.en]: {\n [RugbyGameLogTypes.enter_game]: 'Entering the court',\n [RugbyGameLogTypes.exit_game]: 'Exit the court',\n [RugbyGameLogTypes.try]: 'Attempt',\n [RugbyGameLogTypes.penalty_try]: 'Penalty attempt',\n [RugbyGameLogTypes.conversion_goal]: 'Touchdown',\n [RugbyGameLogTypes.conversion_miss]: 'Touchdown miss',\n [RugbyGameLogTypes.penalty_miss]: 'Penalty kick miss',\n [RugbyGameLogTypes.penalty_goal]: 'Penalty goal',\n [RugbyGameLogTypes.penalty_kick_to_touch]: 'Penalty kick to out',\n [RugbyGameLogTypes.tap_penalty]: 'Penalty has been played',\n [RugbyGameLogTypes.drop_goal]: 'Drop goal',\n [RugbyGameLogTypes.drop_goal_miss]: 'Drop goal miss',\n [RugbyGameLogTypes.free_kick]: 'Free kick',\n [RugbyGameLogTypes.foul]: 'Foul',\n [RugbyGameLogTypes.yellow_card]: 'Yellow card',\n [RugbyGameLogTypes.red_card]: 'Red card',\n [RugbyGameLogTypes.red_card_20]: 'Red card (20 min.)',\n [RugbyGameLogTypes.offload]: 'Offload',\n [RugbyGameLogTypes.tackle]: 'Successful tackle',\n [RugbyGameLogTypes.handling_error]: 'Error receiving',\n [RugbyGameLogTypes.carries_over_gainline]: 'Line breakout',\n [RugbyGameLogTypes.bleeding_injury]: 'Bleeding injury',\n [RugbyGameLogTypes.head_injury]: 'Head injury',\n [RugbyGameLogTypes.end_game_penalty_miss]: 'Penalty miss',\n [RugbyGameLogTypes.end_game_penalty_goal]: 'Penalty goal',\n [RugbyGameLogTypes.foot_field_shot]: 'Foot field shot',\n [RugbyGameLogTypes.foot_out_shot]: 'Kick out of bounds',\n [RugbyGameLogTypes.foot_kick_50_22]: 'Foot kick 50/22',\n [RugbyGameLogTypes.run]: 'Run',\n [RugbyGameLogTypes.timeout]: 'Timeout',\n [RugbyGameLogTypes.scrum_won]: 'Scrum is won',\n [RugbyGameLogTypes.scrum_lost]: 'Scrum is lost',\n [RugbyGameLogTypes.scrum_won_free]: 'Scrum was won without resistance',\n [RugbyGameLogTypes.lineout_won]: 'Lineout was won',\n [RugbyGameLogTypes.lineout_lost]: 'Lineout was lost',\n [RugbyGameLogTypes.quick_throw]: 'Quick throw',\n [RugbyGameLogTypes.ruck_won]: 'Ruck won',\n [RugbyGameLogTypes.ruck_lost]: 'Ruck lost',\n [RugbyGameLogTypes.maul_won]: 'Maul won',\n [RugbyGameLogTypes.maul_lost]: 'Maul lost',\n [RugbyGameLogTypes.team_foul]: 'Foul',\n [RugbyGameLogTypes.start_kick]: 'Start kick',\n [RugbyGameLogTypes.twenty_two_meters_kick]: '22 metres kick',\n [RugbyGameLogTypes.goal_kick]: 'Удар от ворот',\n [RugbyGameLogTypes.out]: 'Out',\n }\n};\n","import { TeamUserRole } from '../models/team-user';\nimport { Locales } from './locales';\n\nexport const TeamUserRoleLocalization = {\n [Locales.ru]: {\n [TeamUserRole.member]: 'Игрок',\n [TeamUserRole.moderator]: 'Игрок',\n [TeamUserRole.admin]: 'Владелец',\n [TeamUserRole.coach]: 'Тренер',\n [TeamUserRole.head_coach]: 'Главный тренер',\n [TeamUserRole.playing_coach]: 'Играющий тренер',\n [TeamUserRole.manager]: 'Менеджер',\n [TeamUserRole.head_manager]: 'Генеральный менеджер',\n [TeamUserRole.captain]: 'Капитан',\n [TeamUserRole.assistant]: 'Ассистент',\n [TeamUserRole.president]: 'Президент',\n [TeamUserRole.vice_president]: 'Вице-президент',\n [TeamUserRole.press_attache]: 'Пресс-атташе',\n [TeamUserRole.executive]: 'Администратор',\n [TeamUserRole.senior_coach]: 'Старший тренер',\n [TeamUserRole.assistant_coach]: 'Помощник тренера',\n [TeamUserRole.serviceman]: 'Сервисмен',\n [TeamUserRole.game_application_manager]: 'Менеджер по заявкам на игры',\n },\n [Locales.en]: {\n [TeamUserRole.moderator]: 'Player',\n [TeamUserRole.member]: 'Player',\n [TeamUserRole.admin]: 'Owner',\n [TeamUserRole.coach]: 'Coach',\n [TeamUserRole.head_coach]: 'Head coach',\n [TeamUserRole.playing_coach]: 'Playing coach',\n [TeamUserRole.manager]: 'Manager',\n [TeamUserRole.head_manager]: 'General Manager',\n [TeamUserRole.captain]: 'Captain',\n [TeamUserRole.assistant]: 'Assistant',\n [TeamUserRole.president]: 'President',\n [TeamUserRole.vice_president]: 'Vice President',\n [TeamUserRole.press_attache]: 'Press Attache',\n [TeamUserRole.executive]: 'Administrator',\n [TeamUserRole.senior_coach]: 'Senior Coach',\n [TeamUserRole.assistant_coach]: 'Assistant Coach',\n [TeamUserRole.serviceman]: 'Serviceman',\n [TeamUserRole.game_application_manager]: 'Game Application Manager',\n }\n};\n","import { GameBasketballPosition, WorkHand } from '../models/basketball-profile';\nimport { GameVolleyballPosition, VolleyballWorkHand } from '../models/volleyball-profile';\nimport { GameHockeyPosition } from '../models/hockey-profile';\nimport { FootballWorkFoot, GameFootballPosition } from '../models/football-profile';\nimport { GameHandballPosition } from '../models/handball-profile';\nimport { GameRugbyPosition } from '../models/rugby-profile';\nimport { GameWaterpoloPosition, WaterpoloWorkHand } from '../models/waterpolo-profile';\nimport { Locales } from './locales';\nimport { WrestballWorkHand } from '../models/wrestball-profile';\n\nexport const GameBasketballPositionLocalization = {\n [Locales.ru]: {\n [GameBasketballPosition.point_guard]: 'Разыгрывающий защитник',\n [GameBasketballPosition.shooting_guard]: 'Атакующий защитник',\n [GameBasketballPosition.small_forward]: 'Легкий форвард',\n [GameBasketballPosition.power_forward]: 'Мощный форвард',\n [GameBasketballPosition.center]: 'Центровой',\n },\n [Locales.en]: {\n [GameBasketballPosition.point_guard]: 'Point guard',\n [GameBasketballPosition.shooting_guard]: 'Shooting guard',\n [GameBasketballPosition.small_forward]: 'Small forward',\n [GameBasketballPosition.power_forward]: 'Power forward',\n [GameBasketballPosition.center]: 'Center',\n }\n};\n\nexport const GameBasketballPositionShortLocalization = {\n [Locales.ru]: {\n [GameBasketballPosition.point_guard]: 'PG',\n [GameBasketballPosition.shooting_guard]: 'SG',\n [GameBasketballPosition.small_forward]: 'SF',\n [GameBasketballPosition.power_forward]: 'PF',\n [GameBasketballPosition.center]: 'C',\n },\n [Locales.en]: {\n [GameBasketballPosition.point_guard]: 'PG',\n [GameBasketballPosition.shooting_guard]: 'SG',\n [GameBasketballPosition.small_forward]: 'SF',\n [GameBasketballPosition.power_forward]: 'PF',\n [GameBasketballPosition.center]: 'C',\n }\n};\n\nexport const WorkHandLocalization = {\n [Locales.ru]: {\n [WorkHand.left]: 'Левая',\n [WorkHand.right]: 'Правая',\n },\n [Locales.en]: {\n [WorkHand.left]: 'Left',\n [WorkHand.right]: 'Right',\n }\n};\n\nexport const HockeyWorkHandLocalization = {\n [Locales.ru]: {\n [WorkHand.left]: 'Левый',\n [WorkHand.right]: 'Правый'\n },\n [Locales.en]: {\n [WorkHand.left]: 'Left',\n [WorkHand.right]: 'Right',\n }\n};\n\nexport const GameVolleyballPositionLocalization = {\n [Locales.ru]: {\n [GameVolleyballPosition.setter]: 'Связующий',\n [GameVolleyballPosition.libero]: 'Либеро',\n [GameVolleyballPosition.middle_player]: 'Центральный блокирующий',\n [GameVolleyballPosition.receiver_attacker]: 'Доигровщик',\n [GameVolleyballPosition.dioganal]: 'Диагональный',\n },\n [Locales.en]: {\n [GameVolleyballPosition.setter]: 'Setter',\n [GameVolleyballPosition.libero]: 'Libero',\n [GameVolleyballPosition.middle_player]: 'Middle blocker',\n [GameVolleyballPosition.receiver_attacker]: 'Outside hitter',\n [GameVolleyballPosition.dioganal]: 'Diagonal',\n }\n};\n\nexport const GameVolleyballPositionShortLocalization = {\n [Locales.ru]: {\n [GameVolleyballPosition.setter]: 'S',\n [GameVolleyballPosition.libero]: 'L',\n [GameVolleyballPosition.middle_player]: 'MP',\n [GameVolleyballPosition.receiver_attacker]: 'RA',\n [GameVolleyballPosition.dioganal]: 'D',\n },\n [Locales.en]: {\n [GameVolleyballPosition.setter]: 'S',\n [GameVolleyballPosition.libero]: 'L',\n [GameVolleyballPosition.middle_player]: 'MP',\n [GameVolleyballPosition.receiver_attacker]: 'RA',\n [GameVolleyballPosition.dioganal]: 'D',\n }\n};\n\nexport const GameVolleyballPositionShortRuLocalization = {\n [Locales.ru]: {\n [GameVolleyballPosition.setter]: 'связ.',\n [GameVolleyballPosition.libero]: 'либеро',\n [GameVolleyballPosition.middle_player]: 'блок.',\n [GameVolleyballPosition.receiver_attacker]: 'доигр.',\n [GameVolleyballPosition.dioganal]: 'диаг.',\n },\n [Locales.en]: {\n [GameVolleyballPosition.setter]: 'Setter',\n [GameVolleyballPosition.libero]: 'Libero',\n [GameVolleyballPosition.middle_player]: 'Middle blocker',\n [GameVolleyballPosition.receiver_attacker]: 'Outside hitter',\n [GameVolleyballPosition.dioganal]: 'Diagonal',\n }\n};\n\nexport const VolleyballWorkHandLocalization = {\n [Locales.ru]: {\n [VolleyballWorkHand.left]: 'Левая',\n [VolleyballWorkHand.right]: 'Правая'\n },\n [Locales.en]: {\n [WorkHand.left]: 'Left',\n [WorkHand.right]: 'Right',\n }\n};\n\nexport const GameHockeyPositionLocalization = {\n [Locales.ru]: {\n [GameHockeyPosition.goaltender]: 'Вратарь',\n [GameHockeyPosition.defensemen]: 'Защитник',\n [GameHockeyPosition.forward]: 'Нападающий',\n },\n [Locales.en]: {\n [GameHockeyPosition.defensemen]: 'Defender',\n [GameHockeyPosition.forward]: 'Forward',\n [GameHockeyPosition.goaltender]: 'Goalkeeper',\n }\n};\n\nexport const GameFootballPositionLocalization = {\n [Locales.ru]: {\n [GameFootballPosition.goalkeeper]: 'Вратарь',\n [GameFootballPosition.defensemen]: 'Защитник',\n [GameFootballPosition.midfielder]: 'Полузащитник',\n [GameFootballPosition.forward]: 'Нападающий',\n },\n [Locales.en]: {\n [GameFootballPosition.defensemen]: 'Defender',\n [GameFootballPosition.midfielder]: 'Midfielder',\n [GameFootballPosition.forward]: 'Forward',\n [GameFootballPosition.goalkeeper]: 'Goalkeeper',\n }\n};\n\nexport const FootballWorkFootLocalization = {\n [Locales.ru]: {\n [FootballWorkFoot.left]: 'Левая',\n [FootballWorkFoot.right]: 'Правая',\n [FootballWorkFoot.both]: 'Обе'\n },\n [Locales.en]: {\n [FootballWorkFoot.left]: 'Left',\n [FootballWorkFoot.right]: 'Right',\n [FootballWorkFoot.both]: 'Both',\n }\n};\n\nexport const GameHandballPositionLocalization = {\n [Locales.ru]: {\n [GameHandballPosition.goalkeeper]: 'Вратарь',\n [GameHandballPosition.winger]: 'Крайний',\n [GameHandballPosition.pivot]: 'Линейный',\n [GameHandballPosition.centre_back]: 'Центральный',\n [GameHandballPosition.fullback]: 'Полусредний',\n },\n [Locales.en]: {\n [GameHandballPosition.goalkeeper]: 'Goalkeeper',\n [GameHandballPosition.winger]: 'Wing',\n [GameHandballPosition.pivot]: 'Pivot',\n [GameHandballPosition.centre_back]: 'Centre back',\n [GameHandballPosition.fullback]: 'Back',\n }\n};\n\nexport const GameRugbyPositionLocalization = {\n [Locales.ru]: {\n [GameRugbyPosition.front_line]: 'Надающий первой линии',\n [GameRugbyPosition.second_line]: 'Нападающий второй линии',\n [GameRugbyPosition.back_line]: 'Нападающий задней линии',\n [GameRugbyPosition.halfback]: 'Полузащитник',\n [GameRugbyPosition.three_quarter]: 'Трехчетвертный',\n [GameRugbyPosition.fullback]: 'Замыкающий',\n },\n [Locales.en]: {\n [GameRugbyPosition.front_line]: 'The forward of the first line',\n [GameRugbyPosition.second_line]: 'The forward of the second line',\n [GameRugbyPosition.back_line]: 'The forward of the back line',\n [GameRugbyPosition.halfback]: 'Halfback',\n [GameRugbyPosition.three_quarter]: 'Three quarter',\n [GameRugbyPosition.fullback]: 'Fullback',\n }\n};\n\nexport const GameWaterpoloPositionLocalization = {\n [Locales.ru]: {\n [GameWaterpoloPosition.defensemen]: 'Защитник',\n [GameWaterpoloPosition.goalkeeper]: 'Вратарь',\n [GameWaterpoloPosition.center_forward]: 'Центральный нападающий',\n [GameWaterpoloPosition.mobile_forward]: 'Подвижный нападающий',\n [GameWaterpoloPosition.winger]: 'Крайний нападающий',\n },\n [Locales.en]: {\n [GameWaterpoloPosition.defensemen]: 'Defender',\n [GameWaterpoloPosition.goalkeeper]: 'Goalkeeper',\n [GameWaterpoloPosition.center_forward]: 'Center forward',\n [GameWaterpoloPosition.mobile_forward]: 'Mobile forward',\n [GameWaterpoloPosition.winger]: 'Winger',\n }\n};\n\nexport const GameWaterpoloPositionShortRuLocalization = {\n [Locales.ru]: {\n [GameWaterpoloPosition.defensemen]: 'З',\n [GameWaterpoloPosition.goalkeeper]: 'Вр',\n [GameWaterpoloPosition.center_forward]: 'ЦН',\n [GameWaterpoloPosition.mobile_forward]: 'ПН',\n [GameWaterpoloPosition.winger]: 'КН',\n },\n [Locales.en]: {\n [GameWaterpoloPosition.defensemen]: 'D',\n [GameWaterpoloPosition.goalkeeper]: 'G',\n [GameWaterpoloPosition.center_forward]: 'CF',\n [GameWaterpoloPosition.mobile_forward]: 'MF',\n [GameWaterpoloPosition.winger]: 'W',\n }\n};\n\nexport const WaterpoloWorkHandLocalization = {\n [Locales.ru]: {\n [WaterpoloWorkHand.left]: 'Левая',\n [WaterpoloWorkHand.right]: 'Правая',\n },\n [Locales.en]: {\n [WaterpoloWorkHand.left]: 'Left',\n [WaterpoloWorkHand.right]: 'Right'\n }\n};\nexport const WrestballWorkHandLocalization = {\n [Locales.ru]: {\n [WrestballWorkHand.left]: 'Левая',\n [WrestballWorkHand.right]: 'Правая'\n },\n [Locales.en]: {\n [WrestballWorkHand.left]: 'Left',\n [WrestballWorkHand.right]: 'Right'\n }\n};\n\n","import { VolleyballGameLogType } from '../models/volleyball-game-log';\nimport { Locales } from './locales';\n\nexport const VolleyballGameLogTypeLocalization = {\n [Locales.ru]: {\n [VolleyballGameLogType.enter_game]: 'Выход на площадку',\n [VolleyballGameLogType.exit_game]: 'Уход с площадки',\n [VolleyballGameLogType.remove_game]: 'Удаление с площадки',\n [VolleyballGameLogType.serve_ace]: 'Эйс',\n [VolleyballGameLogType.serve_hit]: 'Подача',\n [VolleyballGameLogType.serve_fault]: 'Ошибка на подаче',\n [VolleyballGameLogType.good_serve]: 'Усложнённая подача',\n [VolleyballGameLogType.attack_spike]: 'Результативная атака',\n [VolleyballGameLogType.attack_shot]: 'Атака',\n [VolleyballGameLogType.attack_fault]: 'Ошибка атаки',\n [VolleyballGameLogType.stuff_block]: 'Результативный блок',\n [VolleyballGameLogType.block_rebound]: 'Блок',\n [VolleyballGameLogType.block_fault]: 'Ошибка на блоке',\n [VolleyballGameLogType.excellent_receive]: 'Отличный прием',\n [VolleyballGameLogType.receive]: 'Прием',\n [VolleyballGameLogType.receive_fault]: 'Ошибка на приеме',\n [VolleyballGameLogType.serve_receive]: 'Прием подачи',\n [VolleyballGameLogType.excellent_serve_receive]: 'Отличный прием подачи',\n [VolleyballGameLogType.serve_receive_fault]: 'Ошибка приема подачи',\n [VolleyballGameLogType.point]: 'Очко',\n [VolleyballGameLogType.fault]: 'Ошибка',\n [VolleyballGameLogType.timeout]: 'Таймаут',\n [VolleyballGameLogType.yellow_card]: 'Замечание: желтая карточка',\n [VolleyballGameLogType.tie_ball]: 'Спорный мяч',\n },\n [Locales.en]: {\n [VolleyballGameLogType.enter_game]: 'Entering the court',\n [VolleyballGameLogType.exit_game]: 'Exit the court',\n [VolleyballGameLogType.remove_game]: 'Removed from the court',\n [VolleyballGameLogType.serve_ace]: 'Ace',\n [VolleyballGameLogType.serve_hit]: 'Serve',\n [VolleyballGameLogType.serve_fault]: 'Mistake on a serve',\n [VolleyballGameLogType.good_serve]: 'Good serve',\n [VolleyballGameLogType.attack_spike]: 'Resulting attack',\n [VolleyballGameLogType.attack_shot]: 'Attack',\n [VolleyballGameLogType.attack_fault]: 'Attack fault',\n [VolleyballGameLogType.stuff_block]: 'Resulting block',\n [VolleyballGameLogType.block_rebound]: 'Block',\n [VolleyballGameLogType.block_fault]: 'Block fault',\n [VolleyballGameLogType.excellent_receive]: 'Excellent receive',\n [VolleyballGameLogType.receive]: 'Receive',\n [VolleyballGameLogType.receive_fault]: 'Receive fault',\n [VolleyballGameLogType.serve_receive]: 'Serve receive',\n [VolleyballGameLogType.excellent_serve_receive]: 'Excellent serve receive',\n [VolleyballGameLogType.serve_receive_fault]: 'Serve receive fault',\n [VolleyballGameLogType.point]: 'Point',\n [VolleyballGameLogType.fault]: 'Fault',\n [VolleyballGameLogType.timeout]: 'Timeout',\n [VolleyballGameLogType.yellow_card]: 'Yellow card',\n [VolleyballGameLogType.tie_ball]: 'Tie ball',\n }\n};\n","import { OrganizationStatuses } from '../models/organization';\nimport { Locales } from './locales';\n\nexport const OrganizationStatusesLocalization = {\n [Locales.ru]: {\n [OrganizationStatuses.active]: 'Активен',\n [OrganizationStatuses.blocked]: 'Заблокирован',\n [OrganizationStatuses.not_confirmed]: 'Не подтвержден'\n },\n [Locales.en]: {\n [OrganizationStatuses.active]: 'Active',\n [OrganizationStatuses.blocked]: 'Blocked',\n [OrganizationStatuses.not_confirmed]: 'Not confirmed',\n }\n};\n","import { WrestballGameLogTypes } from '../models/wrestball-game-log';\nimport { Locales } from './locales';\n\nexport const WrestballGameLogTypeLocalization = {\n [Locales.ru]: {\n [WrestballGameLogTypes.enter_game]: 'Выход на площадку',\n [WrestballGameLogTypes.exit_game]: 'Ушел с площадки',\n [WrestballGameLogTypes.remove_game]: 'Удаление с площадки',\n [WrestballGameLogTypes.two_point_attempt]: 'Бросок 2 очка',\n [WrestballGameLogTypes.three_point_attempt]: 'Бросок 3 очка',\n [WrestballGameLogTypes.free_throw_attempt]: 'Штрафной бросок 1 очко',\n [WrestballGameLogTypes.two_point_free_throw_attempt]: 'Штрафной бросок 2 очка',\n [WrestballGameLogTypes.three_point_free_throw_attempt]: 'Штрафной бросок 3 очка',\n [WrestballGameLogTypes.one_point_attempt]: 'Бросок 1 очко',\n [WrestballGameLogTypes.two_point_made]: '2 очка',\n [WrestballGameLogTypes.three_point_made]: '3 очка',\n [WrestballGameLogTypes.free_throw_made]: '1 очко, штрафной',\n [WrestballGameLogTypes.two_point_free_throw_made]: '2 очка, штрафной',\n [WrestballGameLogTypes.three_point_free_throw_made]: '3 очка, штрафной',\n [WrestballGameLogTypes.one_point_made]: '1 очко',\n [WrestballGameLogTypes.dunk_made]: '2 очка, данк',\n [WrestballGameLogTypes.dunk_attempt]: 'Попытка данка',\n [WrestballGameLogTypes.assist]: 'Передача',\n [WrestballGameLogTypes.block]: 'Блокшот',\n [WrestballGameLogTypes.rebound]: 'Подбор',\n [WrestballGameLogTypes.offensive_rebound]: 'Подбор в нападении',\n [WrestballGameLogTypes.defensive_rebound]: 'Подбор в защите',\n [WrestballGameLogTypes.steal]: 'Перехват',\n [WrestballGameLogTypes.turnover]: 'Потеря',\n [WrestballGameLogTypes.personal_foul]: 'Фол',\n [WrestballGameLogTypes.timeout]: 'Таймаут',\n [WrestballGameLogTypes.team_rebound]: 'Командный подбор',\n [WrestballGameLogTypes.scrum]: 'Схватка',\n [WrestballGameLogTypes.scrum_won]: 'Схватка выиграна',\n [WrestballGameLogTypes.scrum_lost]: 'Схватка проиграна',\n [WrestballGameLogTypes.scrum_tie]: 'Схватка в ничью',\n [WrestballGameLogTypes.wrestler_scrum]: 'Атака рестлера',\n [WrestballGameLogTypes.wrestler_scrum_won]: 'Атака рестлера успешна',\n [WrestballGameLogTypes.wrestler_scrum_lost]: 'Атака рестлера неудачна',\n [WrestballGameLogTypes.wrestler_scrum_tie]: 'Атака рестлера в ничью',\n [WrestballGameLogTypes.wrestler_scrum_counterattack]: 'Контратака на рестлере',\n [WrestballGameLogTypes.scrum_ball_advantage_won]: 'Схватка за начало выиграна',\n [WrestballGameLogTypes.scrum_ball_advantage_lost]: 'Схватка за начало проиграна',\n [WrestballGameLogTypes.scrum_ball_advantage_tie]: 'Схватка за начало в ничью',\n [WrestballGameLogTypes.yellow_card]: 'Желтая карточка',\n [WrestballGameLogTypes.red_card]: 'Красная карточка',\n },\n [Locales.en]: {\n [WrestballGameLogTypes.enter_game]: 'Entering the court',\n [WrestballGameLogTypes.exit_game]: 'Exit the court',\n [WrestballGameLogTypes.remove_game]: 'Removal from the court',\n [WrestballGameLogTypes.two_point_attempt]: 'Throw 2 points',\n [WrestballGameLogTypes.three_point_attempt]: 'Throw 3 points',\n [WrestballGameLogTypes.free_throw_attempt]: 'Free throw 1 point',\n [WrestballGameLogTypes.two_point_free_throw_attempt]: 'Free throw 2 points',\n [WrestballGameLogTypes.three_point_free_throw_attempt]: 'Free throw 3 points',\n [WrestballGameLogTypes.one_point_attempt]: 'Throw 1 point',\n [WrestballGameLogTypes.two_point_made]: '2 points',\n [WrestballGameLogTypes.three_point_made]: '3 points',\n [WrestballGameLogTypes.free_throw_made]: '1 point, free throw',\n [WrestballGameLogTypes.two_point_free_throw_made]: '2 points, free throw',\n [WrestballGameLogTypes.three_point_free_throw_made]: '3 points, free throw',\n [WrestballGameLogTypes.one_point_made]: '1 point',\n [WrestballGameLogTypes.dunk_made]: '2 points, dunk',\n [WrestballGameLogTypes.dunk_attempt]: 'Dunk attempt',\n [WrestballGameLogTypes.assist]: 'Assist',\n [WrestballGameLogTypes.block]: 'Block',\n [WrestballGameLogTypes.rebound]: 'Rebound',\n [WrestballGameLogTypes.offensive_rebound]: 'Offensive rebound',\n [WrestballGameLogTypes.defensive_rebound]: 'Defensive rebound',\n [WrestballGameLogTypes.steal]: 'Steal',\n [WrestballGameLogTypes.turnover]: 'Turnover',\n [WrestballGameLogTypes.personal_foul]: 'Personal foul',\n [WrestballGameLogTypes.timeout]: 'Timeout',\n [WrestballGameLogTypes.team_rebound]: 'Team rebound',\n [WrestballGameLogTypes.scrum]: 'Scrum',\n [WrestballGameLogTypes.scrum_won]: 'Scrum is won',\n [WrestballGameLogTypes.scrum_lost]: 'Scrum is lost',\n [WrestballGameLogTypes.scrum_tie]: 'Scrum is in a draw',\n [WrestballGameLogTypes.wrestler_scrum]: 'Wrestler attack',\n [WrestballGameLogTypes.wrestler_scrum_won]: 'Successful Wrestler attack',\n [WrestballGameLogTypes.wrestler_scrum_lost]: 'Unsuccessful Wrestler attack',\n [WrestballGameLogTypes.wrestler_scrum_tie]: 'Wrestler\\'s attack in a draw',\n [WrestballGameLogTypes.wrestler_scrum_counterattack]: 'Counterattack on the wrestler',\n [WrestballGameLogTypes.scrum_ball_advantage_won]: 'Scrum for the beginning is won',\n [WrestballGameLogTypes.scrum_ball_advantage_lost]: 'Scrum for the beginning is lost',\n [WrestballGameLogTypes.scrum_ball_advantage_tie]: 'Scrum for the beginning is in draw',\n [WrestballGameLogTypes.yellow_card]: 'Yellow card',\n [WrestballGameLogTypes.red_card]: 'Red card',\n }\n};\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\nimport { Organization } from './organization';\nimport { Locales } from '../localization/locales';\n\n\nexport enum OrganizationBillStatuses {\n pending = 1,\n paid,\n canceled,\n}\n\nexport const OrganizationBillStatusLocalization = {\n [Locales.ru]: {\n [OrganizationBillStatuses.pending]: 'Новый',\n [OrganizationBillStatuses.paid]: 'Оплачен',\n [OrganizationBillStatuses.canceled]: 'Отменен',\n },\n [Locales.en]: {\n [OrganizationBillStatuses.pending]: 'New',\n [OrganizationBillStatuses.paid]: 'Paid',\n [OrganizationBillStatuses.canceled]: 'Canceled',\n }\n};\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n organization: 'organization',\n status: 'status',\n sum: 'sum',\n payment_date: 'paymentDate',\n pay_till_date: 'payTillDate',\n date_from: 'dateFrom',\n date_to: 'dateTo',\n created_at: 'createdAt',\n },\n relation: {\n organization: Organization,\n status: enumField(OrganizationBillStatuses),\n paymentDate: DateTimeField,\n payTillDate: DateTimeField,\n dateFrom: DateTimeField,\n dateTo: DateTimeField,\n createdAt: DateTimeField,\n }\n})\nexport class OrganizationBill extends BaseModel {\n id: number;\n organization: Organization;\n status: OrganizationBillStatuses;\n sum: number;\n paymentDate: Date;\n payTillDate: Date;\n dateFrom: Date;\n dateTo: Date;\n createdAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\nimport { Game } from './game';\nimport { OrganizationBill } from './organization-bill';\nimport { Locales } from '../localization/locales';\n\n\nexport enum GameBillStatuses {\n pending = 1,\n paid,\n canceled,\n}\n\nexport const GameBillStatusLocalization = {\n [Locales.ru]: {\n [GameBillStatuses.pending]: 'Новый',\n [GameBillStatuses.paid]: 'Оплачен',\n [GameBillStatuses.canceled]: 'Отменен',\n },\n [Locales.en]: {\n [GameBillStatuses.pending]: 'New',\n [GameBillStatuses.paid]: 'Paid',\n [GameBillStatuses.canceled]: 'Canceled',\n }\n};\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game: 'game',\n status: 'status',\n organization_bill: 'organizationBill',\n paid_date: 'paidDate',\n price: 'price',\n created_at: 'createdAt',\n },\n relation: {\n game: Game,\n organizationBill: OrganizationBill,\n status: enumField(GameBillStatuses),\n paidDate: DateTimeField,\n createdAt: DateTimeField,\n }\n})\nexport class GameBill extends BaseModel {\n id: number;\n game: Game;\n organizationBill: OrganizationBill;\n status: GameBillStatuses;\n price: number;\n paidDate: Date;\n createdAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n files: 'files',\n key_code: 'keyCode',\n },\n relation: {\n files: listField(File)\n }\n})\nexport class LeaguePlaylist extends BaseModel {\n id: number;\n name: string;\n files: File[];\n keyCode: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\nimport { Organization } from './organization';\nimport { Sport } from './sport';\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n organization: 'organization',\n price: 'price',\n sport: 'sport',\n },\n relation: {\n organization: Organization,\n sport: Sport,\n }\n})\nexport class OrganizationTariff extends BaseModel {\n id: number;\n organization: Organization;\n sport: Sport;\n price: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n players_count: 'playersCount',\n teams_count: 'teamsCount',\n games_count: 'gamesCount',\n paid_sum: 'paidSum',\n debt_sum: 'debtSum',\n },\n})\nexport class OrganizationStatistic extends BaseModel {\n id: number;\n playersCount: number;\n teamsCount: number;\n gamesCount: number;\n paidSum: number;\n debtSum: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { of, ReplaySubject, Subject } from 'rxjs';\n\nimport { Centrifuge } from 'centrifuge';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ConfigService } from './config.service';\nimport { Subscription } from 'centrifuge/build/subscription';\nimport { filter, take, tap } from 'rxjs/operators';\nimport { isPlatformBrowser } from '@angular/common';\n\ninterface CentrifugoConfig {\n token: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class CentrifugoService {\n private channels$: { [key: string]: Subject<any> } = {};\n private subscriptions: { [key: string]: Subscription } = {};\n private centrifuge: Centrifuge;\n private initializeEngineSubject: ReplaySubject<boolean>;\n private connectedSubject = new BehaviorSubject<boolean>(false);\n\n get connected$(): Observable<boolean> {\n return this.connectedSubject;\n }\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n @Inject(PLATFORM_ID) private platformId: string,\n ) { }\n\n listen<T = any>(channel): Observable<T> {\n if (!isPlatformBrowser(this.platformId)) {\n console.error('Centrifugo is not available in ssr mode')\n return new Observable(observer => {});\n }\n\n if (channel in this.channels$) {\n return this.channels$[channel];\n }\n\n this.channels$[channel] = new Subject<T>();\n this.connect().subscribe(connected => {\n this.subscriptions[channel] = this.addEngineSubscription(channel);\n });\n\n return this.channels$[channel];\n }\n\n unsubscribe(channel): void {\n if (this.subscriptions[channel]) {\n this.subscriptions[channel].unsubscribe();\n this.centrifuge.removeSubscription(this.subscriptions[channel]);\n delete this.subscriptions[channel];\n }\n if (this.channels$[channel]) {\n this.channels$[channel].complete();\n delete this.channels$[channel];\n }\n }\n\n connect(): Observable<boolean> {\n if (!isPlatformBrowser(this.platformId)) {\n console.error('Centrifugo is not available in ssr mode');\n return new Observable<boolean>(observer => {});\n }\n\n if (!this.initializeEngineSubject) {\n this.initializeEngineSubject = new ReplaySubject(1);\n\n this.httpClient.get<CentrifugoConfig>(`${this.configService.get('apiUrl')}/api/v1/centrifugo_v2/`)\n .subscribe(config => {\n this.initializeEngine({\n url: this.configService.get('centrifugoUrl'),\n token: config.token,\n transports: ['websocket']\n });\n this.centrifuge.on('connected', () => {\n this.initializeEngineSubject.next(true);\n this.connectedSubject.next(true);\n });\n this.centrifuge.on('disconnected', () => {\n this.connectedSubject.next(false);\n });\n this.centrifuge.connect();\n });\n }\n\n return this.initializeEngineSubject.pipe(\n filter(item => Boolean(item)),\n take(1),\n tap(() => {\n if (this.centrifuge && this.centrifuge.state === 'disconnected') {\n this.centrifuge.connect();\n }\n })\n );\n }\n\n publish(channel: string, message: any): Observable<any> {\n if (!isPlatformBrowser(this.platformId)) {\n console.error('Centrifugo is not available in ssr mode');\n return new Observable<any>(observer => {});\n }\n\n return this.connect().pipe(\n tap(() => this.centrifuge.publish(channel, message))\n );\n }\n\n disconnect(): void {\n if (this.centrifuge) {\n this.centrifuge.disconnect();\n }\n this.initializeEngineSubject = undefined;\n for (const channel of Object.keys(this.channels$)) {\n this.unsubscribe(channel);\n }\n this.channels$ = {};\n this.subscriptions = {};\n }\n\n private initializeEngine(config: {\n url: string,\n token: string,\n transports: string[]\n }): void {\n this.centrifuge = new Centrifuge(config.url, {\n token: config.token,\n maxReconnectDelay: 3000,\n maxServerPingDelay: 3000,\n timeout: 1000,\n });\n }\n\n private addEngineSubscription(channel: string): Subscription {\n let sub = this.centrifuge.getSubscription(channel);\n if (!sub) {\n sub = this.centrifuge.newSubscription(channel);\n sub.on('publication', ctx => {\n this.resolveMessage(channel, ctx.data);\n });\n }\n sub.subscribe();\n return sub;\n }\n\n private resolveMessage(channel: string, message: any): void {\n if (!this.channels$[channel]) {\n return;\n }\n\n this.channels$[channel].next(message);\n }\n}\n","import { ModelInterface } from '../models/util';\n\nexport class StorageEngineField {\n defaultValue: any;\n\n constructor(defaultValue?: any, protected modelClass?: ModelInterface) {\n this.defaultValue = defaultValue;\n }\n\n toFront(value: any): any {\n if (this.modelClass) {\n return this.modelClass.toFront(value);\n }\n return value;\n }\n\n toBack(value: any): any {\n if (this.modelClass) {\n return this.modelClass.toBack(value);\n }\n return value;\n }\n}\n\nexport abstract class StorageEngine {\n constructor(protected name: string, protected fields: {[key: string]: StorageEngineField}) {\n }\n\n addField(key: string, field: StorageEngineField): void {\n this.fields[key] = field;\n }\n\n save(key: string, value: any): void {\n if (!this.fields[key]) {\n return;\n }\n this.setItem(`${this.name}_${key}`, this.fields[key].toBack(value));\n }\n\n get(key: string): any {\n if (!this.fields[key]) {\n return;\n }\n let value = this.getItem(`${this.name}_${key}`);\n if (value === null) {\n value = this.fields[key].defaultValue;\n }\n if (value === null || value === undefined) {\n return value;\n }\n return this.fields[key].toFront(value);\n }\n\n clear(): void {\n for (const field of Object.keys(this.fields)) {\n this.removeItem(field);\n }\n }\n\n protected getItem(key: string): any {\n throw new Error(`Function getItem for store engine ${typeof this} not implemented`);\n }\n\n protected setItem(key: string, value: any): any {\n throw new Error(`Function setItem for store engine ${typeof this} not implemented`);\n }\n\n protected removeItem(key: string): void {\n throw new Error(`Function deleteItem for store engine ${typeof this} not implemented`);\n }\n}\n","import { StorageEngine } from './storage-engine';\n\nexport class LocalStorageEngine extends StorageEngine {\n protected setItem(key: string, value: any) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n protected getItem(key: string): any {\n try {\n return JSON.parse(localStorage.getItem(key));\n } catch (e) {\n return;\n }\n }\n\n protected removeItem(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import {\n ɵComponentType as ComponentType,\n ɵDirectiveType as DirectiveType,\n ɵComponentDef as ComponentDef,\n ɵDirectiveDef as DirectiveDef\n} from '@angular/core';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Subject } from 'rxjs/internal/Subject';\n\nexport interface OnDestroyLike {\n ngOnDestroy(): void;\n [key: string]: any;\n}\n\nexport function componentDestroyed(component: OnDestroyLike): Observable<void> {\n if (!(component as any).__decoratorApplied) {\n throw new Error('Use @UntilDestroy decorator in class');\n }\n\n if (!(component as any).__componentDestroyed$) {\n (component as any).__componentDestroyed$ = new Subject();\n }\n return (component as any).__componentDestroyed$;\n}\n\nexport function UntilDestroy(cmpType: any) {\n const original = cmpType.prototype.ngOnDestroy;\n cmpType.prototype.__decoratorApplied = true;\n cmpType.prototype.ngOnDestroy = function(this: any) {\n original.call(this);\n if (this.__componentDestroyed$) {\n this.__componentDestroyed$.next();\n this.__componentDestroyed$.complete();\n delete this.__componentDestroyed$;\n }\n };\n}\n\nfunction getDef<T>(\n type: DirectiveType<T> | ComponentType<T>\n): DirectiveDef<T> | ComponentDef<T> | unknown {\n return (type as ComponentType<T>).ɵcmp || (type as DirectiveType<T>).ɵdir;\n}\n","export function getCookie(name: string): string {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop().split(';').shift();\n }\n return null;\n}\n","export function parseDate(input: string, format: string = 'yyyy-mm-dd'): Date {\n const parts = input.match(/(\\d+)/g);\n let i = 0;\n const result: {\n yyyy?: number,\n mm?: number,\n dd?: number,\n } = {};\n // extract date-part indexes from the format\n format.replace(/(yyyy|dd|mm)/g, (part: string) => {\n result[part] = +parts[i++];\n return '';\n });\n\n return new Date(result.yyyy, result.mm - 1, result.dd);\n}\n","export function isTouchDevice() {\n const prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\n const mq = (q) => {\n return window.matchMedia(q).matches;\n };\n\n if (('ontouchstart' in window) || (window as any).DocumentTouch && document instanceof (window as any).DocumentTouch) {\n return true;\n }\n\n // include the 'heartz' as a way to have a non matching MQ to help terminate the join\n // https://git.io/vznFH\n const query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\n return mq(query);\n}\n","export function getEnumOptions(enumClass): number[] {\n return Object.keys(enumClass)\n .map(v => enumClass[v])\n .filter(v => isNaN(+v) === false)\n .map(v => +v);\n}\n\n","import { captureException } from '@sentry/angular';\n\nexport function handleError(error, force = false, production = true) {\n if (!(error && (error.status === 0 || error.status === 404)) || (force && error.status !== 0)) {\n captureException(error);\n }\n\n if (!production) {\n console.error(error);\n }\n}\n","export interface LinkFavicon {\n rel: string;\n sizes?: string;\n href: string;\n type?: string;\n color?: string;\n}\n\nexport function getIconsData(folder: string): LinkFavicon[] {\n return [\n {rel: 'apple-touch-icon', sizes: '180x180', href: `/assets/favicon/${folder}apple-touch-icon.png`},\n {rel: 'icon', type: 'image/png', sizes: '32x32', href: `/assets/favicon/${folder}favicon-32x32.png`},\n {rel: 'icon', type: 'image/png', sizes: '16x16', href: `/assets/favicon/${folder}favicon-16x16.png`},\n {rel: 'shortcut icon', href: `/assets/favicon/${folder}favicon.ico`},\n {rel: 'manifest', href: `/assets/favicon/${folder}site.webmanifest`},\n {rel: 'mask-icon', href: `/assets/favicon/${folder}safari-pinned-tab.svg`, color: '#ff0000'}\n ];\n}\n\nexport function changeFavicons(document: Document, leagueAlias: string): void {\n let folder = '';\n if (leagueAlias === 'ablmoscow') {\n folder = 'abl/';\n }\n const data = getIconsData(folder);\n for (const item of data) {\n const link = document.createElement('link');\n for (const key of Object.keys(item)) {\n link.setAttribute(key, item[key]);\n }\n document.head.appendChild(link);\n }\n}\n","import { FormGroup } from '@angular/forms';\n\nexport function markFormGroupTouched(formGroup: FormGroup) {\n (Object as any).values(formGroup.controls).forEach(control => {\n control.markAsTouched();\n control.markAsDirty();\n\n if (control instanceof FormGroup) {\n markFormGroupTouched(control);\n } else if (control.controls) {\n control.controls.forEach(c => {\n if (c instanceof FormGroup) {\n markFormGroupTouched(c);\n } else {\n c.markAsTouched();\n c.markAsDirty();\n }\n });\n }\n });\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\nimport { debounceTime, delay, map, switchMap } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\nexport interface CheckEmailServiceInterface {\n checkEmail(value: string, selfCheck: boolean): Observable<boolean>;\n}\n\nexport const minLengthArrayValidator = (minLength: number) => {\n return (c: AbstractControl) => {\n return c.value.length < minLength\n ? {minLengthArray: {valid: false}}\n : null;\n };\n};\n\nexport const validatePhone = (control: AbstractControl) => {\n if (!control.value) {\n return null;\n }\n const value = `${control.value}`.replace(/\\D/gi, '');\n return value.length === 11 ? null : {invalidPhone: {valid: false}};\n};\n\nexport const validateDate = (control: AbstractControl) => {\n const re = /\\d{2}\\.\\d{2}\\.\\d{4}/gi;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidDate: {valid: false}};\n};\n\nexport const validateEmail = (authService: CheckEmailServiceInterface, selfCheck = true, ignore = []) => {\n const subject = of(null).pipe(\n delay(500)\n );\n return (control: AbstractControl) => {\n if (ignore.indexOf(control.value) > -1) {\n return of(null);\n }\n return subject.pipe(\n switchMap(() => authService.checkEmail(control.value, selfCheck).pipe(\n map(valid => valid ? null : {emailTaken: true})\n ))\n );\n };\n};\n\nexport const validateUrl = (control: AbstractControl) => {\n const re = /^(?:http(s)?:\\/\\/)[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidUrl: true};\n};\n\nexport function fileSizeValidator(maxFileSize: number): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n };\n}\n","import { Inject, Injectable, Injector, PLATFORM_ID } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { getCookie } from './utils/cookie';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ConfigService } from './services/config.service';\n\n@Injectable()\nexport class HttpCookieInterceptor implements HttpInterceptor {\n private isBrowser = isPlatformBrowser(this.platformId);\n\n constructor(\n private injector: Injector,\n private configService: ConfigService,\n @Inject(PLATFORM_ID) private platformId: string,\n ) {\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (!this.isBrowser) {\n return next.handle(req);\n }\n const apiUrl = this.configService.get('apiUrl');\n if (apiUrl === req.url.substr(0, apiUrl.length)) {\n req = req.clone({withCredentials: true});\n }\n const csrf = getCookie('csrftoken');\n if (csrf) {\n req = req.clone({\n setHeaders: {'X-CSRFToken': csrf}\n });\n }\n return next.handle(req);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Subject"],"mappings":"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"}
1
+ {"version":3,"file":"mtgame-core.js","sources":["../../../projects/core/src/localization/hockey-penalty-types.ts","../../../projects/core/src/models/util.ts","../../../projects/core/src/models/file.ts","../../../projects/core/src/models/sport.ts","../../../projects/core/src/models/user-profile.ts","../../../projects/core/src/models/city.ts","../../../projects/core/src/models/basketball-profile.ts","../../../projects/core/src/models/volleyball-profile.ts","../../../projects/core/src/models/hockey-profile.ts","../../../projects/core/src/models/football-profile.ts","../../../projects/core/src/models/handball-profile.ts","../../../projects/core/src/models/rugby-profile.ts","../../../projects/core/src/models/waterpolo-profile.ts","../../../projects/core/src/models/wrestball-profile.ts","../../../projects/core/src/models/user.ts","../../../projects/core/src/models/team.ts","../../../projects/core/src/models/organization.ts","../../../projects/core/src/models/league.ts","../../../projects/core/src/models/tournament-season.ts","../../../projects/core/src/models/tournament.ts","../../../projects/core/src/models/basketball-game-config.ts","../../../projects/core/src/models/volleyball-game-config.ts","../../../projects/core/src/models/league-court.ts","../../../projects/core/src/models/media-item.ts","../../../projects/core/src/models/hockey-game-config.ts","../../../projects/core/src/models/football-game-config.ts","../../../projects/core/src/models/handball-game-config.ts","../../../projects/core/src/utils/array.ts","../../../projects/core/src/models/playoff.ts","../../../projects/core/src/models/tournament-group.ts","../../../projects/core/src/models/rugby-game-config.ts","../../../projects/core/src/models/waterpolo-game-config.ts","../../../projects/core/src/models/wrestball-game-config.ts","../../../projects/core/src/models/game.ts","../../../projects/core/src/utils/data.ts","../../../projects/core/src/storage/store.ts","../../../projects/core/src/services/base.service.ts","../../../projects/core/src/services/config.service.ts","../../../projects/core/src/models/tournament-division.ts","../../../projects/core/src/models/league-field-base-value.ts","../../../projects/core/src/models/league-field-base.ts","../../../projects/core/src/models/league-team-field.ts","../../../projects/core/src/models/tournament-team-field-value.ts","../../../projects/core/src/models/tournament-team.ts","../../../projects/core/src/models/team-user.ts","../../../projects/core/src/models/tournament-disqualification.ts","../../../projects/core/src/models/league-player-field.ts","../../../projects/core/src/models/league-player-field-value.ts","../../../projects/core/src/localization/locales.ts","../../../projects/core/src/models/league-player.ts","../../../projects/core/src/models/tournament-team-user-field-value.ts","../../../projects/core/src/models/tournament-team-user.ts","../../../projects/core/src/models/basketball-statistic.ts","../../../projects/core/src/models/basketball-game-team-statistic.ts","../../../projects/core/src/models/basketball-game-statistic.ts","../../../projects/core/src/models/basketball-game-log.ts","../../../projects/core/src/models/game-user.ts","../../../projects/core/src/models/game-user-limitation.ts","../../../projects/core/src/models/game-user-disqualification.ts","../../../projects/core/src/api/game-base-api.ts","../../../projects/core/src/api/basketball-game-api.ts","../../../projects/core/src/models/feedback.ts","../../../projects/core/src/api/feedback-api.ts","../../../projects/core/src/api/file-api.ts","../../../projects/core/src/models/hockey-game-log.ts","../../../projects/core/src/models/hockey-game-statistic.ts","../../../projects/core/src/models/hockey-statistic.ts","../../../projects/core/src/models/hockey-game-team-statistic.ts","../../../projects/core/src/api/hockey-game-api.ts","../../../projects/core/src/models/football-game-log.ts","../../../projects/core/src/models/football-game-statistic.ts","../../../projects/core/src/models/football-statistic.ts","../../../projects/core/src/models/football-game-team-statistic.ts","../../../projects/core/src/api/football-game-api.ts","../../../projects/core/src/models/handball-game-log.ts","../../../projects/core/src/models/handball-game-statistic.ts","../../../projects/core/src/models/handball-statistic.ts","../../../projects/core/src/models/handball-game-team-statistic.ts","../../../projects/core/src/api/handball-game-api.ts","../../../projects/core/src/models/tournament-news.ts","../../../projects/core/src/models/game-timeline-stages.ts","../../../projects/core/src/models/tournament-stage.ts","../../../projects/core/src/models/volleyball-statistic.ts","../../../projects/core/src/models/tournament-stage-team.ts","../../../projects/core/src/models/league-news.ts","../../../projects/core/src/models/tournament-event.ts","../../../projects/core/src/models/league-user.ts","../../../projects/core/src/models/rugby-statistic.ts","../../../projects/core/src/models/achievement.ts","../../../projects/core/src/models/team-achievement.ts","../../../projects/core/src/models/waterpolo-statistic.ts","../../../projects/core/src/models/tournament-round.ts","../../../projects/core/src/models/wrestball-statistic.ts","../../../projects/core/src/models/tournament-round-team.ts","../../../projects/core/src/api/tournament-api.ts","../../../projects/core/src/models/league-partner.ts","../../../projects/core/src/models/league-banner.ts","../../../projects/core/src/models/league-document.ts","../../../projects/core/src/models/teams-and-users.ts","../../../projects/core/src/models/season-tournament.ts","../../../projects/core/src/api/league-api.ts","../../../projects/core/src/api/league-news-api.ts","../../../projects/core/src/api/league-player-api.ts","../../../projects/core/src/api/league-team-api.ts","../../../projects/core/src/api/media-api.ts","../../../projects/core/src/models/poll.ts","../../../projects/core/src/models/team-invite.ts","../../../projects/core/src/models/game-invite.ts","../../../projects/core/src/models/team-event-type.ts","../../../projects/core/src/localization/team-event-type.ts","../../../projects/core/src/models/team-event.ts","../../../projects/core/src/models/team-event-invite.ts","../../../projects/core/src/models/tournament-team-user-invite.ts","../../../projects/core/src/models/tournament-invite.ts","../../../projects/core/src/models/notification.ts","../../../projects/core/src/models/notification-settings.ts","../../../projects/core/src/api/notification-base-api.ts","../../../projects/core/src/api/notification-api.ts","../../../projects/core/src/api/org-notification-api.ts","../../../projects/core/src/api/reference-api.ts","../../../projects/core/src/models/rugby-game-team-statistic.ts","../../../projects/core/src/models/rugby-game-statistic.ts","../../../projects/core/src/models/rugby-foul-type.ts","../../../projects/core/src/models/rugby-game-log.ts","../../../projects/core/src/api/rugby-game-api.ts","../../../projects/core/src/models/team-invite-external.ts","../../../projects/core/src/models/team-permission.ts","../../../projects/core/src/models/team-access.ts","../../../projects/core/src/api/team-api.ts","../../../projects/core/src/api/team-event-api.ts","../../../projects/core/src/models/tournament-join-team.ts","../../../projects/core/src/models/tournament-join1x1-data.ts","../../../projects/core/src/api/tournament-join-api.ts","../../../projects/core/src/api/tournament-round-api.ts","../../../projects/core/src/api/tournament-season-api.ts","../../../projects/core/src/api/tournament-stage-api.ts","../../../projects/core/src/models/user-access.ts","../../../projects/core/src/models/user-permission.ts","../../../projects/core/src/api/user-api.ts","../../../projects/core/src/models/volleyball-game-team-statistic.ts","../../../projects/core/src/models/volleyball-game-statistic.ts","../../../projects/core/src/models/volleyball-game-log.ts","../../../projects/core/src/api/volleyball-game-api.ts","../../../projects/core/src/models/waterpolo-game-log.ts","../../../projects/core/src/models/waterpolo-game-statistic.ts","../../../projects/core/src/models/waterpolo-game-team-statistic.ts","../../../projects/core/src/api/waterpolo-game-api.ts","../../../projects/core/src/models/wrestball-game-team-statistic.ts","../../../projects/core/src/models/wrestball-game-statistic.ts","../../../projects/core/src/models/wrestball-game-log.ts","../../../projects/core/src/api/wrestball-game-api.ts","../../../projects/core/src/api/public-team-api.ts","../../../projects/core/src/api/public-user-api.ts","../../../projects/core/src/localization/basketball-game-log-types.ts","../../../projects/core/src/localization/basketball-game-sub-log-types.ts","../../../projects/core/src/localization/country.ts","../../../projects/core/src/localization/hockey-game-log-types.ts","../../../projects/core/src/localization/football-game-log-types.ts","../../../projects/core/src/localization/handball-game-log-types.ts","../../../projects/core/src/localization/waterpolo-game-log-types.ts","../../../projects/core/src/localization/overtime-types.ts","../../../projects/core/src/localization/rugby-foul-sanction.ts","../../../projects/core/src/localization/rugby-foul-game-stage.ts","../../../projects/core/src/localization/rugby-game-log-types.ts","../../../projects/core/src/localization/team-user-role.ts","../../../projects/core/src/localization/user-profile.ts","../../../projects/core/src/localization/volleyball-game-log-types.ts","../../../projects/core/src/localization/organization-statuses.ts","../../../projects/core/src/localization/wrestball-game-log-types.ts","../../../projects/core/src/models/recording.ts","../../../projects/core/src/models/camera.ts","../../../projects/core/src/models/organization-bill.ts","../../../projects/core/src/models/game-bill.ts","../../../projects/core/src/models/league-playlist.ts","../../../projects/core/src/models/organization-tariff.ts","../../../projects/core/src/models/organization-statistic.ts","../../../projects/core/src/services/centrifugo.service.ts","../../../projects/core/src/storage/storage-engine.ts","../../../projects/core/src/storage/local-storage-engine.ts","../../../projects/core/src/utils/component-destroyed.ts","../../../projects/core/src/utils/cookie.ts","../../../projects/core/src/utils/date.ts","../../../projects/core/src/utils/device.ts","../../../projects/core/src/utils/enum.ts","../../../projects/core/src/utils/errors.ts","../../../projects/core/src/utils/favicon.ts","../../../projects/core/src/utils/form.ts","../../../projects/core/src/utils/validators.ts","../../../projects/core/src/http-cookie.interceptor.ts","../../../projects/core/src/mtgame-core.ts"],"sourcesContent":["export const HockeyPenaltyTypes = [\n {id: 1, code: 'АГРЕС', title: 'Агрессор в драке'},\n {id: 2, code: 'АТ-В-ГОЛ', title: 'Атака в голову или шею'},\n {id: 3, code: 'АТ-ВР', title: 'Атака вратаря'},\n {id: 4, code: 'АТ-СЗ', title: 'Атака сзади'},\n {id: 5, code: 'БЛОК', title: 'Блокировка'},\n {id: 6, code: 'БР-КЛ', title: 'Бросок клюшки'},\n {id: 7, code: 'ВБ-ШБ', title: 'Выброс шайбы'},\n {id: 8, code: 'ГРУБ', title: 'Грубость'},\n {id: 9, code: 'ДИСЦ', title: 'Дисциплинарный штраф'},\n {id: 10, code: 'ДИС-КН', title: 'Дисциплинарный до конца матча'},\n {id: 11, code: 'ДРАКА', title: 'Драка'},\n {id: 12, code: 'ЗАЧИН', title: 'Зачинщик драки'},\n {id: 13, code: 'ЗД-ИГ', title: 'Задержка игры'},\n {id: 14, code: 'ЗД-КЛ-СП', title: 'Задержка клюшки соперника'},\n {id: 15, code: 'ЗД-КЛ', title: 'Задержка клюшкой'},\n {id: 16, code: 'ЗД-СП', title: 'Задержка соперника'},\n {id: 17, code: 'ЗД-ШБ', title: 'Задержка шайбы руками'},\n {id: 18, code: 'СЛ-КЛ', title: 'Игра со сломанной клюшкой'},\n {id: 19, code: 'ВП-КЛ', title: 'Игра высоко поднятой клюшкой'},\n {id: 20, code: 'КЛ-УД', title: 'Колющий удар'},\n {id: 21, code: 'СК-ШТ', title: 'Малый скамеечный штраф'},\n {id: 22, code: 'МШ', title: 'Матч-штраф'},\n {id: 23, code: 'НП-АТ', title: 'Неправильная атака'},\n {id: 24, code: 'ЧС-СТ', title: 'Нарушение численного состава'},\n {id: 25, code: 'НС-КЛ', title: 'Нестандартная клюшка'},\n {id: 26, code: 'НАР-ЭК', title: 'Опасное снаряжение'},\n {id: 27, code: 'НС-ПВ', title: 'Оскорбление судей и неспортивное поведение'},\n {id: 28, code: 'ОТ-ИГ', title: 'Отказ начать игру'},\n {id: 29, code: 'ОТСЧ', title: 'Отсечение'},\n {id: 30, code: 'ПЛЕВОК', title: 'Плевок'},\n {id: 31, code: 'ПОДН', title: 'Подножка'},\n {id: 32, code: 'ПОДС', title: 'Подсечка'},\n {id: 33, code: 'ПР-ИН', title: 'Предупреждение инфекций'},\n {id: 34, code: 'ПК-СК', title: 'Покидание скамейки во время конфликта'},\n {id: 35, code: 'СД-ВР', title: 'Сдвиг ворот'},\n {id: 36, code: 'СИМ', title: 'Симуляция'},\n {id: 37, code: 'ТЛ-БР', title: 'Толчок на борт'},\n {id: 38, code: 'ТЛ-КЛ', title: 'Толчок клюшкой'},\n {id: 39, code: 'УД-ГОЛ', title: 'Удар головой'},\n {id: 40, code: 'УД-КЛ', title: 'Удар клюшкой'},\n {id: 41, code: 'УД-К-КЛ', title: 'Удар концом клюшки'},\n {id: 42, code: 'УД-КОЛ', title: 'Удар коленом'},\n {id: 43, code: 'УД-ЛОК', title: 'Удар локтем'},\n {id: 44, code: 'УД-НГ', title: 'Удар ногой'},\n {id: 45, code: 'УКУС', title: 'Укус'},\n {id: 46, code: 'КН-ЗР', title: 'Физический контакт со зрителем'},\n {id: 47, code: 'ШТ-ВР', title: 'Штраф вратаря'},\n];\nexport const HockeyPenaltyTypesEn = [\n {id: 1, code: 'AGGR', title: 'Агрессор в драке'},\n {id: 2, code: 'AT-HD', title: 'Attack to the head or neck'},\n {id: 3, code: 'AT-GO', title: 'Goalkeeper attack'},\n {id: 4, code: 'AT-BH', title: 'Attack from behind'},\n {id: 5, code: 'BLOCK', title: 'Blocking'},\n {id: 6, code: 'TH-ST', title: 'Throwing a stick'},\n {id: 7, code: 'PC-RL', title: 'Puck release'},\n {id: 8, code: 'RUDE', title: 'Rudeness'},\n {id: 9, code: 'DISC', title: 'Disciplinary penalty'},\n {id: 10, code: 'DISC-EM', title: 'Disciplinary until the end of the match'},\n {id: 11, code: 'FIGHT', title: 'Fight'},\n {id: 12, code: 'IN-FG', title: 'The instigator of the fight'},\n {id: 13, code: 'GD', title: 'Game delay'},\n {id: 14, code: 'HD-OP-ST', title: 'Holding an opponent\\'s stick'},\n {id: 15, code: 'ST-HD', title: 'Stick hold'},\n {id: 16, code: 'DL-OP', title: 'Delaying the opponent'},\n {id: 17, code: 'HL-PC-HD', title: 'Holding the puck with your hands'},\n {id: 18, code: 'PL-BS', title: 'Playing with a broken stick'},\n {id: 19, code: 'HSP', title: 'High stick play'},\n {id: 20, code: 'THR', title: 'Thrust'},\n {id: 21, code: 'MI-BE', title: 'Minor bench penalty'},\n {id: 22, code: 'MP', title: 'Match penalty'},\n {id: 23, code: 'WR-AT', title: 'Wrong attack'},\n {id: 24, code: 'NM-VO', title: 'Violation of numerical composition'},\n {id: 25, code: 'NS-ST', title: 'Non-standard stick'},\n {id: 26, code: 'DE', title: 'Dangerous equipment'},\n {id: 27, code: 'INS-REF', title: 'Insulting referees and unsportsmanlike conduct'},\n {id: 28, code: 'RF-SG', title: 'Refusal to start the game'},\n {id: 29, code: 'CO', title: 'Cut-off'},\n {id: 30, code: 'SPIT', title: 'Spit'},\n {id: 31, code: 'STEP', title: 'Step'},\n {id: 32, code: 'UND', title: 'Undercut'},\n {id: 33, code: 'PR-INF', title: 'Prevention of infections'},\n {id: 34, code: 'LE-BE', title: 'Leaving the bench during a conflict'},\n {id: 35, code: 'GA-SH', title: 'Gate shift'},\n {id: 36, code: 'SIM', title: 'Simulation'},\n {id: 37, code: 'PU-BR', title: 'Push on board'},\n {id: 38, code: 'PU-ST', title: 'Stick push'},\n {id: 39, code: 'AT-HD', title: 'Head kick'},\n {id: 40, code: 'HT-ST', title: 'Hit with a stick'},\n {id: 41, code: 'HT-ST-E', title: 'Hit with the end of the stick'},\n {id: 42, code: 'ST-KN', title: 'Knee strike'},\n {id: 43, code: 'ST-EB', title: 'Elbow strike'},\n {id: 44, code: 'KICK', title: 'Kick'},\n {id: 45, code: 'BITE', title: 'Bite'},\n {id: 46, code: 'CN-VW', title: 'Physical contact with the viewer'},\n {id: 47, code: 'PN-GO', title: 'Goalkeeper penalty'},\n];\n","import { HockeyPenaltyTypes } from '../localization/hockey-penalty-types';\n\nexport const MODEL_MAPPING_FIELDS_KEY = '_mapping_fields_';\nexport const MODEL_RELATION_KEY = '_relation_';\nexport const MODEL_TO_FRONT_KEY = '_to_front_';\nexport const MODEL_TO_BACK_KEY = '_to_back_';\n\ntype ParserInterface = (dto: any) => any;\n\ninterface ModelTypeInterface {\n new(data?: any);\n}\n\nexport interface ModelInterface {\n toFront(dto: any): any;\n toBack(dto: any): any;\n}\n\nexport abstract class BaseModel {\n constructor(data?: {[key: string]: any}) {\n if (data) {\n for (const key of Object.keys(data)) {\n this[key] = data[key];\n }\n }\n }\n\n static toFront(dto: any): any {\n return undefined;\n }\n\n static toBack(dto: any): any {\n return undefined;\n }\n}\n\nexport function enumField(enumClass) {\n return {\n toFront: (value) => {\n if (value === null || value === undefined) {\n return value;\n }\n if (isNaN(+value)) {\n return enumClass[value];\n } else {\n return value;\n }\n },\n toBack: (value) => {\n if (value === null || value === undefined) {\n return value;\n }\n if (isNaN(+value)) {\n return value;\n } else {\n return enumClass[value];\n }\n }\n };\n}\n\nexport function penaltyTypeField() {\n return {\n toFront: (data) => {\n if (!data) {\n return null;\n }\n if (typeof data === 'object') {\n return data;\n }\n return HockeyPenaltyTypes.find(item => item.id === data);\n },\n toBack: (data) => {\n if (!data) {\n return null;\n }\n if (typeof data === 'object') {\n return data.id;\n }\n return data;\n }\n };\n}\n\nexport function listField(modelClass) {\n return {\n toFront: (value) => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map(item => modelClass.toFront(item));\n },\n toBack: (value) => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.map(item => modelClass.toBack(item));\n }\n };\n}\n\nexport class DateField extends BaseModel {\n static toFront(date: any): any {\n if (date) {\n return new Date(date);\n } else {\n return undefined;\n }\n }\n static toBack(date: Date): any {\n if (date) {\n const dateUtc = new Date(Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds())\n );\n return dateUtc.toISOString().slice(0, 10);\n } else {\n return undefined;\n }\n }\n}\n\nexport class DateTimeField extends BaseModel {\n static toFront(date: any): any {\n if (date) {\n return new Date(date);\n } else {\n return undefined;\n }\n }\n static toBack(date: Date): any {\n if (date) {\n const dateUtc = new Date(Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds())\n );\n return date.toISOString();\n } else {\n return undefined;\n }\n }\n}\n\nexport function ModelInstance(\n config: {\n mappingFields?: { [key: string]: string },\n relation?: { [key: string]: BaseModel }\n }\n) {\n return (target: ModelTypeInterface) => {\n if (config) {\n if (config.mappingFields) {\n target[MODEL_MAPPING_FIELDS_KEY] = config.mappingFields;\n }\n if (config.relation) {\n target[MODEL_RELATION_KEY] = config.relation;\n }\n target[MODEL_TO_FRONT_KEY] = (dto: any) => {\n return toFront(target, dto);\n };\n target[MODEL_TO_BACK_KEY] = (dto: any) => {\n return toBack(target, dto);\n };\n }\n };\n}\n\nexport const ToFrontHook = (target: ModelTypeInterface, key: string | symbol, descriptor: TypedPropertyDescriptor<Function>) => {\n return {\n value: (...args: any[]) => {\n const parseMethod = target[MODEL_TO_FRONT_KEY] as ParserInterface;\n if (parseMethod) {\n return parseMethod(args[0]);\n }\n return undefined;\n }\n };\n};\n\nexport const ToBackHook = (target: ModelTypeInterface, key: string | symbol, descriptor: TypedPropertyDescriptor<Function>) => {\n return {\n value: (...args: any[]) => {\n const parseMethod = target[MODEL_TO_BACK_KEY] as ParserInterface;\n if (parseMethod) {\n return parseMethod(args[0]);\n }\n return undefined;\n }\n };\n};\n\nfunction extractValue(key, data) {\n if (!data) {\n return undefined;\n }\n\n const keyParts = key.split('.');\n if (keyParts.length === 1) {\n if (key in data) {\n return data[key];\n } else {\n return undefined;\n }\n }\n\n for (const k of keyParts) {\n if (data && k in data) {\n data = data[k];\n } else {\n return undefined;\n }\n }\n\n return data;\n}\n\nfunction toFront(modelType: ModelTypeInterface, data: any): any {\n // Check if recursion is required\n if (Array.isArray(data)) {\n return data.map(item => {\n return toFront(modelType, item);\n });\n }\n\n const instance = new modelType();\n\n // Mapping fields\n const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY] as string[];\n const relation = modelType[MODEL_RELATION_KEY] as { [key: string]: ModelInterface };\n if (mappingFields) {\n for (const backField of Object.keys(mappingFields)) {\n const frontField = mappingFields[backField];\n const value = extractValue(backField, data);\n if (relation && relation.hasOwnProperty(frontField)) {\n instance[frontField] = relation[frontField].toFront(value);\n } else {\n instance[frontField] = value;\n }\n }\n }\n\n return instance;\n}\n\nfunction toBack(modelType: ModelTypeInterface, instance: any): any {\n if (!instance) {\n return instance;\n }\n\n // Check if recursion is required\n if (Array.isArray(instance)) {\n return instance.map(item => {\n return toBack(modelType, item);\n });\n }\n\n const data = {};\n const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY] as string[];\n const relation = modelType[MODEL_RELATION_KEY] as { [key: string]: ModelInterface };\n if (mappingFields) {\n for (const backField of Object.keys(mappingFields)) {\n const frontField = mappingFields[backField];\n if (relation && relation.hasOwnProperty(frontField) && instance[frontField] !== undefined) {\n data[backField] = relation[frontField].toBack(instance[frontField]);\n } else {\n data[backField] = instance[frontField];\n }\n }\n }\n\n return data;\n}\n","import { ModelInstance, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\n\nexport enum FileEngine {\n django = 1,\n s3\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n original_name: 'originalName',\n path: 'path',\n resized_path: 'resizedPath',\n mime_type: 'mimeType',\n size: 'size',\n engine: 'engine',\n created_at: 'createdAt',\n },\n relation: {\n engine: enumField(FileEngine),\n createdAt: DateTimeField,\n }\n})\nexport class File {\n id: number;\n name: string;\n _originalName: string;\n _path: string;\n resizedPath: string;\n mimeType: string;\n size: number;\n engine: FileEngine;\n createdAt: Date;\n\n set originalName(name: string) {\n this._originalName = name;\n }\n\n get originalName(): string {\n return this._originalName || this.name;\n }\n\n set path(filePath: string) {\n this._path = filePath;\n }\n\n get path(): string {\n return this.resizedPath || this._path;\n }\n\n @ToFrontHook\n static toFront(data: any): File {\n return null;\n }\n\n @ToBackHook\n static toBack(file: File): any {\n return null;\n }\n}\n","import {ModelInstance, ToFrontHook, ToBackHook, BaseModel} from './util';\n\nexport enum SportTypes {\n basketball = 1,\n volleyball = 2,\n classic_basketball = 3,\n streetball = 4,\n classic_volleyball = 5,\n beach_volleyball = 6,\n hockey = 7,\n ice_hockey = 8,\n ball_hockey = 9,\n football = 10,\n classic_football = 11,\n mini_football = 12,\n handball = 13,\n handball_classic = 14,\n rugby = 15,\n rugby15 = 16,\n rugby7 = 17,\n basketball_1x1 = 18,\n waterpolo = 19,\n classic_waterpolo = 20,\n mini_waterpolo = 21,\n media_basket = 22,\n moneyball_basket = 23,\n wrestball= 24,\n wrestball_classic = 25,\n winline_basket = 26,\n dota_root = 27,\n dota = 28,\n cs_root = 29,\n cs = 30,\n other = 31,\n chess = 32,\n table_tennis = 33,\n billiard = 34,\n darts = 35,\n badminton = 36,\n padel_tennis = 37,\n other_dota = 38,\n other_fifa = 39,\n fonbase_basketball = 40,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n parent_id: 'parentId',\n sub_sports: 'subSports'\n }\n})\nexport class Sport extends BaseModel {\n id: number;\n name: string;\n parentId: number;\n subSports: Sport[];\n\n isBasketball() {\n return this.id === SportTypes.basketball || this.parentId === SportTypes.basketball;\n }\n\n isClassicBasketball() {\n return this.id === SportTypes.classic_basketball;\n }\n\n isStreetball() {\n return this.id === SportTypes.streetball;\n }\n\n isBasketball1x1() {\n return this.id === SportTypes.basketball_1x1;\n }\n\n isMediaBasket() {\n return this.id === SportTypes.media_basket;\n }\n\n isFonbaseBasketball() {\n return this.id === SportTypes.fonbase_basketball;\n }\n\n isMoneyballBasket() {\n return this.id === SportTypes.moneyball_basket;\n }\n\n isWinlinebasket() {\n return this.id === SportTypes.winline_basket;\n }\n\n isVolleyball() {\n return this.id === SportTypes.volleyball || this.parentId === SportTypes.volleyball;\n }\n\n isClassicVolleyball() {\n return this.id === SportTypes.classic_volleyball;\n }\n\n isBeachVolleyball() {\n return this.id === SportTypes.beach_volleyball;\n }\n\n isHockey(): boolean {\n return this.id === SportTypes.hockey || this.parentId === SportTypes.hockey;\n }\n\n isIceHockey(): boolean {\n return this.id === SportTypes.ice_hockey;\n }\n\n isBallHockey(): boolean {\n return this.id === SportTypes.ball_hockey;\n }\n\n isFootball() {\n return this.id === SportTypes.football || this.parentId === SportTypes.football;\n }\n\n isClassicFootball() {\n return this.id === SportTypes.classic_football;\n }\n\n isMiniFootball() {\n return this.id === SportTypes.mini_football;\n }\n\n isHandball() {\n return this.id === SportTypes.handball || this.parentId === SportTypes.handball;\n }\n\n isHandballClassic() {\n return this.id === SportTypes.handball_classic;\n }\n\n isRugby() {\n return this.id === SportTypes.rugby || this.parentId === SportTypes.rugby;\n }\n\n isRugby15() {\n return this.id === SportTypes.rugby15;\n }\n\n isRugby7() {\n return this.id === SportTypes.rugby7;\n }\n\n isWaterpolo() {\n return this.id === SportTypes.waterpolo || this.parentId === SportTypes.waterpolo;\n }\n\n isClassicWaterpolo() {\n return this.id === SportTypes.classic_waterpolo;\n }\n\n isMiniWaterpolo() {\n return this.id === SportTypes.mini_waterpolo;\n }\n\n isWrestball() {\n return this.id === SportTypes.wrestball || this.parentId === SportTypes.wrestball;\n }\n\n isOther() {\n return this.id === SportTypes.other || this.parentId === SportTypes.other;\n }\n\n isIndividualSport() {\n return this.isOther() && this.id !== SportTypes.badminton;\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(sport: Sport): any {\n return null;\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n height: 'height',\n weight: 'weight'\n }\n})\nexport class UserProfile {\n id: number;\n userId: number;\n height: number;\n weight: number;\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum Country {\n RU = 'RU',\n BL = 'BL',\n AM = 'AM',\n KZ = 'KZ',\n KG = 'KG',\n USA = 'USA',\n GE = 'GE',\n AZ = 'AZ',\n CHN = 'CHN',\n EGY = 'EGY',\n IRN = 'IRN',\n GRC = 'GRC'\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n name_en: 'nameEn',\n country: 'country',\n },\n relation: {\n country: enumField(Country),\n }\n})\nexport class City extends BaseModel {\n id: number;\n name: string;\n nameEn: string;\n country: Country;\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameBasketballPosition {\n point_guard = 1,\n shooting_guard,\n small_forward,\n power_forward,\n center\n}\n\nexport enum WorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameBasketballPosition),\n workHand: enumField(WorkHand)\n }\n})\nexport class BasketballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameBasketballPosition;\n workHand: WorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameVolleyballPosition {\n setter = 1,\n libero,\n middle_player,\n receiver_attacker,\n dioganal\n}\n\nexport enum VolleyballWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameVolleyballPosition),\n workHand: enumField(VolleyballWorkHand)\n }\n})\nexport class VolleyballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameVolleyballPosition;\n workHand: VolleyballWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameHockeyPosition {\n defensemen = 1,\n forward,\n goaltender\n}\n\nexport enum HockeyWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameHockeyPosition),\n workHand: enumField(HockeyWorkHand)\n }\n})\nexport class HockeyProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameHockeyPosition;\n workHand: HockeyWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameFootballPosition {\n defensemen = 1,\n midfielder,\n forward,\n goalkeeper\n}\n\nexport enum FootballWorkFoot {\n left = 1,\n right,\n both\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_foot: 'workFoot'\n },\n relation: {\n position: enumField(GameFootballPosition),\n workFoot: enumField(FootballWorkFoot)\n }\n})\nexport class FootballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameFootballPosition;\n workFoot: FootballWorkFoot;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { WorkHand } from './basketball-profile';\n\nexport enum GameHandballPosition {\n goalkeeper = 1,\n winger,\n pivot,\n centre_back,\n fullback\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameHandballPosition),\n workHand: enumField(WorkHand)\n }\n})\nexport class HandballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameHandballPosition;\n workHand: WorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameRugbyPosition {\n front_line = 1,\n second_line,\n back_line,\n halfback,\n three_quarter,\n fullback,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position'\n },\n relation: {\n position: enumField(GameRugbyPosition),\n }\n})\nexport class RugbyProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameRugbyPosition;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameWaterpoloPosition {\n goalkeeper = 1,\n defensemen,\n center_forward,\n mobile_forward,\n winger\n}\n\nexport enum WaterpoloWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameWaterpoloPosition),\n workHand: enumField(WaterpoloWorkHand)\n }\n})\nexport class WaterpoloProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameWaterpoloPosition;\n workHand: WaterpoloWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum WrestballWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n work_hand: 'workHand'\n },\n relation: {\n workHand: enumField(WrestballWorkHand)\n }\n})\nexport class WrestballProfile extends BaseModel {\n id: number;\n userId: number;\n workHand: WrestballWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, DateField, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { UserProfile } from './user-profile';\nimport { File } from './file';\nimport { City } from './city';\nimport { BasketballProfile } from './basketball-profile';\nimport { VolleyballProfile } from './volleyball-profile';\nimport { HockeyProfile } from './hockey-profile';\nimport { FootballProfile } from './football-profile';\nimport { HandballProfile } from './handball-profile';\nimport { RugbyProfile } from './rugby-profile';\nimport { WaterpoloProfile } from './waterpolo-profile';\nimport { WrestballProfile } from './wrestball-profile';\n\nexport enum UserGender {\n male = 1,\n female\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n last_name: 'lastName',\n first_name: 'firstName',\n middle_name: 'middleName',\n email: 'email',\n phone: 'phone',\n birth_date: 'birthDate',\n photo: 'photo',\n profile: 'profile',\n basketball_profile: 'basketballProfile',\n volleyball_profile: 'volleyballProfile',\n hockey_profile: 'hockeyProfile',\n football_profile: 'footballProfile',\n handball_profile: 'handballProfile',\n rugby_profile: 'rugbyProfile',\n waterpolo_profile: 'waterpoloProfile',\n wrestball_profile: 'wrestballProfile',\n wizards: 'wizards',\n city: 'city',\n gender: 'gender',\n is_active: 'isActive',\n unique_code: 'uniqueCode',\n created_by_league_id: 'createdByLeagueId',\n },\n relation: {\n birthDate: DateField,\n photo: File,\n profile: UserProfile,\n basketballProfile: BasketballProfile,\n volleyballProfile: VolleyballProfile,\n hockeyProfile: HockeyProfile,\n footballProfile: FootballProfile,\n handballProfile: HandballProfile,\n rugbyProfile: RugbyProfile,\n waterpoloProfile: WaterpoloProfile,\n wrestballProfile: WrestballProfile,\n city: City,\n gender: enumField(UserGender)\n }\n})\nexport class User extends BaseModel {\n id: number;\n lastName: string;\n firstName: string;\n middleName: string;\n email: string;\n phone: string;\n birthDate: Date;\n profile: UserProfile;\n basketballProfile: BasketballProfile;\n volleyballProfile: VolleyballProfile;\n hockeyProfile: HockeyProfile;\n footballProfile: FootballProfile;\n handballProfile: HandballProfile;\n rugbyProfile: RugbyProfile;\n waterpoloProfile: WaterpoloProfile;\n wrestballProfile: WrestballProfile;\n photo: File;\n wizards: string[];\n city: City;\n gender: UserGender;\n isActive: boolean;\n uniqueCode: string;\n createdByLeagueId: number;\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(user: User): any {\n return null;\n }\n\n get fullName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n get age(): number {\n if (!this.birthDate) {\n return null;\n }\n const diff = (new Date()).getTime() - this.birthDate.getTime();\n return Math.floor(diff / (1000 * 60 * 60 * 24 * 365.25));\n }\n}\n","import { ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateField } from './util';\nimport { File } from './file';\nimport { Sport, SportTypes } from './sport';\nimport { User } from './user';\nimport { City } from './city';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n sport: 'sport',\n logo: 'logo',\n owner: 'owner',\n city: 'city',\n users_count: 'usersCount',\n won_games_count: 'wonGamesCount',\n games_count: 'gamesCount',\n score_sum: 'scoreSum',\n closest_game_datetime: 'closestGameDatetime',\n created_by_league_id: 'createdByLeagueId',\n unique_code: 'uniqueCode',\n },\n relation: {\n sport: Sport,\n logo: File,\n owner: User,\n city: City,\n closestGameDatetime: DateField,\n }\n})\nexport class Team extends BaseModel {\n id: number;\n name: string;\n sport: Sport;\n logo: File;\n owner: User;\n city: City;\n usersCount: number;\n wonGamesCount: number;\n gamesCount: number;\n scoreSum: number;\n closestGameDatetime: Date;\n createdByLeagueId: number;\n uniqueCode: string;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n if (this.sport.isHandball()) {\n classList.push('empty-logo-handball');\n }\n if (this.sport.isRugby()) {\n classList.push('empty-logo-rugby');\n }\n if (this.sport.isWaterpolo()) {\n classList.push('empty-logo-waterpolo');\n }\n if (this.sport.isWrestball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.id === SportTypes.chess) {\n classList.push('empty-logo-chess');\n }\n if (this.sport.id === SportTypes.table_tennis) {\n classList.push('empty-logo-table-tennis');\n }\n if (this.sport.id === SportTypes.billiard) {\n classList.push('empty-logo-billiard');\n }\n if (this.sport.id === SportTypes.darts) {\n classList.push('empty-logo-darts');\n }\n if (this.sport.id === SportTypes.badminton) {\n classList.push('empty-logo-badminton');\n }\n if (this.sport.id === SportTypes.padel_tennis) {\n classList.push('empty-logo-padel-tennis');\n }\n if (this.sport.id === SportTypes.other_dota) {\n classList.push('empty-logo-dota');\n }\n if (this.sport.id === SportTypes.other_fifa) {\n classList.push('empty-logo-fifa');\n }\n return classList.join(' ');\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(team: Team): any {\n return null;\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField } from './util';\nimport { User } from './user';\n\n\nexport enum OrganizationStatuses {\n active = 1,\n blocked,\n not_confirmed\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n owner_id: 'ownerId',\n owner: 'owner',\n status: 'status',\n name: 'name',\n phone: 'phone',\n email: 'email',\n unpaid_bills_sum: 'unpaidBillsSum',\n unpaid_game_bills_sum: 'unpaidGameBillsSum',\n },\n relation: {\n owner: User,\n status: enumField(OrganizationStatuses)\n }\n})\nexport class Organization extends BaseModel {\n id: number;\n ownerId: number;\n owner: User;\n status: OrganizationStatuses;\n name: string;\n phone: string;\n email: string;\n unpaidBillsSum: number;\n unpaidGameBillsSum: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { Organization } from './organization';\nimport { File } from './file';\nimport { Sport } from './sport';\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n logo: 'logo',\n contact_email: 'contactEmail',\n contact_phone: 'contactPhone',\n name: 'name',\n alias: 'alias',\n domain: 'domain',\n sport: 'sport',\n description: 'description',\n social_links: 'socialLinks',\n links: 'links',\n organization: 'organization',\n tournaments_count: 'tournamentsCount',\n documents_count: 'documentsCount',\n closest_game_datetime: 'closestGameDatetime',\n cover: 'cover',\n cover_mobile: 'coverMobile',\n about: 'about',\n locale: 'locale',\n },\n relation: {\n organization: Organization,\n logo: File,\n cover: File,\n coverMobile: File,\n sport: Sport,\n }\n})\nexport class League extends BaseModel {\n id: number;\n logo: File;\n contactEmail: string;\n contactPhone: string;\n name: string;\n alias: string;\n domain: string;\n sport: Sport;\n description: string;\n socialLinks: string[];\n links: string[];\n organization: Organization;\n tournamentsCount: number;\n documentsCount: number;\n closestGameDatetime: string;\n cover: File;\n coverMobile: File;\n about: string;\n locale: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get vkLink(): string {\n return this.socialLinks.find(link => link.indexOf('vk.com/') > -1);\n }\n\n get fbLink(): string {\n return this.socialLinks.find(link => link.indexOf('facebook.com/') > -1);\n }\n\n get instaLink(): string {\n return this.socialLinks.find(link => link.indexOf('instagram.com/') > -1);\n }\n\n get youtubeLink(): string {\n return this.socialLinks.find(link => link.indexOf('youtube.com/') > -1);\n }\n\n get telegramLink(): string {\n return this.socialLinks.find(link =>\n link.substr(0, 13) === 'https://t.me/' ||\n link.substr(0, 17) === 'https://www.t.me/'\n );\n }\n\n get tiktokLink(): string {\n return this.socialLinks.find(link => link.indexOf('tiktok.com/') > -1);\n }\n\n checkRuDomain(): boolean {\n const domainSplit = this.domain.split('.');\n return domainSplit[(domainSplit.length - 1)] === 'ru';\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField, DateField } from './util';\nimport { File } from './file';\n\nexport enum TournamentSeasonStatuses {\n open,\n in_progress,\n closed,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'alias',\n logo: 'logo',\n cover: 'cover',\n preview_image: 'previewImage',\n status: 'status',\n start_date: 'startDate',\n closed_date: 'closedDate',\n tournaments: 'tournaments',\n },\n relation: {\n logo: File,\n cover: File,\n previewImage: File,\n status: enumField(TournamentSeasonStatuses),\n startDate: DateField,\n closedDate: DateField,\n }\n})\nexport class TournamentSeason extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n previewImage: File;\n status: TournamentSeasonStatuses;\n startDate: Date;\n closedDate: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, DateTimeField, ToBackHook, ToFrontHook } from './util';\nimport { City } from './city';\nimport { File } from './file';\nimport { League } from './league';\nimport { Sport } from './sport';\nimport { Team } from './team';\nimport { TournamentSeason } from './tournament-season';\n\nexport enum TournamentTypes {\n group = 'group',\n elimination = 'elimination',\n fiba = 'fiba',\n swiss = 'swiss',\n}\n\nexport enum TournamentStatuses {\n open,\n in_progress,\n closed,\n}\n\nexport enum TournamentGender {\n male= 1,\n female,\n all\n}\n\nexport enum BasketballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum VolleyballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum RugbyStatisticTypes {\n light = 1,\n standard,\n}\n\nexport enum WaterpoloStatisticTypes {\n standard = 1,\n light,\n}\n\nexport enum WrestballStatisticTypes {\n standard = 1,\n}\n\nexport enum GameTimeTypes {\n clean = 1,\n dirty,\n}\n\nexport enum OvertimeTypes {\n to_score_total = 1,\n to_score_diff,\n time,\n without_overtime,\n to_first_goal,\n to_first_goal_and_bullitts,\n bullitts,\n penalties,\n time_and_penalties,\n time_and_first_goal\n}\n\nexport enum TimerTypes {\n backward = 1,\n forward,\n}\n\nexport enum SubstituteManageTypes {\n goalkeeper_only = 1,\n additional_screen,\n one_screen,\n split_screen,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n gender: 'gender',\n birth_year_from: 'birthYearFrom',\n birth_year_to: 'birthYearTo',\n max_team_players: 'maxTeamPlayers',\n max_game_players: 'maxGamePlayers',\n type: 'type',\n tours_count: 'toursCount',\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_score: 'overtimeScore',\n game_type: 'gameType',\n timeout_count: 'timeoutCount',\n timeout_time: 'timeoutTime',\n substitute_count: 'substituteCount',\n game_up_to_score: 'gameUpToScore',\n volleyball_score_in_set: 'volleyballScoreInSet',\n volleyball_score_in_last_set: 'volleyballScoreInLastSet',\n manage_team_application: 'manageTeamApplication',\n recruitment_is_open: 'recruitmentIsOpen',\n transfer_is_open: 'transferIsOpen',\n basketball_statistic_type: 'basketballStatisticType',\n volleyball_statistic_type: 'volleyballStatisticType',\n rugby_statistic_type: 'rugbyStatisticType',\n waterpolo_statistic_type: 'waterpoloStatisticType',\n wrestball_statistic_type: 'wrestballStatisticType',\n shot_clock_enabled: 'shotClockEnabled',\n game_time_type: 'gameTimeType',\n with_result_table: 'withResultTable',\n free_substitute_enabled: 'freeSubstituteEnabled',\n substitute_manage_enabled: 'substituteManageEnabled',\n substitute_manage_mode: 'substituteManageMode',\n bonus_points_enabled: 'bonusPointsEnabled',\n minor_penalty_time: 'minorPenaltyTime',\n major_penalty_time: 'majorPenaltyTime',\n misconduct_penalty_time: 'misconductPenaltyTime',\n game_misconduct_penalty_time: 'gameMisconductPenaltyTime',\n match_penalty_time: 'matchPenaltyTime',\n timer_type: 'timerType',\n hide_on_league_main_page: 'hideOnLeagueMainPage',\n wrestler_scrums_count: 'wrestlerScrumsCount',\n wrestlers_count: 'wrestlersCount',\n },\n relation: {\n type: enumField(TournamentTypes),\n gender: enumField(TournamentGender),\n basketballStatisticType: enumField(BasketballStatisticTypes),\n volleyballStatisticType: enumField(VolleyballStatisticTypes),\n rugbyStatisticType: enumField(RugbyStatisticTypes),\n waterpoloStatisticType: enumField(WaterpoloStatisticTypes),\n wrestballStatisticType: enumField(WrestballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n overtimeType: enumField(OvertimeTypes),\n timerType: enumField(TimerTypes),\n substituteManageMode: enumField(SubstituteManageTypes),\n }\n})\nexport class TournamentSettings extends BaseModel {\n private _substituteManageMode: SubstituteManageTypes;\n\n id: number;\n gender: TournamentGender;\n birthYearFrom: number;\n birthYearTo: number;\n maxTeamPlayers: number;\n maxGamePlayers: number;\n type: TournamentTypes;\n toursCount: number;\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n gameType: string;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n gameUpToScore: number;\n volleyballScoreInSet: number;\n volleyballScoreInLastSet: number;\n manageTeamApplication: boolean;\n recruitmentIsOpen: boolean;\n transferIsOpen: boolean;\n basketballStatisticType: BasketballStatisticTypes;\n volleyballStatisticType: VolleyballStatisticTypes;\n rugbyStatisticType: RugbyStatisticTypes;\n waterpoloStatisticType: WaterpoloStatisticTypes;\n wrestballStatisticType: WrestballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n withResultTable: boolean;\n freeSubstituteEnabled: boolean;\n bonusPointsEnabled: boolean;\n substituteManageEnabled: boolean;\n minorPenaltyTime: number;\n majorPenaltyTime: number;\n misconductPenaltyTime: number;\n gameMisconductPenaltyTime: number;\n matchPenaltyTime: number;\n timerType: TimerTypes;\n hideOnLeagueMainPage: boolean;\n wrestlerScrumsCount: number;\n wrestlersCount: number;\n\n get substituteManageMode(): SubstituteManageTypes {\n if (this._substituteManageMode) {\n return this._substituteManageMode;\n }\n if (this.substituteManageEnabled) {\n return SubstituteManageTypes.split_screen;\n }\n return SubstituteManageTypes.goalkeeper_only;\n }\n\n set substituteManageMode(value: SubstituteManageTypes) {\n this._substituteManageMode = value;\n }\n\n get genderTitle(): string {\n const yearDiff = new Date().getFullYear() - this.birthYearFrom;\n if (this.gender === TournamentGender.male) {\n if (yearDiff < 15) {\n return 'Мальчики';\n }\n if (yearDiff < 21) {\n return 'Юноши';\n }\n return 'Мужчины';\n }\n if (this.gender === TournamentGender.female) {\n if (yearDiff < 15) {\n return 'Девочки';\n }\n if (yearDiff < 21) {\n return 'Девушки';\n }\n return 'Женщины';\n }\n return 'Смешанный';\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n tournament_id: 'tournamentId',\n name: 'name',\n logo: 'logo',\n team: 'team',\n points: 'points',\n },\n relation: {\n logo: File,\n team: Team,\n }\n})\nexport class TournamentTeamWinner extends BaseModel {\n id: number;\n teamId: number;\n tournamentId: number;\n name: string;\n logo: File;\n team: Team;\n points: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'alias',\n logo: 'logo',\n cover: 'cover',\n cover_mobile: 'coverMobile',\n preview_image: 'previewImage',\n city: 'city',\n sport: 'sport',\n location: 'location',\n description: 'description',\n date: 'date',\n date_end: 'dateEnd',\n price: 'price',\n regulation_files: 'regulationFiles',\n settings: 'settings',\n league: 'league',\n teams_count: 'teamsCount',\n closest_game_datetime: 'closestGameDatetime',\n status: 'status',\n team_winner: 'teamWinner',\n team_second: 'teamSecond',\n team_third: 'teamThird',\n season: 'season',\n season_id: 'seasonId',\n game_price: 'gamePrice',\n season_tournament_id: 'seasonTournamentId',\n sort: 'sort',\n },\n relation: {\n logo: File,\n cover: File,\n coverMobile: File,\n previewImage: File,\n city: City,\n sport: Sport,\n regulationFile: File,\n settings: TournamentSettings,\n date: DateTimeField,\n dateEnd: DateTimeField,\n league: League,\n status: enumField(TournamentStatuses),\n teamWinner: TournamentTeamWinner,\n teamSecond: TournamentTeamWinner,\n teamThird: TournamentTeamWinner,\n season: TournamentSeason,\n }\n})\nexport class Tournament extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n coverMobile: File;\n previewImage: File;\n city: City;\n sport: Sport;\n location: string;\n description: string;\n date: Date;\n dateEnd: Date;\n price: number;\n regulationFiles: File[];\n settings: TournamentSettings;\n league: League;\n teamsCount: number;\n closestGameDatetime: string;\n status: TournamentStatuses;\n teamWinner: TournamentTeamWinner;\n teamSecond: TournamentTeamWinner;\n teamThird: TournamentTeamWinner;\n season: TournamentSeason;\n seasonId: number;\n gamePrice: number;\n seasonTournamentId: number;\n sort: number;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n if (this.sport.isHandball()) {\n classList.push('empty-logo-handball');\n }\n if (this.sport.isRugby()) {\n classList.push('empty-logo-rugby');\n }\n if (this.sport.isWaterpolo()) {\n classList.push('empty-logo-waterpolo');\n }\n return classList.join(' ');\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { BasketballStatisticTypes, GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n game_up_to_score: 'gameUpToScore',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_score: 'overtimeScore',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n statistic_type: 'statisticType',\n shot_clock_enabled: 'shotClockEnabled',\n game_time_type: 'gameTimeType',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n statisticType: enumField(BasketballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class BasketballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n gameUpToScore: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n statisticType: BasketballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n timerType: TimerTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { VolleyballStatisticTypes } from './tournament';\n\nexport enum VolleyballGameTypes {\n best_of_five = 1,\n best_of_three\n}\n\n@ModelInstance({\n mappingFields: {\n game_type: 'gameType',\n timeout_count: 'timeoutCount',\n timeout_time: 'timeoutTime',\n substitute_count: 'substituteCount',\n score_in_set: 'scoreInSet',\n score_in_last_set: 'scoreInLastSet',\n statistic_type: 'statisticType',\n libero_user_ids: 'liberoUserIds',\n },\n relation: {\n gameType: enumField(VolleyballGameTypes),\n statisticType: enumField(VolleyballStatisticTypes),\n }\n})\nexport class VolleyballGameConfig extends BaseModel {\n gameType: VolleyballGameTypes;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n scoreInSet: number;\n scoreInLastSet: number;\n statisticType: VolleyballStatisticTypes;\n liberoUserIds: number[];\n\n get setsCount(): number {\n return this.gameType === VolleyballGameTypes.best_of_three ? 3 : 5;\n }\n\n getSetMaxScore(set: number) {\n return set === this.setsCount ? this.scoreInLastSet : this.scoreInSet;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n address: 'address',\n league_id: 'leagueId',\n active_games_count: 'activeGamesCount',\n }\n})\nexport class LeagueCourt extends BaseModel {\n id: number;\n name: string;\n address: string;\n leagueId: number;\n activeGamesCount: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n original_photo: 'originalPhoto',\n list_photo: 'listPhoto',\n detail_photo: 'detailPhoto',\n game: 'game',\n tournament: 'tournament',\n game_id: 'gameId',\n tournament_id: 'tournament_id',\n video_url: 'videoUrl',\n video_preview: 'videoPreview',\n is_live: 'isLive',\n },\n relation: {\n originalPhoto: File,\n listPhoto: File,\n detailPhoto: File,\n videoPreview: File\n }\n})\nexport class MediaItem extends BaseModel {\n id: number;\n originalPhoto: File;\n listPhoto: File;\n detailPhoto: File;\n gameId: number;\n tournamentId: number;\n videoUrl: string;\n videoPreview: File;\n isLive: boolean;\n\n get isVideo(): boolean {\n return Boolean(this.videoUrl);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n substitute_manage_enabled: 'substituteManageEnabled',\n minor_penalty_time: 'minorPenaltyTime',\n major_penalty_time: 'majorPenaltyTime',\n misconduct_penalty_time: 'misconductPenaltyTime',\n game_misconduct_penalty_time: 'gameMisconductPenaltyTime',\n match_penalty_time: 'matchPenaltyTime',\n playoff_series_overtime_type: 'playoffSeriesOvertimeType',\n playoff_series_overtime_time: 'playoffSeriesOvertimeTime',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n playoffSeriesOvertimeType: enumField(OvertimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class HockeyGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteManageEnabled: boolean;\n minorPenaltyTime: number;\n majorPenaltyTime: number;\n misconductPenaltyTime: number;\n gameMisconductPenaltyTime: number;\n matchPenaltyTime: number;\n playoffSeriesOvertimeType: OvertimeTypes;\n playoffSeriesOvertimeTime: number;\n timerType: TimerTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get overtimePeriod(): number {\n return this.periodsCount + 1;\n }\n\n get bullitsPeriod(): number {\n return this.periodsCount + 2;\n }\n\n get playoffBullitsPeriod(): number {\n if (this.playoffSeriesOvertimeType === OvertimeTypes.to_first_goal_and_bullitts) {\n return this.periodsCount + 4;\n } else {\n return this.periodsCount + 3;\n }\n }\n\n get playoffOvertimePeriod(): number {\n if (this.playoffSeriesOvertimeType === OvertimeTypes.to_first_goal_and_bullitts) {\n return this.periodsCount + 3;\n } else {\n return null;\n }\n }\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_periods: 'overtimePeriods',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n substitute_count: 'substituteCount',\n free_substitute_enabled: 'freeSubstituteEnabled',\n substitute_manage_enabled: 'substituteManageEnabled',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class FootballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimePeriods: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteCount: number;\n freeSubstituteEnabled: boolean;\n substituteManageEnabled: boolean;\n timerType: TimerTypes;\n\n get penaltyPeriod(): number {\n if (this.overtimeType !== OvertimeTypes.time_and_penalties) {\n return +this.periodsCount + 1;\n }\n return +this.periodsCount + this.overtimePeriods + 1;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n substitute_manage_enabled: 'substituteManageEnabled',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class HandballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteManageEnabled: boolean;\n timerType: TimerTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","export function generateArray(length: number): number[] {\n if (+length <= 0) {\n return [];\n }\n return Array.apply(null, Array(length)).map((_, i) => i + 1);\n}\n\nexport function getArrayChunks(array: any[], length: number): any[][] {\n const chunks = [];\n const chunkLength = Math.ceil(array.length / length);\n if (chunkLength === 0) {\n return [array];\n }\n for (let i = 0; i < chunkLength; i++) {\n chunks.push(array.slice(i * length, (i + 1) * length));\n }\n return chunks;\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { generateArray } from '../utils/array';\n\nexport enum PlayoffTypes {\n double_elimination = 'double_elimination',\n elimination = 'elimination'\n}\n\n@ModelInstance({\n mappingFields: {\n rounds: 'rounds',\n final_rounds: 'finalRounds',\n third_place_rounds: 'thirdPlaceRounds',\n loser_final_rounds: 'loserFinalRounds',\n teams_count: 'teamsCount',\n type: 'type',\n min_player_games_count: 'minPlayerGamesCount',\n min_player_time: 'minPlayerTime',\n },\n relation: {\n type: enumField(PlayoffTypes)\n }\n})\nexport class PlayoffSettings extends BaseModel {\n rounds: number;\n finalRounds: number;\n thirdPlaceRounds: number;\n loserFinalRounds: number;\n teamsCount: number;\n type: PlayoffTypes;\n minPlayerGamesCount: number;\n minPlayerTime: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n settings: 'settings',\n tournament_id: 'tournamentId',\n tournament_stage_id: 'tournamentStageId',\n is_official: 'isOfficial',\n tournament_round_id: 'tournamentRoundId',\n division_id: 'divisionId',\n winner_place: 'winnerPlace',\n },\n relation: {\n settings: PlayoffSettings\n }\n})\nexport class Playoff extends BaseModel {\n id: number;\n name: string;\n settings: PlayoffSettings;\n tournamentId: number;\n tournamentStageId: number;\n isOfficial: boolean;\n tournamentRoundId: number;\n divisionId: number;\n winnerPlace: number;\n private stages: {title: string, value: number}[] = [];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get stagesCount(): number {\n return Math.log(this.settings.teamsCount) / Math.log(2);\n }\n\n getPlayoffStages() {\n if (this.stages.length === 0 && this.settings.teamsCount) {\n const stagesCount = Math.log(this.settings.teamsCount) / Math.log(2);\n this.stages = generateArray(stagesCount).map(stage => {\n const playoffStage = this.settings.teamsCount / 2 ** stage;\n let title = '';\n if (playoffStage === 1) {\n title = 'Финал';\n } else {\n title = `1 / ${playoffStage}`;\n }\n return {\n value: stage,\n title\n };\n });\n }\n return this.stages;\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentTeam } from './tournament-team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n sort: 'sort',\n tournament_stage_id: 'tournamentStageId',\n tournament_round_id: 'tournamentRoundId',\n division_id: 'divisionId',\n }\n})\nexport class TournamentGroup extends BaseModel {\n id: number;\n name: string;\n sort: number;\n tournamentStageId: number;\n tournamentRoundId: number;\n divisionId: number;\n teams: TournamentTeam[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { GameTimeTypes, OvertimeTypes, RugbyStatisticTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_periods: 'overtimePeriods',\n max_game_players: 'maxGamePlayers',\n game_time_type: 'gameTimeType',\n substitute_count: 'substituteCount',\n free_substitute_enabled: 'freeSubstituteEnabled',\n statistic_type: 'statisticType',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n statisticType: enumField(RugbyStatisticTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class RugbyGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimePeriods: number;\n maxGamePlayers: number;\n gameTimeType: GameTimeTypes;\n substituteCount: number;\n freeSubstituteEnabled: boolean;\n statisticType: RugbyStatisticTypes;\n timerType: TimerTypes;\n\n get penaltyPeriod(): number {\n if (this.overtimeType !== OvertimeTypes.time_and_penalties) {\n return +this.periodsCount + 1;\n }\n return +this.periodsCount + this.overtimePeriods + 1;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes, TimerTypes, WaterpoloStatisticTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n substitute_manage_enabled: 'substituteManageEnabled',\n shot_clock_enabled: 'shotClockEnabled',\n statistic_type: 'statisticType',\n timer_type: 'timerType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n statisticType: enumField(WaterpoloStatisticTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class WaterpoloGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n substituteManageEnabled: boolean;\n shotClockEnabled: boolean;\n statisticType: WaterpoloStatisticTypes;\n timerType: TimerTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get overtimePeriod(): number {\n return this.periodsCount + 1;\n }\n\n get bullitsPeriod(): number {\n return this.periodsCount + 2;\n }\n\n get playoffBullitsPeriod(): number {\n return this.periodsCount + 3;\n }\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { WrestballStatisticTypes, GameTimeTypes, OvertimeTypes, TimerTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n game_up_to_score: 'gameUpToScore',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_score: 'overtimeScore',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n statistic_type: 'statisticType',\n shot_clock_enabled: 'shotClockEnabled',\n game_time_type: 'gameTimeType',\n timer_type: 'timerType',\n wrestler_scrums_count: 'wrestlerScrumsCount',\n wrestlers_count: 'wrestlersCount',\n wrestler_user_ids: 'wrestlerUserIds',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n statisticType: enumField(WrestballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n timerType: enumField(TimerTypes),\n }\n})\nexport class WrestballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n gameUpToScore: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n statisticType: WrestballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n timerType: TimerTypes;\n wrestlerScrumsCount: number;\n wrestlersCount: number;\n wrestlerUserIds: number[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField, listField } from './util';\nimport { Team } from './team';\nimport { BasketballGameConfig } from './basketball-game-config';\nimport { VolleyballGameConfig } from './volleyball-game-config';\nimport { LeagueCourt } from './league-court';\nimport { MediaItem } from './media-item';\nimport { HockeyGameConfig } from './hockey-game-config';\nimport { Tournament } from './tournament';\nimport { FootballGameConfig } from './football-game-config';\nimport { HandballGameConfig } from './handball-game-config';\nimport { Playoff } from './playoff';\nimport { TournamentGroup } from './tournament-group';\nimport { File } from './file';\nimport { RugbyGameConfig } from './rugby-game-config';\nimport { WaterpoloGameConfig } from './waterpolo-game-config';\nimport { Sport } from './sport';\nimport { WrestballGameConfig } from './wrestball-game-config';\n\nexport enum GameStatuses {\n open = 1,\n in_progress,\n closed,\n archived,\n draft\n}\n\nexport enum GameResultTypes {\n team_won = 1,\n competitor_team_won,\n team_technical_defeat,\n competitor_team_technical_defeat,\n draw\n}\n\n@ModelInstance({\n mappingFields: {\n mhl_carousel: 'mhlCarousel',\n }\n})\nexport class GameAdditionalData {\n mhlCarousel: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n nickname: 'nickname',\n color: 'color',\n }\n})\nexport class GameTeamAdditionalData {\n nickname: string;\n color: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n logo: 'logo',\n additional_data: 'additionalData',\n },\n relation: {\n logo: File,\n additionalData: GameTeamAdditionalData,\n }\n})\nexport class TournamentTeamShort extends BaseModel {\n id: number;\n name: string;\n logo: File;\n additionalData: GameTeamAdditionalData;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n tournament_team: 'tournamentTeam',\n score: 'score',\n score_by_period: 'scoreByPeriod',\n game_ids: 'gameIds',\n },\n relation: {\n team: Team,\n tournamentTeam: TournamentTeamShort,\n }\n})\nexport class MhlCarouselTeam extends BaseModel {\n team: Team;\n tournamentTeam: TournamentTeamShort;\n score: number;\n scoreByPeriod: {[key: string]: number};\n gameIds: number[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game_ids: 'gameIds',\n winner_team_id: 'winnerTeamId',\n teams: 'teams',\n },\n relation: {\n teams: listField(MhlCarouselTeam),\n }\n})\nexport class MhlCarousel extends BaseModel {\n id: string;\n gameIds: number[];\n winnerTeamId: number;\n teams: MhlCarouselTeam[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n status: 'status',\n team: 'team',\n tournament_team: 'tournamentTeam',\n tournament_team_id: 'tournamentTeamId',\n team_id: 'teamId',\n competitor_team: 'competitorTeam',\n competitor_tournament_team: 'competitorTournamentTeam',\n competitor_tournament_team_id: 'competitorTournamentTeamId',\n competitor_team_id: 'competitorTeamId',\n competitor_team_name: 'competitorTeamName',\n datetime: 'datetime',\n location: 'location',\n team_score: 'teamScore',\n competitor_team_score: 'competitorTeamScore',\n result_type: 'resultType',\n playoff_number: 'playoffNumber',\n tournament_id: 'tournamentId',\n tournament_tour: 'tournamentTour',\n game_config: 'gameConfig',\n basketball_game_config: 'basketballGameConfig',\n volleyball_game_config: 'volleyballGameConfig',\n hockey_game_config: 'hockeyGameConfig',\n football_game_config: 'footballGameConfig',\n handball_game_config: 'handballGameConfig',\n rugby_game_config: 'rugbyGameConfig',\n waterpolo_game_config: 'waterpoloGameConfig',\n wrestball_game_config: 'wrestballGameConfig',\n score_by_period: 'scoreByPeriod',\n playoff_stage: 'playoffStage',\n playoff_round: 'playoffRound',\n tournament_stage_id: 'tournamentStageId',\n tournament_playoff_id: 'tournamentPlayoffId',\n tournament_playoff: 'tournamentPlayoff',\n tournament_court: 'tournamentCourt',\n media_count: 'mediaCount',\n media_live_count: 'mediaLiveCount',\n media: 'media',\n tournament: 'tournament',\n tournament_group: 'tournamentGroup',\n additional_data: 'additionalData',\n mhl_carousel: 'mhlCarousel',\n },\n relation: {\n status: enumField(GameStatuses),\n team: Team,\n tournamentTeam: TournamentTeamShort,\n competitorTeam: Team,\n competitorTournamentTeam: TournamentTeamShort,\n datetime: DateTimeField,\n resultType: enumField(GameResultTypes),\n basketballGameConfig: BasketballGameConfig,\n volleyballGameConfig: VolleyballGameConfig,\n hockeyGameConfig: HockeyGameConfig,\n footballGameConfig: FootballGameConfig,\n handballGameConfig: HandballGameConfig,\n rugbyGameConfig: RugbyGameConfig,\n waterpoloGameConfig: WaterpoloGameConfig,\n wrestballGameConfig: WrestballGameConfig,\n tournamentPlayoff: Playoff,\n tournamentCourt: LeagueCourt,\n media: listField(MediaItem),\n tournament: Tournament,\n tournamentGroup: TournamentGroup,\n additionalData: GameAdditionalData,\n mhlCarousel: MhlCarousel,\n }\n})\nexport class Game extends BaseModel {\n private _basketballGameConfig: BasketballGameConfig;\n private _volleyballGameConfig: VolleyballGameConfig;\n private _hockeyGameConfig: HockeyGameConfig;\n private _footballGameConfig: FootballGameConfig;\n private _handballGameConfig: HandballGameConfig;\n private _rugbyGameConfig: RugbyGameConfig;\n private _waterpoloGameConfig: WaterpoloGameConfig;\n private _wrestballGameConfig: WrestballGameConfig;\n\n id: number;\n status: GameStatuses;\n team: Team;\n tournamentTeam: TournamentTeamShort;\n teamId: number;\n tournamentTeamId: number;\n competitorTeam: Team;\n competitorTournamentTeam: TournamentTeamShort;\n competitorTeamId: number;\n competitorTournamentTeamId: number;\n competitorTeamName: string;\n gameConfig: any;\n datetime: Date;\n location: string;\n teamScore: number;\n competitorTeamScore: number;\n resultType: GameResultTypes;\n playoffNumber: string;\n tournamentId: number;\n tournamentTour: number;\n scoreByPeriod: any;\n playoffStage: string;\n playoffRound: number;\n tournamentStageId: number;\n tournamentPlayoffId: number;\n tournamentPlayoff: Playoff;\n tournamentCourt: LeagueCourt;\n mediaCount: number;\n mediaLiveCount: number;\n media: MediaItem[];\n tournament: Tournament;\n tournamentGroup: TournamentGroup;\n additionalData: GameAdditionalData;\n mhlCarousel: MhlCarousel;\n\n get basketballGameConfig(): BasketballGameConfig {\n if (this._basketballGameConfig && this._basketballGameConfig.periodsCount) {\n return this._basketballGameConfig;\n }\n if (this.gameConfig) {\n this._basketballGameConfig = BasketballGameConfig.toFront(this.gameConfig);\n }\n return this._basketballGameConfig;\n }\n\n set basketballGameConfig(value) {\n this._basketballGameConfig = value;\n }\n\n get volleyballGameConfig(): VolleyballGameConfig {\n if (this._volleyballGameConfig && this._volleyballGameConfig.setsCount) {\n return this._volleyballGameConfig;\n }\n if (this.gameConfig) {\n this._volleyballGameConfig = VolleyballGameConfig.toFront(this.gameConfig);\n }\n return this._volleyballGameConfig;\n }\n\n set volleyballGameConfig(value) {\n this._volleyballGameConfig = value;\n }\n\n get hockeyGameConfig(): HockeyGameConfig {\n if (this._hockeyGameConfig && this._hockeyGameConfig.periodsCount) {\n return this._hockeyGameConfig;\n }\n if (this.gameConfig) {\n this._hockeyGameConfig = HockeyGameConfig.toFront(this.gameConfig);\n }\n return this._hockeyGameConfig;\n }\n\n set hockeyGameConfig(value) {\n this._hockeyGameConfig = value;\n }\n\n get handballGameConfig(): HandballGameConfig {\n if (this._handballGameConfig && this._handballGameConfig.periodsCount) {\n return this._handballGameConfig;\n }\n if (this.gameConfig) {\n this._handballGameConfig = HandballGameConfig.toFront(this.gameConfig);\n }\n return this._handballGameConfig;\n }\n\n set handballGameConfig(value) {\n this._handballGameConfig = value;\n }\n\n get footballGameConfig(): FootballGameConfig {\n if (this._footballGameConfig && this._footballGameConfig.periodsCount) {\n return this._footballGameConfig;\n }\n if (this.gameConfig) {\n this._footballGameConfig = FootballGameConfig.toFront(this.gameConfig);\n }\n return this._footballGameConfig;\n }\n\n set footballGameConfig(value) {\n this._footballGameConfig = value;\n }\n\n get rugbyGameConfig(): RugbyGameConfig {\n if (this._rugbyGameConfig && this._rugbyGameConfig.periodsCount) {\n return this._rugbyGameConfig;\n }\n if (this.gameConfig) {\n this._rugbyGameConfig = RugbyGameConfig.toFront(this.gameConfig);\n }\n return this._rugbyGameConfig;\n }\n\n set rugbyGameConfig(value) {\n this._rugbyGameConfig = value;\n }\n\n get waterpoloGameConfig(): WaterpoloGameConfig {\n if (this._waterpoloGameConfig && this._waterpoloGameConfig.periodsCount) {\n return this._waterpoloGameConfig;\n }\n if (this.gameConfig) {\n this._waterpoloGameConfig = WaterpoloGameConfig.toFront(this.gameConfig);\n }\n return this._waterpoloGameConfig;\n }\n\n set waterpoloGameConfig(value) {\n this._waterpoloGameConfig = value;\n }\n\n get wrestballGameConfig(): WrestballGameConfig {\n if (this._wrestballGameConfig && this._wrestballGameConfig.periodsCount) {\n return this._wrestballGameConfig;\n }\n if (this.gameConfig) {\n this._wrestballGameConfig = WrestballGameConfig.toFront(this.gameConfig);\n }\n return this._wrestballGameConfig;\n }\n\n set wrestballGameConfig(value) {\n this._wrestballGameConfig = value;\n }\n\n get scoreByPeriodList(): {period: number, teamScore: number, competitorTeamScore: number}[] {\n if (!this.scoreByPeriod) {\n return [];\n }\n return Object.keys(this.scoreByPeriod).map(period => ({\n period: +period,\n teamScore: this.scoreByPeriod[period][0],\n competitorTeamScore: this.scoreByPeriod[period][1]\n }));\n }\n\n get isClosed(): boolean {\n return this.status === GameStatuses.closed;\n }\n\n get isTeamWon() {\n return [GameResultTypes.team_won, GameResultTypes.competitor_team_technical_defeat].includes(this.resultType);\n }\n\n get isCompetitorTeamWon() {\n return [GameResultTypes.competitor_team_won, GameResultTypes.team_technical_defeat].includes(this.resultType);\n }\n\n get teamWinnerId() {\n if (!this.isClosed) {\n return null;\n }\n if (this.isTeamWon) {\n return this.team.id || this.teamId;\n }\n if (this.isCompetitorTeamWon) {\n return this.competitorTeam.id || this.competitorTeamId;\n }\n return null;\n }\n\n get teamLoserId() {\n if (!this.isClosed) {\n return null;\n }\n if (this.isTeamWon) {\n return this.competitorTeam.id || this.competitorTeamId;\n }\n if (this.isCompetitorTeamWon) {\n return this.team.id || this.teamId;\n }\n return null;\n }\n\n get sport(): Sport {\n if (this.tournament?.sport?.id) {\n return this.tournament.sport;\n }\n if (this.team?.sport?.id) {\n return this.team.sport;\n }\n if (this.competitorTeam?.sport?.id) {\n return this.competitorTeam.sport;\n }\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","export function updateItemInArray(data: any[], item: any, force = false, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return data;\n }\n return data.map(v => {\n if (checkFunction && isFunction(checkFunction)) {\n if (!checkFunction(v)) {\n return v;\n }\n } else if (v.id !== item.id) {\n return v;\n }\n if (v.updatedAt && item.updatedAt && !force) {\n return v.updatedAt > item.updatedAt ? v : item;\n }\n return item;\n });\n}\n\nexport function updateItemsInArray(data: any[], items: any[], force: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n items.forEach(item => {\n data = updateItemInArray(data, item, force, checkFunction);\n });\n return data;\n}\n\nexport function patchItemInArray(data: any[], item: any, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return data;\n }\n return data.map(v => {\n if (checkFunction && isFunction(checkFunction)) {\n if (!checkFunction(v)) {\n return v;\n }\n } else if (v.id !== item.id) {\n return v;\n }\n return Object.assign(v, item);\n });\n}\n\nexport function addItemInArray(data: any[], item: any, atEnd: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return [item];\n }\n if (data.find(i => isFunction(checkFunction) ? checkFunction(i) : i.id === item.id)) {\n return data;\n }\n\n return atEnd\n ? [...data, item]\n : [item, ...data];\n}\n\nexport function addItemsInArray(data: any[], items: any[], atEnd: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n (!atEnd\n ? Object.assign([], items).reverse()\n : items\n ).forEach(item => {\n data = addItemInArray(data, item, atEnd, checkFunction);\n });\n return data;\n}\n\nexport function deleteItemFromArray(data: any[], item: any): any[] {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isFunction(item)) {\n return data.filter(i => !item(i));\n } else {\n return data.filter(v => v.id !== item.id);\n }\n}\n\nfunction isFunction(functionToCheck) {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { addItemInArray, addItemsInArray, deleteItemFromArray, updateItemInArray, updateItemsInArray } from '../utils/data';\nimport { StorageEngine } from './storage-engine';\n\nexport class Store {\n private data: {[key: string]: BehaviorSubject<any>} = {};\n\n constructor(private engine?: StorageEngine) {\n }\n\n get(key: string, defaultValue?: any): Observable<any> {\n return this.getSubject(key).pipe(\n map(item => item === undefined ? defaultValue : item),\n filter(item => item !== undefined)\n );\n }\n\n value(key: string, defaultValue?: any): any {\n return this.getSubject(key).value === undefined ? defaultValue : this.getSubject(key).value;\n }\n\n save(key: string, value: any): void {\n this.getSubject(key).next(value);\n if (this.engine) {\n this.engine.save(key, value);\n }\n }\n\n appendItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, true, checkFunction));\n }\n\n appendItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, true));\n }\n\n prependItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n prependItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n updateItem(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n updateItems(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemsInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n deleteItem(key: string, value: any): void {\n this.save(key, deleteItemFromArray(this.value(key) || [], value));\n }\n\n dispose(): void {\n for (const key of Object.keys(this.data)) {\n this.data[key].complete();\n delete this.data[key];\n }\n }\n\n clearStorageData(): void {\n if (this.engine) {\n this.engine.clear();\n }\n }\n\n getEngine(): StorageEngine {\n return this.engine;\n }\n\n private getSubject(key: string): BehaviorSubject<any> {\n if (!this.data[key]) {\n this.data[key] = new BehaviorSubject<any>(this.engine ? this.engine.get(key) : undefined);\n }\n return this.data[key];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '../storage/store';\n\n@Injectable({providedIn: 'root'})\nexport class BaseService {\n protected store = new Store();\n\n dispose(): void {\n this.store.dispose();\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { BaseService } from './base.service';\n\nconst CONFIG_STORE_KEY = 'config';\n\nexport const CONFIG_DATA = 'mtg-core-config-data';\n\n@Injectable({providedIn: 'root'})\nexport class ConfigService extends BaseService {\n constructor(\n @Optional() @Inject(CONFIG_DATA) private configData: any\n ) {\n super();\n if (configData) {\n this.initialize(configData);\n }\n }\n\n get config$() {\n return this.store.get(CONFIG_STORE_KEY);\n }\n\n get config() {\n return this.store.value(CONFIG_STORE_KEY) || {};\n }\n\n initialize(data: any): void {\n this.store.save(CONFIG_STORE_KEY, data);\n }\n\n set(key: string, value: any): void {\n this.store.save(CONFIG_STORE_KEY, {\n ...this.config,\n [key]: value\n });\n }\n\n get(key: string): any {\n return this.store.value(CONFIG_STORE_KEY) && this.store.value(CONFIG_STORE_KEY)[key];\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n cover: 'cover',\n },\n relation: {\n cover: File\n }\n})\nexport class TournamentDivision extends BaseModel {\n id: number;\n name: string;\n cover: File;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel } from './util';\nimport { File } from './file';\n\nexport class LeagueFieldBaseValue extends BaseModel {\n id: number;\n value: string;\n file: File;\n valueText: string;\n}\n","import { BaseModel } from './util';\n\nexport enum LeagueFieldTypes {\n text = 1,\n select,\n file,\n}\n\nexport class LeagueFieldBase extends BaseModel {\n private _variantsMapping = {};\n private _variants = [];\n\n id: number;\n leagueId: number;\n name: string;\n type: LeagueFieldTypes;\n isMultiple: boolean;\n sort: number;\n\n set variants(value: { uuid: string, name: string }[]) {\n this._variants = value;\n this._variantsMapping = value.reduce((acc, item) => ({\n ...acc,\n [item.uuid]: item.name\n }), {});\n }\n\n get variants(): {uuid: string, name: string}[] {\n return this._variants;\n }\n\n getName(uuid: string): string {\n return this._variantsMapping[uuid];\n }\n}\n","import { LeagueFieldBase, LeagueFieldTypes } from './league-field-base';\nimport { enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_id: 'leagueId',\n name: 'name',\n type: 'type',\n is_multiple: 'isMultiple',\n variants: 'variants',\n sort: 'sort',\n },\n relation: {\n type: enumField(LeagueFieldTypes)\n }\n})\nexport class LeagueTeamField extends LeagueFieldBase {\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { LeagueFieldBaseValue } from './league-field-base-value';\nimport { ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\nimport { LeagueTeamField } from './league-team-field';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_team_field_id: 'leagueTeamFieldId',\n league_team_field: 'leagueTeamField',\n value: 'value',\n file: 'file',\n value_text: 'valueText',\n },\n relation: {\n file: File,\n leagueTeamField: LeagueTeamField,\n }\n})\nexport class TournamentTeamFieldValue extends LeagueFieldBaseValue {\n leagueTeamFieldId: number;\n leagueTeamField: LeagueTeamField;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { Team } from './team';\nimport { TournamentGroup } from './tournament-group';\nimport { Game } from './game';\nimport { Tournament } from './tournament';\nimport { File } from './file';\nimport { TournamentDivision } from './tournament-division';\nimport { TournamentTeamFieldValue } from './tournament-team-field-value';\n\n@ModelInstance({\n mappingFields: {\n nickname: 'nickname',\n color: 'color',\n }\n})\nexport class TeamAdditionalData {\n nickname: string;\n color: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n logo: 'logo',\n team_photo: 'teamPhoto',\n team_uniform: 'teamUniform',\n team_id: 'teamId',\n tournament_id: 'tournamentId',\n tournament: 'tournament',\n team: 'team',\n group: 'group',\n division: 'division',\n final_standing: 'finalStanding',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n draw_games_count: 'drawGamesCount',\n lose_games_count: 'loseGamesCount',\n last_games_count: 'lastGamesCount',\n last_games_won: 'lastGamesWon',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n score_points_sum: 'scorePointsSum',\n missed_points_sum: 'missedPointsSum',\n best_score_diff: 'bestScoreDiff',\n best_score_points_diff: 'bestScorePointsDiff',\n buchholz_score: 'buchholzScore',\n points: 'points',\n mt_points: 'mtPoints',\n users_count: 'usersCount',\n games: 'games',\n notifications_count: 'notificationsCount',\n win_normal_time_games_count: 'winNormalTimeGamesCount',\n lose_normal_time_games_count: 'loseNormalTimeGamesCount',\n win_overtime_games_count: 'winOvertimeGamesCount',\n lose_overtime_games_count: 'loseOvertimeGamesCount',\n last_five_games: 'lastFiveGames',\n tries_scored: 'triesScored',\n tries_missed: 'triesMissed',\n attack_bonuses: 'attackBonuses',\n defense_bonuses: 'defenseBonuses',\n team_additional_data: 'teamAdditionalData',\n field_values: 'fieldValues',\n },\n relation: {\n logo: File,\n teamPhoto: File,\n teamUniform: File,\n tournament: Tournament,\n team: Team,\n group: TournamentGroup,\n games: Game,\n lastFiveGames: Game,\n division: TournamentDivision,\n teamAdditionalData: TeamAdditionalData,\n fieldValues: listField(TournamentTeamFieldValue),\n }\n})\nexport class TournamentTeam extends BaseModel {\n id: number;\n name: string;\n logo: File;\n teamPhoto: File;\n teamUniform: File;\n teamId: number;\n tournamentId: number;\n tournament: Tournament;\n team: Team;\n group: TournamentGroup;\n division: TournamentDivision;\n teamAdditionalData: TeamAdditionalData;\n finalStanding: number;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n lastGamesCount: number;\n lastGamesWon: number;\n scoreSum: number;\n missedSum: number;\n scorePointsSum: number;\n missedPointsSum: number;\n bestScoreDiff: number;\n bestScorePointsDiff: number;\n buchholzScore: number;\n points: number;\n mtPoints: number;\n usersCount: number;\n games: Game[];\n notificationsCount: number;\n winNormalTimeGamesCount: number;\n loseNormalTimeGamesCount: number;\n winOvertimeGamesCount: number;\n loseOvertimeGamesCount: number;\n lastFiveGames: Game[];\n triesScored: number;\n triesMissed: number;\n attackBonuses: number;\n defenseBonuses: number;\n fieldValues: TournamentTeamFieldValue[];\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\nexport enum TeamUserRole {\n member = 1,\n moderator,\n admin,\n coach,\n head_coach,\n playing_coach,\n manager,\n head_manager,\n captain,\n assistant,\n president,\n vice_president,\n press_attache,\n executive,\n senior_coach,\n assistant_coach,\n serviceman,\n game_application_manager,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n user: 'user',\n role: 'role',\n number: 'number',\n team: 'team',\n },\n relation: {\n user: User,\n team: Team,\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamUser extends BaseModel {\n id: number;\n teamId: number;\n user: User;\n team: Team;\n number: number;\n role: TeamUserRole;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(teamPlayer: TeamUser): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team_user_id: 'tournamentTeamUserId',\n date_from: 'dateFrom',\n date_to: 'dateTo',\n matches_count: 'matchesCount',\n reason: 'reason',\n is_conditional: 'isConditional',\n },\n relation: {\n dateFrom: DateField,\n dateTo: DateField,\n }\n})\nexport class TournamentDisqualification extends BaseModel {\n id: number;\n tournamentTeamUserId: number;\n dateFrom: Date;\n dateTo: Date;\n matchesCount: number;\n reason: string;\n isConditional: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { LeagueFieldBase, LeagueFieldTypes } from './league-field-base';\nimport { enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_id: 'leagueId',\n name: 'name',\n type: 'type',\n is_multiple: 'isMultiple',\n variants: 'variants',\n sort: 'sort',\n },\n relation: {\n type: enumField(LeagueFieldTypes)\n }\n})\nexport class LeaguePlayerField extends LeagueFieldBase {\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { LeagueFieldBaseValue } from './league-field-base-value';\nimport { ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\nimport { LeaguePlayerField } from './league-player-field';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_player_field_id: 'leaguePlayerFieldId',\n league_player_field: 'leaguePlayerField',\n value: 'value',\n file: 'file',\n value_text: 'valueText',\n },\n relation: {\n file: File,\n leaguePlayerField: LeaguePlayerField\n }\n})\nexport class LeaguePlayerFieldValue extends LeagueFieldBaseValue {\n leaguePlayerFieldId: number;\n leaguePlayerField: LeaguePlayerField;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","export enum Locales {\n ru = 'ru-RU',\n en = 'en-US',\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField, enumField, listField } from './util';\nimport { File } from './file';\nimport { User, UserGender } from './user';\nimport { LeaguePlayerFieldValue } from './league-player-field-value';\nimport { Locales } from '../localization/locales';\n\nexport enum Qualification {\n practician = 1,\n amateur,\n practician2,\n practician3,\n amateur2,\n theorist,\n theorist2,\n theorist3,\n sportsman,\n lider,\n master,\n profi,\n goalkeeper,\n goalkeeper2,\n goalkeeper_sh,\n goalkeeper_ul,\n goalkeeper_mhl,\n goalkeeper_vhl,\n goalkeeper_khl,\n beginner,\n junior,\n debutant,\n schoolchild,\n preschool_child\n}\n\nexport const QualificationLocalization = {\n [Locales.ru]: {\n [Qualification.practician]: 'Практик',\n [Qualification.practician2]: 'Практик 2',\n [Qualification.practician3]: 'Практик 3',\n [Qualification.amateur]: 'Любитель',\n [Qualification.amateur2]: 'Любитель 2',\n [Qualification.theorist]: 'Теоретик',\n [Qualification.theorist2]: 'Теоретик 2',\n [Qualification.theorist3]: 'Теоретик 3',\n [Qualification.sportsman]: 'Спортсмен',\n [Qualification.lider]: 'Лидер',\n [Qualification.master]: 'Мастер',\n [Qualification.profi]: 'Профи',\n [Qualification.goalkeeper]: 'Вратарь',\n [Qualification.goalkeeper2]: 'Вратарь 2',\n [Qualification.goalkeeper_sh]: 'Вратарь СШ',\n [Qualification.goalkeeper_ul]: 'Вратарь ЮЛ',\n [Qualification.goalkeeper_mhl]: 'Вратарь МХЛ',\n [Qualification.goalkeeper_vhl]: 'Вратарь ВХЛ',\n [Qualification.goalkeeper_khl]: 'Вратарь КХЛ',\n [Qualification.beginner]: 'Новичок',\n [Qualification.junior]: 'Юниор',\n [Qualification.debutant]: 'Дебютант',\n [Qualification.schoolchild]: 'Школьник',\n [Qualification.preschool_child]: 'Дошкольник',\n },\n [Locales.en]: {\n [Qualification.practician]: 'Practician',\n [Qualification.practician2]: 'Practician 2',\n [Qualification.practician3]: 'Практик 3',\n [Qualification.amateur]: 'Amateur',\n [Qualification.amateur2]: 'Amateur 2',\n [Qualification.theorist]: 'Theorist',\n [Qualification.theorist2]: 'Theorist 2',\n [Qualification.theorist3]: 'Theorist 3',\n [Qualification.sportsman]: 'Sportsman',\n [Qualification.lider]: 'Leader',\n [Qualification.master]: 'Master',\n [Qualification.profi]: 'Professional',\n [Qualification.goalkeeper]: 'Goalkeeper',\n [Qualification.goalkeeper2]: 'Goalkeeper 2',\n [Qualification.goalkeeper_sh]: 'Goalkeeper SH',\n [Qualification.goalkeeper_ul]: 'Goalkeeper UL',\n [Qualification.goalkeeper_mhl]: 'Goalkeeper MHL',\n [Qualification.goalkeeper_vhl]: 'Goalkeeper VHL',\n [Qualification.goalkeeper_khl]: 'Goalkeeper KHL',\n [Qualification.beginner]: 'Beginner',\n [Qualification.junior]: 'Junior',\n [Qualification.debutant]: 'Debutant',\n [Qualification.schoolchild]: 'Schoolchild',\n [Qualification.preschool_child]: 'Preschool child',\n }\n};\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n league_id: 'leagueId',\n first_name: 'firstName',\n last_name: 'lastName',\n middle_name: 'middleName',\n birth_date: 'birthDate',\n photo: 'photo',\n user: 'user',\n gender: 'gender',\n has_changes: 'hasChanges',\n rating: 'rating',\n qualification: 'qualification',\n field_values: 'fieldValues',\n },\n relation: {\n birthDate: DateField,\n photo: File,\n user: User,\n qualification: enumField(Qualification),\n fieldValues: listField(LeaguePlayerFieldValue),\n gender: enumField(UserGender),\n }\n})\nexport class LeaguePlayer extends BaseModel {\n id: number;\n userId: number;\n leagueId: number;\n firstName: string;\n lastName: string;\n middleName: string;\n birthDate: Date;\n photo: File;\n user: User;\n gender: UserGender;\n hasChanges: boolean;\n rating: string;\n qualification: Qualification;\n fieldValues: LeaguePlayerFieldValue[];\n\n get fullName(): string {\n return [this.lastName, this.firstName, this.middleName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n get age(): number {\n if (!this.birthDate) {\n return null;\n }\n const diff = (new Date()).getTime() - this.birthDate.getTime();\n return Math.floor(diff / (1000 * 60 * 60 * 24 * 365.25));\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { BaseModel, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n league_player_field_id: 'leaguePlayerFieldId',\n value: 'value',\n file: 'file',\n },\n relation: {\n file: File,\n }\n})\nexport class TournamentTeamUserFieldValue extends BaseModel {\n id: number;\n leaguePlayerFieldId: number;\n value: string;\n file: File;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TeamUser } from './team-user';\nimport { TournamentDisqualification } from './tournament-disqualification';\nimport { LeaguePlayer } from './league-player';\nimport { TournamentTeamUserFieldValue } from './tournament-team-user-field-value';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n active: 'active',\n tournament_team: 'tournamentTeam',\n team_user: 'teamUser',\n disqualified: 'disqualified',\n disqualification: 'disqualification',\n conditional_disqualification: 'conditionalDisqualification',\n league_player: 'leaguePlayer',\n games_count: 'gamesCount',\n mvp_count: 'mvpCount',\n field_values: 'fieldValues',\n },\n relation: {\n tournamentTeam: TournamentTeam,\n teamUser: TeamUser,\n disqualification: TournamentDisqualification,\n conditionalDisqualification: TournamentDisqualification,\n leaguePlayer: LeaguePlayer,\n fieldValues: listField(TournamentTeamUserFieldValue),\n }\n})\nexport class TournamentTeamUser extends BaseModel {\n id: number;\n active: boolean;\n tournamentTeam: TournamentTeam;\n teamUser: TeamUser;\n disqualified: boolean;\n disqualification: TournamentDisqualification;\n conditionalDisqualification: TournamentDisqualification;\n leaguePlayer: LeaguePlayer;\n gamesCount: number;\n mvpCount: number;\n fieldValues: TournamentTeamUserFieldValue[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n free_throws_made: 'freeThrowsMade',\n one_points_made: 'onePointsMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n two_point_percent: 'twoPointPercent',\n three_point_percent: 'threePointPercent',\n free_throw_percent: 'freeThrowPercent',\n one_point_percent: 'onePointPercent',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n technical_fouls: 'technicalFouls',\n unsportsmanlike_fouls: 'unsportsmanlikeFouls',\n disqualification_fouls: 'disqualificationFouls',\n drawn_fouls: 'drawnFouls',\n player_efficiency: 'playerEfficiency',\n shots_blocked: 'shotsBlocked',\n four_point_attempts: 'fourPointAttempts',\n four_points_made: 'fourPointsMade',\n four_point_percent: 'fourPointPercent',\n dunk_attempts: 'dunkAttempts',\n dunks_made: 'dunksMade',\n shootouts_won: 'shootoutsWon',\n shootouts_lost: 'shootoutsLost',\n shootouts_total: 'shootoutsTotal',\n shootout_won_percent: 'shootoutWonPercent',\n moneyball_free_throw_attempts: 'moneyballFreeThrowAttempts',\n moneyball_free_throws_made: 'moneyballFreeThrowsMade',\n moneyball_free_throw_percent: 'moneyballFreeThrowPercent',\n game_time: 'gameTime',\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class BasketballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n twoPointsMade: number;\n threePointsMade: number;\n freeThrowsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n twoPointPercent: number;\n threePointPercent: number;\n freeThrowPercent: number;\n onePointPercent: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n disqualificationFouls: number;\n drawnFouls: number;\n playerEfficiency: number;\n shotsBlocked: number;\n fourPointAttempts: number;\n fourPointsMade: number;\n fourPointPercent: number;\n dunkAttempts: number;\n dunksMade: number;\n shootoutsWon: number;\n shootoutsLost: number;\n shootoutsTotal: number;\n shootoutWonPercent: number;\n moneyballFreeThrowAttempts: number;\n moneyballFreeThrowsMade: number;\n moneyballFreeThrowPercent: number;\n gameTime: number;\n newbie: boolean;\n rank: number;\n\n get totalFouls() {\n return Math.floor(10 * (\n (this.personalFouls || 0) +\n (this.technicalFouls || 0) +\n (this.unsportsmanlikeFouls || 0) +\n (this.disqualificationFouls || 0)\n )) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get onePointsPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n get twoPointsPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n get threePointsPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n get freeThrowsPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { BasketballStatistic } from './basketball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: BasketballStatistic,\n competitorTeam: BasketballStatistic\n }\n})\nexport class BasketballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: BasketballStatistic;\n competitorTeam: BasketballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n points: 'points',\n free_throws_made: 'freeThrowsMade',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n one_points_made: 'onePointsMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n one_point_percent: 'onePointPercent',\n two_point_percent: 'twoPointPercent',\n three_point_percent: 'threePointPercent',\n free_throw_percent: 'freeThrowPercent',\n four_point_percent: 'fourPointPercent',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n technical_fouls: 'technicalFouls',\n unsportsmanlike_fouls: 'unsportsmanlikeFouls',\n disqualification_fouls: 'disqualificationFouls',\n drawn_fouls: 'drawnFouls',\n player_efficiency: 'playerEfficiency',\n shots_blocked: 'shotsBlocked',\n four_point_attempts: 'fourPointAttempts',\n four_points_made: 'fourPointsMade',\n dunk_attempts: 'dunkAttempts',\n dunks_made: 'dunksMade',\n shootouts_won: 'shootoutsWon',\n shootouts_lost: 'shootoutsLost',\n shootouts_total: 'shootoutsTotal',\n shootout_won_percent: 'shootoutWonPercent',\n moneyball_free_throw_attepts: 'moneyballFreeThrowAttepts',\n moneyball_free_throws_made: 'moneyballFreeThrowsMade',\n plus_minus: 'plusMinus',\n game_time: 'gameTime',\n updated_at: 'updatedAt',\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class BasketballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n freeThrowsMade: number;\n twoPointsMade: number;\n threePointsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n disqualificationFouls: number;\n drawnFouls: number;\n playerEfficiency: number;\n shotsBlocked: number;\n fourPointAttempts: number;\n fourPointsMade: number;\n dunkAttempts: number;\n dunksMade: number;\n shootoutsWon: number;\n shootoutsLost: number;\n moneyballFreeThrowAttepts: number;\n moneyballFreeThrowsMade: number;\n plusMinus: number;\n gameTime: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get totalFouls(): number {\n return (this.personalFouls || 0) + (this.technicalFouls || 0) + (this.unsportsmanlikeFouls || 0) + (this.disqualificationFouls || 0);\n }\n\n set onePointPercent(v: number) {}\n\n get onePointPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n /**\n * @deprecated Use onePointPercent instead\n */\n get onePointsPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n set twoPointPercent(v: number) {}\n\n get twoPointPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n /**\n * @deprecated Use twoPointPercent instead\n */\n get twoPointsPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n set threePointPercent(v: number) {}\n\n get threePointPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n /**\n * @deprecated Use threePointPercent instead\n */\n get threePointsPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n set freeThrowPercent(v: number) {}\n\n get freeThrowPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n /**\n * @deprecated Use freeThrowPercent instead\n */\n get freeThrowsPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n\n set fourPointPercent(v: number) {}\n\n get fourPointPercent(): number {\n if (!this.fourPointAttempts || !this.fourPointsMade) {\n return 0;\n }\n return Math.round(1000 * this.fourPointsMade / this.fourPointAttempts) / 10;\n }\n\n set shootoutsTotal(v: number) {}\n\n get shootoutsTotal(): number {\n return (this.shootoutsLost || 0) + (this.shootoutsWon || 0);\n }\n\n set shootoutWonPercent(v: number) {}\n\n get shootoutWonPercent(): number {\n if (!this.shootoutsTotal || !this.shootoutsWon) {\n return 0;\n }\n return Math.round(1000 * this.shootoutsWon / this.shootoutsTotal) / 10;\n }\n\n set moneyballFreeThrowPercent(v: number) {}\n\n get moneyballFreeThrowPercent() {\n if (!this.moneyballFreeThrowsMade || !this.moneyballFreeThrowAttepts) {\n return 0;\n }\n return Math.round(1000 * this.moneyballFreeThrowsMade / this.moneyballFreeThrowAttepts) / 10;\n\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum BasketballGameLogTypes {\n enter_game = 1,\n exit_game,\n remove_game,\n two_point_made,\n three_point_made,\n free_throw_made,\n two_point_attempt,\n three_point_attempt,\n free_throw_attempt,\n assist,\n block,\n rebound,\n offensive_rebound,\n defensive_rebound,\n steal,\n turnover,\n personal_foul,\n technical_foul,\n unsportsmanlike_foul,\n disqualification_foul,\n one_point_attempt,\n one_point_made,\n timeout,\n team_rebound,\n four_point_attempt,\n four_point_made,\n dunk_attempt,\n dunk_made,\n shootout,\n shootout_won,\n shootout_lost,\n moneyball_free_throw_attempt,\n moneyball_free_throw_made,\n}\n\nexport enum BasketballSubLogTypes {\n // Miss, Made\n jump_shot = 1,\n step_back_jump_shot,\n floating_jump_shot,\n fade_away_jump_shot,\n pull_up_jump_shot,\n turnaround_jump_shot,\n dunk,\n layup,\n driving_layup,\n alley_oop,\n hook_shot,\n\n // foul\n offensive_foul,\n shot_foul,\n mutual_foul,\n\n // Turnover\n bad_pass,\n ball_handling,\n travel,\n double_dribble,\n out_of_bounds,\n three_seconds,\n five_seconds,\n eight_seconds,\n twenty_four_seconds,\n back_court,\n offensive_goal_tending,\n other_turnover,\n}\n\nexport enum BasketballCourtZones {\n paint = 1,\n left_short_corner,\n right_short_corner,\n left_middle_post,\n right_middle_post,\n high_post,\n left_corner,\n right_corner,\n left_wing,\n right_wing,\n top,\n}\n\nexport enum BasketballCourtSides {\n front = 1,\n back,\n}\n\nexport enum BasketballPenaltyTypes {\n one_shot = 1,\n two_shots,\n three_shots,\n possession,\n one_shot_and_possession,\n two_shots_and_possession,\n three_shots_and_possession,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n sub_log_type: 'subLogType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n zone: 'zone',\n court_side: 'courtSide',\n foul_on_game_user_id: 'foulOnGameUserId',\n penalty_type: 'penaltyType',\n fast_break: 'fastBreak',\n is_coach: 'isCoach',\n is_bench: 'isBench',\n group: 'group',\n marked: 'marked',\n is_additional_point: 'isAdditionalPoint',\n coords: 'coords',\n shootout_points: 'shootoutPoints',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(BasketballGameLogTypes),\n subLogType: enumField(BasketballSubLogTypes),\n penaltyType: enumField(BasketballPenaltyTypes),\n zone: enumField(BasketballCourtZones),\n courtSide: enumField(BasketballCourtSides),\n }\n})\nexport class BasketballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: BasketballGameLogTypes;\n subLogType: BasketballSubLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n combined: BasketballGameLog;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n zone: BasketballCourtZones;\n courtSide: BasketballCourtSides;\n penaltyType: BasketballPenaltyTypes;\n foulOnGameUserId: number;\n foulOnGameUser: GameUser;\n fastBreak: boolean;\n isCoach: boolean;\n isBench: boolean;\n group: string;\n marked: boolean;\n isAdditionalPoint: boolean;\n coords: [number, number];\n shootoutPoints: number;\n\n isPointsType() {\n return [\n BasketballGameLogTypes.two_point_made,\n BasketballGameLogTypes.three_point_made,\n BasketballGameLogTypes.free_throw_made,\n BasketballGameLogTypes.one_point_made,\n BasketballGameLogTypes.four_point_made,\n BasketballGameLogTypes.dunk_made,\n BasketballGameLogTypes.shootout_won,\n BasketballGameLogTypes.moneyball_free_throw_made,\n ].indexOf(this.logType) > -1;\n }\n\n isReboundType() {\n return [\n BasketballGameLogTypes.rebound,\n BasketballGameLogTypes.offensive_rebound,\n BasketballGameLogTypes.defensive_rebound,\n BasketballGameLogTypes.team_rebound,\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType() {\n return [\n BasketballGameLogTypes.personal_foul,\n BasketballGameLogTypes.technical_foul,\n BasketballGameLogTypes.unsportsmanlike_foul,\n BasketballGameLogTypes.disqualification_foul,\n ].indexOf(this.logType) > -1;\n }\n\n getScore() {\n const scoreMapping = {\n [BasketballGameLogTypes.one_point_made]: this.isAdditionalPoint ? 2 : 1,\n [BasketballGameLogTypes.free_throw_made]: 1,\n [BasketballGameLogTypes.two_point_made]: this.isAdditionalPoint ? 3 : 2,\n [BasketballGameLogTypes.three_point_made]: this.isAdditionalPoint ? 4 : 3,\n [BasketballGameLogTypes.four_point_made]: this.isAdditionalPoint ? 5 : 4,\n [BasketballGameLogTypes.dunk_made]: this.isAdditionalPoint ? 4 : 3,\n [BasketballGameLogTypes.moneyball_free_throw_made]: 2,\n };\n if (this.logType === BasketballGameLogTypes.shootout_won) {\n return this.shootoutPoints;\n }\n return scoreMapping[this.logType] || 0;\n }\n\n compare(model: BasketballGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { TeamUser } from './team-user';\nimport { TournamentTeamUser } from './tournament-team-user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game_id: 'gameId',\n team_user: 'teamUser',\n tournament_team_user: 'tournamentTeamUser',\n is_mvp: 'isMvp',\n number: 'number',\n updated_at: 'updatedAt'\n },\n relation: {\n teamUser: TeamUser,\n tournamentTeamUser: TournamentTeamUser,\n updatedAt: DateTimeField,\n }\n})\nexport class GameUser extends BaseModel {\n id: number;\n gameId: number;\n teamUser: TeamUser;\n tournamentTeamUser: TournamentTeamUser;\n isMvp: boolean;\n number: number;\n updatedAt: Date;\n\n get gameUserNumber(): number {\n return (this.number || this.number === 0) ? this.number : this.teamUser.number;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, listField } from './util';\n\ninterface LimitationValue {\n current: number;\n required: number;\n}\n\n@ModelInstance({\n mappingFields: {\n min_user_games_count: 'minUserGamesCount',\n min_user_time: 'minUserTime',\n min_goalkeeper_user_games_count: 'minGoalkeeperUserGamesCount',\n min_goalkeeper_user_time: 'minGoalkeeperUserTime',\n manual: 'manual',\n },\n})\nexport class GameUserLimitationTypes extends BaseModel {\n minUserGamesCount: LimitationValue;\n minUserTime: LimitationValue;\n minGoalkeeperUserGamesCount: LimitationValue;\n minGoalkeeperUserTime: LimitationValue;\n manual: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n\n\n@ModelInstance({\n mappingFields: {\n tournament_team_user_id: 'tournamentTeamUserId',\n limitations: 'limitations'\n },\n relation: {\n limitations: GameUserLimitationTypes\n }\n})\nexport class GameUserLimitations extends BaseModel {\n tournamentTeamUserId: number;\n limitations: GameUserLimitationTypes;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentDisqualification } from './tournament-disqualification';\n\n@ModelInstance({\n mappingFields: {\n tournament_team_user_id: 'tournamentTeamUserId',\n disqualification: 'disqualification'\n },\n relation: {\n disqualification: TournamentDisqualification\n }\n})\nexport class GameUserDisqualification extends BaseModel {\n tournamentTeamUserId: number;\n disqualification: TournamentDisqualification;\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { GameUser } from '../models/game-user';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\nimport { GameUserLimitations } from '../models/game-user-limitation';\nimport { GameUserDisqualification } from '../models/game-user-disqualification';\n\n@Injectable({providedIn: 'root'})\nexport class GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService,\n ) {\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getMvp(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/mvp/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getUsersLimitation(gameId: number): Promise<GameUserLimitations[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users_limitation/`).pipe(\n map(result => GameUserLimitations.toFront(result))\n ).toPromise();\n }\n\n async getUsersDisqualification(gameId: number): Promise<GameUserDisqualification[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users_disqualification/`).pipe(\n map(result => GameUserDisqualification.toFront(result))\n ).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/game_application/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { BasketballGameTeamStatistic } from '../models/basketball-game-team-statistic';\nimport { BasketballGameStatistic } from '../models/basketball-game-statistic';\nimport { BasketballGameLog } from '../models/basketball-game-log';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class BasketballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<BasketballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/team_statistic/`).pipe(\n map(result => BasketballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<BasketballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/user_statistic/`).pipe(\n map(result => BasketballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<BasketballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/logs/`).pipe(\n map(result => BasketballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n\n async downloadFibaProtocol(gameId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol_fiba/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n\n async downloadMFBApplication(gameId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/mfb_game_application_file/?file_type=${fileType}`, {\n params: new HttpParams().set('file_type', fileType),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n theme: 'theme',\n message: 'message',\n files: 'files',\n email: 'email',\n captcha: 'captcha',\n },\n relation: {\n files: File\n }\n})\nexport class Feedback {\n id: number;\n theme: string;\n message: string;\n email: string;\n captcha: string;\n files: File[];\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(value: any): any {\n return null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Feedback } from '../models/feedback';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class FeedbackApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async sendFeedback(data: any): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/feedback/`, Feedback.toBack(data))\n .pipe(map(response => Feedback.toFront(response)))\n .toPromise();\n }\n\n async sendLeagueFeedback(leagueId: number, data: any): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/feedback/`, Feedback.toBack(data))\n .pipe(map(response => Feedback.toFront(response)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { File } from '../models/file';\n\n@Injectable({providedIn: 'root'})\nexport class FileApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async upload(fileData: any, filename?: string, width?: number, height?: number): Promise<File> {\n let params = new HttpParams();\n if (width && height) {\n params = params.set('width', width.toString()).set('height', height.toString());\n }\n\n const formData = new FormData();\n formData.append('file', fileData, filename);\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/`, formData, {params})\n .pipe(map(data => File.toFront(data)))\n .toPromise();\n }\n\n async createZipArchive(files: {file: any, filename: string}[]): Promise<any> {\n const formData = new FormData();\n for (const file of files) {\n formData.append('files', file.file, file.filename);\n }\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/zip_archive/`, formData, {responseType: 'blob'})\n .toPromise();\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField, penaltyTypeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum HockeyGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n shootout_attempt,\n shootout_goal,\n assist,\n block_shot ,\n minor_penalty ,\n major_penalty ,\n misconduct_penalty ,\n game_misconduct_penalty ,\n match_penalty ,\n penalty_shot ,\n face_off_lose ,\n face_off_win ,\n save ,\n timeout,\n penalty_start,\n penalty_end,\n after_game_shootout_attempt,\n after_game_shootout_goal,\n after_game_shootout_save,\n shootout_save,\n steal,\n loss,\n sharp_pass,\n qualified_for_playoff,\n mhl_carousel_segment_end,\n}\n\nexport enum HockeyAdvantageTypes {\n power_play = 1,\n shorthanded,\n even_strength\n}\n\nexport interface PenaltyType {\n id: number;\n code: string;\n title: string;\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n advantage: 'advantage',\n advantage_num: 'advantageNum',\n is_goalie: 'isGoalie',\n penalty_type: 'penaltyType',\n penalized_game_user_id: 'penalizedGameUserId',\n mutual_penalty: 'mutualPenalty',\n foul_on_game_user_id: 'foulOnGameUserId',\n video_url: 'videoUrl',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(HockeyGameLogTypes),\n advantage: enumField(HockeyAdvantageTypes),\n penaltyType: penaltyTypeField()\n }\n})\nexport class HockeyGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: HockeyGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n advantage: HockeyAdvantageTypes;\n advantageNum: number;\n isGoalie: boolean;\n penaltyType: PenaltyType;\n _penalizedGameUserId: number;\n mutualPenalty: boolean;\n foulOnGameUserId: number;\n videoUrl: string;\n\n get penalizedGameUserId(): number {\n if (this._penalizedGameUserId) {\n return this._penalizedGameUserId;\n }\n return this.gameUserId;\n }\n\n set penalizedGameUserId(value: number) {\n this._penalizedGameUserId = value;\n }\n\n compare(model: HockeyGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [HockeyGameLogTypes.goal, HockeyGameLogTypes.shootout_goal, HockeyGameLogTypes.after_game_shootout_goal].indexOf(this.logType) > -1;\n }\n\n isPenaltyType(): boolean {\n return [\n HockeyGameLogTypes.minor_penalty, HockeyGameLogTypes.major_penalty,\n HockeyGameLogTypes.misconduct_penalty, HockeyGameLogTypes.game_misconduct_penalty,\n HockeyGameLogTypes.penalty_shot, HockeyGameLogTypes.match_penalty\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: HockeyGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_goals: 'ppGoals',\n ev_goals: 'evGoals',\n sh_goals: 'shGoals',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n after_game_shootout_attempts: 'afterGameShootoutAttempts',\n after_game_shootout_goals: 'afterGameShootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n pp_saves: 'ppSaves',\n sh_saves: 'shSaves',\n ev_saves: 'evSaves',\n saves: 'saves',\n shootout_save: 'shootoutSaves',\n after_game_shootout_saves: 'afterGameShootoutSaves',\n pp_goals_against: 'ppGoalsAgainst',\n sh_goals_against: 'shGoalsAgainst',\n ev_goals_against: 'evGoalsAgainst',\n goals_against: 'goalsAgainst',\n shootout_goals_against: 'shootoutGoalsAgainst',\n after_game_shootout_goals_against: 'afterGameShootoutGoalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n steals: 'steals',\n pp_steals: 'ppSteals',\n ev_steals: 'evSteals',\n sh_steals: 'shSteals',\n losses: 'losses',\n pp_losses: 'ppLosses',\n ev_losses: 'evLosses',\n sh_losses: 'shLosses',\n sharp_passes: 'sharpPasses',\n pp_sharp_passes: 'ppSharpPasses',\n ev_sharp_passes: 'evSharpPasses',\n sh_sharp_passes: 'shSharpPasses',\n drawn_fouls: 'drawnFouls',\n efficiency: 'efficiency',\n games_qualified_for_playoff: 'gamesQualifiedForPlayoff',\n shutout: 'shutout'\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class HockeyGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n ppSaves: number;\n evSaves: number;\n shSaves: number;\n saves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n steals: number;\n ppSteals: number;\n evSteals: number;\n shSteals: number;\n losses: number;\n ppLosses: number;\n evLosses: number;\n shLosses: number;\n sharpPasses: number;\n ppSharpPasses: number;\n evSharpPasses: number;\n shSharpPasses: number;\n drawnFouls: number;\n efficiency: number;\n gamesQualifiedForPlayoff: number;\n shutout: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shotsOnGoal(): number {\n return (this.evShotsOnGoal || 0) + (this.ppShotsOnGoal || 0) + (this.shShotsOnGoal || 0);\n }\n\n get shotsBlocked(): number {\n return (this.evShotsBlocked || 0) + (this.ppShotsBlocked || 0) + (this.shShotsBlocked || 0);\n }\n\n get shotMisses(): number {\n return (this.evShotMisses || 0) + (this.ppShotMisses || 0) + (this.shShotMisses || 0);\n }\n\n get ppShots(): number {\n return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0);\n }\n\n get evShots(): number {\n return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0);\n }\n\n get shShots(): number {\n return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0);\n }\n\n get shots(): number {\n return this.ppShots + this.evShots + this.shShots + (this.shootoutAttempts || 0);\n }\n\n get totalShots(): number {\n return this.shots + (this.shootoutAttempts || 0);\n }\n\n get goals(): number {\n return (this.ppGoals || 0) + (this.shGoals || 0) + (this.evGoals || 0);\n }\n\n get totalGoals(): number {\n return this.goals + (this.shootoutGoals || 0);\n }\n\n get totalGoalsPercent(): number {\n if (!this.totalGoals || !this.totalShots) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.totalShots) / 10;\n }\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.evAssists || 0) + (this.shAssists || 0);\n }\n\n get faceOffs(): number {\n return (this.faceOffWins || 0) + (this.faceOffLosses || 0);\n }\n\n get shootOuts(): number {\n return (this.shootoutAttempts || 0) + (this.shootoutGoals || 0);\n }\n\n get shotsAgainst(): number {\n return (this.saves || 0) + (this.goalsAgainst || 0);\n }\n\n get shootoutShotsAgainst(): number {\n return (this.shootoutSaves || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get totalShotsAgainst(): number {\n return this.shotsAgainst + this.shootoutShotsAgainst;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get totalSaves(): number {\n return (this.saves || 0) + (this.shootoutSaves || 0);\n }\n\n get totalSavesPercent(): number {\n if (!this.totalShotsAgainst || !this.totalSaves) {\n return 0;\n }\n return Math.round(1000 * this.totalSaves / this.totalShotsAgainst) / 10;\n }\n\n get shootoutSavesPercent(): number {\n if (!this.shootoutShotsAgainst || !this.shootoutSaves) {\n return 0;\n }\n return Math.round(1000 * this.shootoutSaves / this.shootoutShotsAgainst) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return (this.goalsAgainst || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get goalsPercent(): number {\n if (!this.totalGoals || !this.totalShots) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.totalShots) / 10;\n }\n\n get faceOffPercent(): number {\n if (!this.faceOffWins || !this.faceOffs) {\n return 0;\n }\n return Math.round(1000 * this.faceOffWins / this.faceOffs) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n pp_shots: 'ppShots',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shots: 'evShots',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shots: 'shShots',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_goals_percent: 'ppGoalsPercent',\n pp_goals: 'ppGoals',\n ev_goals_percent: 'evGoalsPercent',\n ev_goals: 'evGoals',\n sh_goals_percent: 'shGoalsPercent',\n goals: 'goals',\n total_goals: 'totalGoals',\n sh_goals: 'shGoals',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots: 'shots',\n total_shots: 'totalShots',\n goals_percent: 'goalsPercent',\n total_goals_percent: 'totalGoalsPercent',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n after_game_shootout_attempts: 'afterGameShootoutAttempts',\n after_game_shootout_goals: 'afterGameShootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n face_offs: 'faceOffs',\n face_off_percent: 'faceOffPercent',\n pp_saves: 'ppSaves',\n sh_saves: 'shSaves',\n ev_saves: 'evSaves',\n saves: 'saves',\n total_saves: 'totalSaves',\n shootout_saves: 'shootoutSaves',\n shots_against: 'shotsAgainst',\n shootout_shots_against: 'shootoutShotsAgainst',\n total_shots_against: 'totalShotsAgainst',\n saves_percent: 'savesPercent',\n shootout_saves_percent: 'shootoutSavesPercent',\n total_saves_percent: 'totalSavesPercent',\n pp_goals_against: 'ppGoalsAgainst',\n sh_goals_against: 'shGoalsAgainst',\n ev_goals_against: 'evGoalsAgainst',\n goals_against: 'goalsAgainst',\n shootout_goals_against: 'shootoutGoalsAgainst',\n total_goals_against: 'totalGoalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n steals: 'steals',\n pp_steals: 'ppSteals',\n ev_steals: 'evSteals',\n sh_steals: 'shSteals',\n losses: 'losses',\n pp_losses: 'ppLosses',\n ev_losses: 'evLosses',\n sh_losses: 'shLosses',\n sharp_passes: 'sharpPasses',\n pp_sharp_passes: 'ppSharpPasses',\n ev_sharp_passes: 'evSharpPasses',\n sh_sharp_passes: 'shSharpPasses',\n drawn_fouls: 'drawnFouls',\n efficiency: 'efficiency',\n newbie: 'newbie',\n rank: 'rank',\n shutout: 'shutout',\n shutout_percent: 'shutoutPercent',\n mvp_count: 'mvpCount',\n games_qualified_for_playoff: 'gamesQualifiedForPlayoff'\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class HockeyStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n ppShots: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShots: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShots: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoalsPercent: number;\n ppGoals: number;\n evGoalsPercent: number;\n evGoals: number;\n shGoalsPercent: number;\n shGoals: number;\n goals: number;\n totalGoals: number;\n totalGoalsPercent;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shots: number;\n totalShots: number;\n goalsPercent: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n faceOffs: number;\n faceOffPercent: number;\n savesPercent: number;\n shootoutSavesPercent: number;\n totalSavesPercent: number;\n ppSaves: number;\n evSaves: number;\n shSaves: number;\n saves: number;\n shootoutSaves: number;\n totalSaves: number;\n shotsAgainst: number;\n shootoutShotsAgainst: number;\n totalShotsAgainst: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n shootoutGoalsAgainst: number;\n totalGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n steals: number;\n ppSteals: number;\n evSteals: number;\n shSteals: number;\n losses: number;\n ppLosses: number;\n evLosses: number;\n shLosses: number;\n sharpPasses: number;\n ppSharpPasses: number;\n evSharpPasses: number;\n shSharpPasses: number;\n drawnFouls: number;\n efficiency: number;\n newbie: boolean;\n rank: number;\n shutout: number;\n shutoutPercent: number;\n mvpCount: number;\n gamesQualifiedForPlayoff: number;\n\n get assists(): number {\n return Math.floor(10 * ((this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0))) / 10;\n }\n\n get goalpass(): number {\n return Math.floor(10 * ((this.totalGoals || 0) + (this.assists || 0))) / 10;\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { HockeyStatistic } from './hockey-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: HockeyStatistic,\n competitorTeam: HockeyStatistic\n }\n})\nexport class HockeyGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: HockeyStatistic;\n competitorTeam: HockeyStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyGameLog } from '../models/hockey-game-log';\nimport { HockeyGameStatistic } from '../models/hockey-game-statistic';\nimport { HockeyGameTeamStatistic } from '../models/hockey-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class HockeyGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<HockeyGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/team_statistic/`).pipe(\n map(result => HockeyGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<HockeyGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/user_statistic/`).pipe(\n map(result => HockeyGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<HockeyGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/logs/`).pipe(\n map(result => HockeyGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadShlApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/shl_game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField, penaltyTypeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum FootballGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n penalty_attempt,\n penalty_goal,\n penalty_save,\n small_penalty_attempt,\n small_penalty_goal,\n small_penalty_save,\n assist,\n block_shot,\n corner,\n free_kick,\n foul,\n save,\n yellow_card,\n red_card,\n perfect_pass,\n loss,\n steal,\n out,\n timeout,\n auto_goal,\n end_game_penalty_miss,\n end_game_penalty_goal,\n end_game_penalty_save,\n duel_won,\n duel_lost,\n double_goal,\n super_game,\n color_ball,\n bonus,\n}\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n is_goalie: 'isGoalie',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(FootballGameLogTypes)\n }\n})\nexport class FootballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: FootballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n isGoalie: boolean;\n\n compare(model: FootballGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [\n FootballGameLogTypes.goal,\n FootballGameLogTypes.penalty_goal,\n FootballGameLogTypes.small_penalty_goal,\n FootballGameLogTypes.auto_goal,\n FootballGameLogTypes.end_game_penalty_goal,\n FootballGameLogTypes.double_goal\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: FootballGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n goals: 'goals',\n assists: 'assists',\n corners: 'corners',\n free_kicks: 'freeKicks',\n penalty_goals: 'penaltyGoals',\n penalty_attempts: 'penaltyAttempts',\n penalty_goals_against: 'penaltyGoalsAgainst',\n penalty_saves: 'penaltySaves',\n small_penalty_goals: 'smallPenaltyGoals',\n small_penalty_attempts: 'smallPenaltyAttempts',\n small_penalty_goals_against: 'smallPenaltyGoalsAgainst',\n small_penalty_saves: 'smallPenaltySaves',\n saves: 'saves',\n goals_against: 'goalsAgainst',\n safety_rate: 'safetyRate',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n perfect_passes: 'perfectPasses',\n losses: 'losses',\n steals: 'steals',\n outs: 'outs',\n block_shots: 'blockShots',\n auto_goals: 'autoGoals',\n auto_goals_against: 'autoGoalsAgainst',\n end_game_penalty_goals: 'endGamePenaltyGoals',\n end_game_penalty_misses: 'endGamePenaltyMisses',\n end_game_penalty_saves: 'endGamePenaltySaves',\n duels_won: 'duelsWon',\n duels_lost: 'duelsLost',\n double_goals: 'doubleGoals',\n double_goals_against: 'doubleGoalsAgainst',\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class FootballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsAgainst: number;\n penaltySaves: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltySaves: number;\n saves: number;\n goalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n autoGoals: number;\n autoGoalsAgainst: number;\n endGamePenaltyGoals: number;\n endGamePenaltyMisses: number;\n endGamePenaltySaves: number;\n duelsWon: number;\n duelsLost: number;\n doubleGoals: number;\n doubleGoalsAgainst: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shots(): number {\n return Math.floor(10 * ((this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0))) / 10;\n }\n\n\n get totalGoals(): number {\n return Math.floor(10 * (\n (this.goals || 0) +\n (this.penaltyGoals || 0) +\n (this.smallPenaltyGoals || 0) +\n ((this.doubleGoals || 0) * 2)\n )) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.shots || !this.totalGoals) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.shots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get penalties(): number {\n return Math.floor(10 * ((this.penaltyGoals || 0) + (this.penaltyAttempts || 0))) / 10;\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penalties || !this.penaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.penaltyGoals / this.penalties) / 10;\n }\n\n get smallPenalties(): number {\n return Math.floor(10 * ((this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0))) / 10;\n }\n\n get smallPenaltyGoalsPercent(): number {\n if (!this.smallPenalties || !this.smallPenaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltyGoals / this.smallPenalties) / 10;\n }\n\n get shotsAgainst(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.goalsAgainst || 0) + (this.doubleGoalsAgainst || 0))) / 10;\n }\n\n get penaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get smallPenaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.smallPenaltySaves || 0) + (this.smallPenaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return Math.floor(10 * (\n (this.goalsAgainst || 0) +\n (this.penaltyGoalsAgainst || 0) +\n (this.smallPenaltyGoalsAgainst || 0) +\n (this.autoGoalsAgainst || 0) +\n ((this.doubleGoalsAgainst || 0) * 2)\n )) / 10;\n }\n\n\n get totalSaves(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.penaltySaves || 0) + (this.smallPenaltySaves || 0))) / 10;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get penaltySavesPercent(): number {\n if (!this.penaltyShotsAgainst || !this.penaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;\n }\n\n get smallPenaltySavesPercent(): number {\n if (!this.smallPenaltyShotsAgainst || !this.smallPenaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltySaves / this.smallPenaltyShotsAgainst) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n draw_games_count: 'drawGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots_on_goal_percent: 'shotsOnGoalPercent',\n shots: 'shots',\n goals: 'goals',\n goals_percent: 'goalsPercent',\n total_goals: 'totalGoals',\n assists: 'assists',\n penalty_goals: 'penaltyGoals',\n penalty_attempts: 'penaltyAttempts',\n penalty_goals_percent: 'penaltyGoalsPercent',\n penalty_saves: 'penaltySaves',\n penalty_goals_against: 'penaltyGoalsAgainst',\n penalty_shots_against: 'penaltyShotsAgainst',\n penalty_saves_percent: 'penaltySavesPercent',\n small_penalty_goals: 'smallPenaltyGoals',\n small_penalty_attempts: 'smallPenaltyAttempts',\n small_penalty_goals_percent: 'smallPenaltyGoalsPercent',\n small_penalty_saves: 'smallPenaltySaves',\n small_penalty_goals_against: 'smallPenaltyGoalsAgainst',\n small_penalty_shots_against: 'smallPenaltyShotsAgainst',\n small_penalty_saves_percent: 'smallPenaltySavesPercent',\n saves: 'saves',\n saves_percent: 'savesPercent',\n total_saves: 'totalSaves',\n goals_against: 'goalsAgainst',\n total_goals_against: 'totalGoalsAgainst',\n shots_against: 'shotsAgainst',\n safety_rate: 'safetyRate',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n perfect_passes: 'perfectPasses',\n losses: 'losses',\n steals: 'steals',\n outs: 'outs',\n block_shots: 'blockShots',\n corners: 'corners',\n free_kicks: 'freeKicks',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n newbie: 'newbie',\n rank: 'rank',\n auto_goals: 'autoGoals',\n auto_goals_against: 'autoGoalsAgainst',\n end_game_penalty_goals: 'endGamePenaltyGoals',\n end_game_penalty_misses: 'endGamePenaltyMisses',\n end_game_penalty_saves: 'endGamePenaltySaves',\n shutout: 'shutout',\n shutout_percent: 'shutoutPercent',\n duels_won: 'duelsWon',\n duels_lost: 'duelsLost',\n double_goals: 'doubleGoals',\n double_goals_against: 'doubleGoalsAgainst',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class FootballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shotsOnGoalPercent: number;\n shots: number;\n goals: number;\n totalGoals: number;\n goalsPercent: number;\n assists: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsPercent: number;\n penaltySaves: number;\n penaltyGoalsAgainst: number;\n penaltyShotsAgainst: number;\n penaltySavesPercent: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsPercent: number;\n smallPenaltySaves: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltyShotsAgainst: number;\n smallPenaltySavesPercent: number;\n saves: number;\n savesPercent: number;\n totalSaves: number;\n goalsAgainst: number;\n totalGoalsAgainst: number;\n shotsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n newbie: boolean;\n rank: number;\n autoGoals: number;\n autoGoalsAgainst: number;\n endGamePenaltyGoals: number;\n endGamePenaltyMisses: number;\n endGamePenaltySaves: number;\n shutout: number;\n shutoutPercent: number;\n duelsWon: number;\n duelsLost: number;\n doubleGoals: number;\n doubleGoalsAgainst: number;\n\n get teamPlusMinus(): number {\n return (this.teamScoreSum || 0) - (this.teamMissedSum || 0);\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get penalties(): number {\n return Math.floor(10 * ((this.penaltyGoals || 0) + (this.penaltyAttempts || 0))) / 10;\n }\n\n get smallPenalties(): number {\n return Math.floor(10 * ((this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0))) / 10;\n }\n\n get goalpass(): number {\n return Math.floor(10 * ((this.totalGoals || 0) + (this.assists || 0))) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get tournamentTeamGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.gamesCount;\n }\n\n get tournamentTeamWonGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.wonGamesCount;\n }\n\n get tournamentTeamDrawGamesCount(): number {\n return this.tournamentTeam && this.tournamentTeam.drawGamesCount;\n }\n\n get tournamentTeamLostGamesCount(): number {\n if (!this.tournamentTeam) {\n return null;\n }\n return this.tournamentTeam.gamesCount - this.tournamentTeam.drawGamesCount - this.tournamentTeam.wonGamesCount;\n }\n\n get tournamentTeamScoreSum(): number {\n return this.tournamentTeam && this.tournamentTeam.scoreSum;\n }\n\n get tournamentTeamMissedSum(): number {\n return this.tournamentTeam && this.tournamentTeam.missedSum;\n }\n\n get tournamentTeamPlusMinus(): number {\n if (!this.tournamentTeam) {\n return null;\n }\n return this.tournamentTeam.scoreSum - this.tournamentTeam.missedSum;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { FootballStatistic } from './football-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: FootballStatistic,\n competitorTeam: FootballStatistic\n }\n})\nexport class FootballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: FootballStatistic;\n competitorTeam: FootballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { FootballGameLog } from '../models/football-game-log';\nimport { FootballGameStatistic } from '../models/football-game-statistic';\nimport { FootballGameTeamStatistic } from '../models/football-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class FootballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<FootballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/team_statistic/`).pipe(\n map(result => FootballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<FootballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/user_statistic/`).pipe(\n map(result => FootballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<FootballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/logs/`).pipe(\n map(result => FootballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\n\nexport enum HandballGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n assist,\n penalty_miss,\n penalty_shot_on_goal,\n penalty_goal,\n save,\n penalty_save,\n foul,\n yellow_card,\n red_card,\n two_minute_foul,\n turnover,\n steal,\n block_shot,\n timeout\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n is_goalie: 'isGoalie',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(HandballGameLogTypes)\n }\n})\nexport class HandballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: HandballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n isGoalie: boolean;\n\n compare(model: HandballGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [HandballGameLogTypes.goal, HandballGameLogTypes.penalty_goal].indexOf(this.logType) > -1;\n }\n\n isAfter(log: HandballGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n isFoulType(): boolean {\n return [HandballGameLogTypes.foul, HandballGameLogTypes.yellow_card, HandballGameLogTypes.red_card].indexOf(this.logType) > -1;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n goals: 'goals',\n assists: 'assists',\n penalty_goals: 'penaltyGoals',\n penalty_misses: 'penaltyMisses',\n penalty_shots_on_goal: 'penaltyShotsOnGoal',\n saves: 'saves',\n penalty_saves: 'penaltySaves',\n goals_against: 'goalsAgainst',\n penalty_goals_against: 'penaltyGoalsAgainst',\n safety_rate: 'safetyRate',\n fouls: 'fouls',\n yellowCards: 'yellowCards',\n red_cards: 'redCards',\n two_minute_fouls: 'twoMinuteFouls',\n turnovers: 'turnovers',\n steals: 'steals',\n block_shots: 'blockShots',\n game_time: 'gameTime',\n plus_minus: 'plusMinus'\n }\n})\nexport class HandballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n penaltyGoals: number;\n penaltyMisses: number;\n penaltyShotsOnGoal: number;\n saves: number;\n penaltySaves: number;\n goalsAgainst: number;\n penaltyGoalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n twoMinuteFouls: number;\n turnovers: number;\n steals: number;\n blockShots: number;\n gameTime: number;\n plusMinus: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shots(): number {\n return Math.floor(10 * ((this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0))) / 10;\n }\n\n\n get totalGoals(): number {\n return Math.floor(10 * ((this.goals || 0) + (this.penaltyGoals || 0))) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.shots || !this.totalGoals) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.shots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get penaltyShots(): number {\n return Math.floor(10 * ((this.penaltyShotsOnGoal || 0) + (this.penaltyMisses || 0))) / 10;\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penaltyShots || !this.penaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.penaltyGoals / this.penaltyShots) / 10;\n }\n\n get shotsAgainst(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.goalsAgainst || 0))) / 10;\n }\n\n get penaltyShotsAgainst(): number {\n return Math.floor(10 * ((this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalGoalsAgainst(): number {\n return Math.floor(10 * ((this.goalsAgainst || 0) + (this.penaltyGoalsAgainst || 0))) / 10;\n }\n\n get totalSaves(): number {\n return Math.floor(10 * ((this.saves || 0) + (this.penaltySaves || 0))) / 10;\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get penaltySavesPercent(): number {\n if (!this.penaltyShotsAgainst || !this.penaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n goals: 'goals',\n assists: 'assists',\n penalty_goals: 'penaltyGoals',\n penalty_misses: 'penaltyMisses',\n penalty_shots_on_goal: 'penaltyShotsOnGoal',\n saves: 'saves',\n penalty_saves: 'penaltySaves',\n goals_against: 'goalsAgainst',\n penalty_goals_against: 'penaltyGoalsAgainst',\n safety_rate: 'safetyRate',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n two_minute_fouls: 'twoMinuteFouls',\n turnovers: 'turnovers',\n steals: 'steals',\n block_shots: 'blockShots',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n shots: 'shots',\n goals_percent: 'goalsPercent',\n penalty_shots: 'penaltyShots',\n penalty_goals_percent: 'penaltyGoalsPercent',\n shots_against: 'shotsAgainst',\n saves_percent: 'savesPercent',\n penalty_shots_against: 'penaltyShotsAgainst',\n penalty_saves_percent: 'penaltySavesPercent',\n total_goals: 'totalGoals',\n total_saves: 'totalSaves',\n total_goals_against: 'totalGoalsAgainst',\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class HandballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n penaltyGoals: number;\n penaltyMisses: number;\n penaltyShotsOnGoal: number;\n saves: number;\n penaltySaves: number;\n goalsAgainst: number;\n penaltyGoalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n twoMinuteFouls: number;\n turnovers: number;\n steals: number;\n blockShots: number;\n gameTime: number;\n plusMinus: number;\n shots: number;\n goalsPercent: number;\n penaltyShots: number;\n penaltyGoalsPercent: number;\n shotsAgainst: number;\n savesPercent: number;\n penaltyShotsAgainst: number;\n penaltySavesPercent: number;\n totalGoals: number;\n totalSaves: number;\n totalGoalsAgainst: number;\n newbie: boolean;\n rank: number;\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { HandballStatistic } from './handball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: HandballStatistic,\n competitorTeam: HandballStatistic\n }\n})\nexport class HandballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: HandballStatistic;\n competitorTeam: HandballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { HandballGameLog } from '../models/handball-game-log';\nimport { HandballGameStatistic } from '../models/handball-game-statistic';\nimport { HandballGameTeamStatistic } from '../models/handball-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class HandballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<HandballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/team_statistic/`).pipe(\n map(result => HandballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<HandballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/user_statistic/`).pipe(\n map(result => HandballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<HandballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/logs/`).pipe(\n map(result => HandballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user' | 'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_handball_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { File } from './file';\nimport { User } from './user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n text: 'text',\n author: 'author',\n created_at: 'createdAt',\n },\n relation: {\n picture: File,\n author: User,\n createdAt: DateTimeField,\n }\n})\nexport class TournamentNews extends BaseModel {\n id: number;\n title: string;\n picture: File;\n text: string;\n author: User;\n createdAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\n\n@ModelInstance({\n mappingFields: {\n stage_id: 'stageId',\n tours_count: 'toursCount',\n playoff_stages_count: 'playoffStagesCount',\n playoff_teams_count: 'playoffTeamsCount',\n }\n})\nexport class GameTimelineStageItem {\n stageId: number;\n toursCount: number;\n playoffStagesCount: number;\n playoffTeamsCount: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n tours_count: 'toursCount',\n playoff_stages_count: 'playoffStagesCount',\n playoff_teams_count: 'playoffTeamsCount',\n current_tour: 'currentTour',\n current_playoff_stage: 'currentPlayoffStage',\n current_playoff_round: 'currentPlayoffRound',\n stages: 'stages',\n tournament_stage_id: 'tournamentStageId',\n tournament_round_id: 'tournamentRoundId',\n },\n relation: {\n stages: listField(GameTimelineStageItem)\n }\n})\nexport class GameTimelineStages extends BaseModel {\n toursCount: number;\n playoffStagesCount: number;\n playoffTeamsCount: number;\n currentTour: number;\n currentPlayoffStage: number;\n currentPlayoffRound: number;\n stages: GameTimelineStageItem[];\n tournamentStageId: number;\n tournamentRoundId: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, DateField } from './util';\n\nexport enum TournamentStageStatuses {\n open,\n in_progress,\n closed\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n date: 'date',\n tournament_id: 'tournamentId',\n status: 'status',\n },\n relation: {\n date: DateField,\n status: enumField(TournamentStageStatuses)\n }\n})\nexport class TournamentStage extends BaseModel {\n id: number;\n name: string;\n date: Date;\n tournamentId: number;\n status: TournamentStageStatuses;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField } from './util';\nimport { Team } from './team';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { TeamUser } from './team-user';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n team_user: 'teamUser',\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n tournament_team: 'tournamentTeam',\n user: 'user',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n serve_hits: 'serveHits',\n serve_faults: 'serveFaults',\n serve_aces: 'serveAces',\n serve_percent: 'servePercent',\n good_serves: 'goodServes',\n ace_percent: 'acePercent',\n stuff_blocks: 'stuffBlocks',\n block_faults: 'blockFaults',\n block_rebounds: 'blockRebounds',\n block_percent: 'blockPercent',\n attack_spikes: 'attackSpikes',\n attack_faults: 'attackFaults',\n attack_shots: 'attackShots',\n attack_percent: 'attackPercent',\n receives: 'receives',\n receive_faults: 'receiveFaults',\n excellent_receives: 'excellentReceives',\n receive_percent: 'receivePercent',\n serve_receives: 'serveReceives',\n serve_receive_faults: 'serveReceiveFaults',\n excellent_serve_receives: 'excellentServeReceives',\n serve_receive_percent: 'serveReceivePercent',\n points: 'points',\n faults: 'faults',\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n team: Team,\n teamUser: TeamUser,\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n tournamentTeam: TournamentTeam,\n user: User,\n month: DateField,\n }\n})\nexport class VolleyballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n newbie: boolean;\n rank: number;\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n goodServes: number;\n servePercent: number;\n acePercent: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n blockPercent: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n attackPercent: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n receivePercent: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n serveReceivePercent: number;\n points: number;\n faults: number;\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get totalReceives(): number {\n return Math.floor(10 * (this.receives + this.excellentReceives + this.receiveFaults)) / 10;\n }\n\n get totalServeReceives(): number {\n return Math.floor(10 * (this.serveReceives + this.excellentServeReceives + this.serveReceiveFaults)) / 10;\n }\n\n get totalServes(): number {\n return Math.floor(10 * (this.serveAces + this.serveHits + this.serveFaults + this.goodServes)) / 10;\n }\n\n get totalAttacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots + this.attackFaults)) / 10;\n }\n\n get totalBlocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds + this.blockFaults)) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TournamentGroup } from './tournament-group';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n competitor_team_id: 'competitorTeamId',\n team_score: 'teamScore',\n competitor_team_score: 'competitorTeamScore',\n }\n})\nexport class StageTeamGame extends BaseModel {\n id: number;\n teamId: number;\n competitorTeamId: number;\n teamScore: number;\n competitorTeamScore: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team: 'tournamentTeam',\n group: 'group',\n tournament_stage_id: 'tournamentStageId',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n last_games_count: 'lastGamesCount',\n last_games_won: 'lastGamesWon',\n points: 'points',\n mt_points: 'mtPoints',\n final_standing: 'finalStanding',\n received_points: 'receivedPoints',\n received_mt_points: 'receivedMtPoints',\n tries_scored: 'triesScored',\n tries_missed: 'triesMissed',\n attack_bonuses: 'attackBonuses',\n defense_bonuses: 'defenseBonuses',\n games: 'games',\n draw_games_count: 'drawGamesCount',\n lose_games_count: 'loseGamesCount',\n },\n relation: {\n tournamentTeam: TournamentTeam,\n group: TournamentGroup,\n games: listField(StageTeamGame),\n }\n})\nexport class TournamentStageTeam extends BaseModel {\n private _games: StageTeamGame[];\n\n id: number;\n tournamentTeam: TournamentTeam;\n group: TournamentGroup;\n tournamentStageId: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n missedSum: number;\n lastGamesCount: number;\n lastGamesWon: number;\n points: number;\n mtPoints: number;\n finalStanding: number;\n receivedPoints: number;\n receivedMtPoints: number;\n triesScored: number;\n triesMissed: number;\n attackBonuses: number;\n defenseBonuses: number;\n drawGamesCount: number;\n loseGamesCount: number;\n gamesMapping: {[key: number]: StageTeamGame[]} = {};\n\n set games(value: StageTeamGame[]) {\n this._games = value;\n this.gamesMapping = value.reduce((acc, game) => {\n const competitorTeamId = game.teamId === this.tournamentTeam.team.id ? game.competitorTeamId : game.teamId;\n return {\n ...acc,\n [competitorTeamId]: [\n ...(acc[competitorTeamId] || []),\n game,\n ]\n };\n }, {});\n }\n\n get games(): StageTeamGame[] {\n return this._games;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField, DateTimeField, enumField } from './util';\nimport { File } from './file';\nimport { Tournament } from './tournament';\n\nexport enum LeagueNewsType {\n text = 1,\n video\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n datetime: 'datetime',\n preview_text: 'previewText',\n detail_text: 'detailText',\n picture: 'picture',\n cover: 'cover',\n mobile_picture: 'mobilePicture',\n is_main: 'isMain',\n tournaments: 'tournaments',\n type: 'type',\n video_link: 'videoLink',\n tag: 'tag',\n },\n relation: {\n datetime: DateTimeField,\n picture: File,\n cover: File,\n mobilePicture: File,\n tournaments: listField(Tournament),\n type: enumField(LeagueNewsType),\n }\n})\nexport class LeagueNews extends BaseModel {\n id: number;\n title: string;\n datetime: Date;\n previewText: string;\n detailText: string;\n picture: File;\n cover: File;\n mobilePicture: File;\n isMain: boolean;\n tournaments: Tournament[];\n type: LeagueNewsType;\n videoLink: string;\n tag: string;\n\n @ToFrontHook\n static toFront(data: any): any {\n return undefined;\n }\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField, enumField, listField } from './util';\nimport { Game } from './game';\nimport { Tournament } from './tournament';\nimport { League } from './league';\nimport { LeagueNews } from './league-news';\n\nexport enum TournamentEventTypes {\n game_closed = 1,\n media_added,\n news\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game: 'game',\n news: 'news',\n league: 'league',\n tournaments: 'tournaments',\n event: 'event',\n datetime: 'datetime'\n },\n relation: {\n game: Game,\n news: LeagueNews,\n league: League,\n tournaments: listField(Tournament),\n datetime: DateField,\n event: enumField(TournamentEventTypes)\n }\n})\nexport class TournamentEvent extends BaseModel {\n id: number;\n game: Game;\n news: LeagueNews;\n tournaments: Tournament[];\n event: TournamentEventTypes;\n datetime: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { User } from './user';\nimport { BaseModel, enumField, listField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n\nexport enum LeagueUserRoles {\n admin = 1,\n moderator,\n game_manager\n}\n\nexport enum LeagueUserPermissions {\n settings = 1,\n users,\n teams,\n media,\n news,\n game_export,\n schedule,\n game_management\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user: 'user',\n role: 'role',\n permissions: 'permissions'\n },\n relation: {\n user: User,\n permissions: listField(enumField(LeagueUserPermissions))\n }\n})\nexport class LeagueUser extends BaseModel {\n id: number;\n user: User;\n _role: LeagueUserRoles;\n permissions: LeagueUserPermissions[];\n\n set role(value: LeagueUserRoles|string) {\n this._role = LeagueUserRoles[value];\n }\n\n get role(): LeagueUserRoles|string {\n return this._role;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n draw_games_count: 'drawGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n newbie: 'newbie',\n // User statistic\n points: 'points',\n tries: 'tries',\n conversion_kicks: 'conversionKicks',\n conversion_goals: 'conversionGoals',\n conversion_misses: 'conversionMisses',\n conversion_goals_percent: 'conversionGoalsPercent',\n penalties: 'penalties',\n penalty_kicks_on_goal: 'penaltyKicksOnGoal',\n penalty_misses: 'penaltyMisses',\n penalty_goals: 'penaltyGoals',\n tap_penalties: 'tapPenalties',\n penalty_kicks_to_touch: 'penaltyKicksToTouch',\n penalty_goals_percent: 'penaltyGoalsPercent',\n drop_goal_kicks: 'dropGoalKicks',\n drop_goals: 'dropGoals',\n drop_goal_misses: 'dropGoalMisses',\n drop_goals_percent: 'dropGoalsPercent',\n total_goals: 'totalGoals',\n free_kicks: 'freeKicks',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n red_cards_20: 'redCards20',\n offloads: 'offloads',\n tackles: 'tackles',\n handling_errors: 'handlingErrors',\n carries_over_gainline: 'carriesOverGainline',\n foot_field_shots: 'footFieldShots',\n foot_out_shots: 'footOutShots',\n foot_shots: 'footShots',\n foot_kicks_50_22: 'footKicks5022',\n runs: 'runs',\n plus_minus: 'plusMinus',\n game_time: 'gameTime',\n\n // Team statistic\n penalty_tries: 'penaltyTries',\n scrums: 'scrums',\n scrums_won: 'scrumsWon',\n scrums_lost: 'scrumsLost',\n scrums_won_percent: 'scrumsWonPercent',\n scrums_won_free: 'scrumsWonFree',\n opponent_scrums_won: 'opponentScrumsWon',\n opponent_scrums_lost: 'opponentScrumsLost',\n lineouts: 'lineouts',\n lineouts_won: 'lineoutsWon',\n lineouts_lost: 'lineoutsLost',\n lineouts_steal: 'lineoutsSteal',\n lineouts_won_percent: 'lineoutsWonPercent',\n opponent_lineouts_lost: 'opponentLineoutsLost',\n quick_throws: 'quickThrows',\n rucks: 'rucks',\n rucks_won: 'rucksWon',\n rucks_lost: 'rucksLost',\n rucks_won_percent: 'rucksWonPercent',\n opponent_rucks_won: 'opponentRucksWon',\n opponent_rucks_lost: 'opponentRucksLost',\n mauls: 'mauls',\n mauls_won: 'maulsWon',\n mauls_lost: 'maulsLost',\n mauls_won_percent: 'maulWonPercent',\n opponent_mauls_won: 'opponentMaulsWon',\n opponent_mauls_lost: 'opponentMaulsLost',\n fouls: 'fouls',\n team_fouls: 'teamFouls',\n outs: 'outs',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class RugbyStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n newbie: boolean;\n rank: number;\n points: number;\n tries: number;\n penaltyTries: number;\n conversionKicks: number;\n conversionGoals: number;\n conversionMisses: number;\n conversionGoalsPercent: number;\n penalties: number;\n penaltyKicksOnGoal: number;\n penaltyMisses: number;\n penaltyGoals: number;\n penaltyGoalsPercent: number;\n tapPenalties: number;\n penaltyKicksToTouch: number;\n dropGoalKicks: number;\n dropGoals: number;\n dropGoalMisses: number;\n dropGoalsPercent: number;\n totalGoals: number;\n freeKicks: number;\n yellowCards: number;\n redCards: number;\n redCards20: number;\n offloads: number;\n tackles: number;\n handlingErrors: number;\n carriesOverGainline: number;\n footFieldShots: number;\n footOutShots: number;\n footKicks5022: number;\n footShots: number;\n runs: number;\n plusMinus: number;\n gameTime: number;\n\n scrums: number;\n scrumsWon: number;\n scrumsLost: number;\n scrumsWonPercent: number;\n scrumsWonFree: number;\n opponentScrumsWon: number;\n opponentScrumsLost: number;\n lineouts: number;\n lineoutsWon: number;\n lineoutsLost: number;\n lineoutsSteal: number;\n lineoutsWonPercent: number;\n opponentLineoutsLost: number;\n quickThrows: number;\n rucks: number;\n rucksWon: number;\n rucksLost: number;\n rucksWonPercent: number;\n opponentRucksWon: number;\n opponentRucksLost: number;\n mauls: number;\n maulsWon: number;\n maulsLost: number;\n maulWonPercent: number;\n opponentMaulsWon: number;\n opponentMaulsLost: number;\n fouls: number;\n teamFouls: number;\n outs: number;\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get totalFouls(): number {\n return Math.floor(10 * ((this.fouls || 0) + (this.teamFouls || 0))) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum AchievementTypes {\n by_game = 1,\n by_stage\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'type',\n value: 'value',\n type: 'type',\n },\n relation: {\n type: enumField(AchievementTypes),\n }\n})\nexport class Achievement extends BaseModel {\n id: number;\n name: string;\n alias: string;\n type: AchievementTypes;\n value: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Achievement } from './achievement';\nimport { Game } from './game';\nimport { TournamentStage } from './tournament-stage';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n achievement: 'achievement',\n tournament_stage: 'tournamentStage',\n team_id: 'teamId',\n game: 'game',\n mt_points: 'mtPoints',\n },\n relation: {\n achievement: Achievement,\n tournamentStage: TournamentStage,\n game: Game\n }\n})\nexport class TeamAchievement extends BaseModel {\n id: number;\n teamId: number;\n achievement: Achievement;\n game: Game;\n tournamentStage: TournamentStage;\n mtPoints: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_total_shots_on_goal: 'ppTotalShotsOnGoal',\n ev_total_shots_on_goal: 'evTotalShotsOnGoal',\n sh_total_shots_on_goal: 'shTotalShotsOnGoal',\n pp_goals: 'ppGoals',\n ev_goals: 'evGoals',\n sh_goals: 'shGoals',\n pp_counterattack_goals: 'ppCounterAttackGoals',\n pp_counterattack_on_goals: 'ppCounterAttackOnGoals',\n pp_counterattack_misses: 'ppCounterAttackMisses',\n pp_counterattack_shots_blocked: 'ppCounterAttackShotsBlocked',\n ev_counterattack_goals: 'evCounterAttackGoals',\n ev_counterattack_on_goals: 'evCounterAttackOnGoals',\n ev_counterattack_misses: 'evCounterAttackMisses',\n ev_counterattack_shots_blocked: 'evCounterAttackShotsBlocked',\n sh_counterattack_goals: 'shCounterAttackGoals',\n sh_counterattack_on_goals: 'shCounterAttackOnGoals',\n sh_counterattack_misses: 'shCounterAttackMisses',\n sh_counterattack_shots_blocked: 'shCounterAttackShotsBlocked',\n pp_maneuver_goals: 'ppManeuverGoals',\n pp_maneuver_on_goals: 'ppManeuverOnGoals',\n pp_maneuver_misses: 'ppManeuverMisses',\n pp_maneuver_shots_blocked: 'ppManeuverShotsBlocked',\n ev_maneuver_goals: 'evManeuverGoals',\n ev_maneuver_on_goals: 'evManeuverOnGoals',\n ev_maneuver_misses: 'evManeuverMisses',\n ev_maneuver_shots_blocked: 'evManeuverShotsBlocked',\n sh_maneuver_goals: 'shManeuverGoals',\n sh_maneuver_on_goals: 'shManeuverOnGoals',\n sh_maneuver_misses: 'shManeuverMisses',\n sh_maneuver_shots_blocked: 'shManeuverShotsBlocked',\n pp_center_forward_goals: 'ppCenterForwardGoals',\n pp_center_forward_on_goals: 'ppCenterForwardOnGoals',\n pp_center_forward_misses: 'ppCenterForwardMisses',\n pp_center_forward_shots_blocked: 'ppCenterForwardShotsBlocked',\n ev_center_forward_goals: 'evCenterForwardGoals',\n ev_center_forward_on_goals: 'evCenterForwardOnGoals',\n ev_center_forward_misses: 'evCenterForwardMisses',\n ev_center_forward_shots_blocked: 'evCenterForwardShotsBlocked',\n sh_center_forward_goals: 'shCenterForwardGoals',\n sh_center_forward_on_goals: 'shCenterForwardOnGoals',\n sh_center_forward_misses: 'shCenterForwardMisses',\n sh_center_forward_shots_blocked: 'shCenterForwardShotsBlocked',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n after_game_shootout_attempts: 'afterGameShootoutAttempts',\n after_game_shootout_goals: 'afterGameShootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n pp_saves: 'ppSaves',\n sh_saves: 'shSaves',\n ev_saves: 'evSaves',\n pp_counterattack_saves: 'ppCounterAttackSaves',\n sh_counterattack_saves: 'shCounterAttackSaves',\n ev_counterattack_saves: 'evCounterAttackSaves',\n pp_maneuver_saves: 'ppManeuverSaves',\n sh_maneuver_saves: 'shManeuverSaves',\n ev_maneuver_saves: 'evManeuverSaves',\n pp_center_forward_saves: 'ppCenterForwardSaves',\n sh_center_forward_saves: 'shCenterForwardSaves',\n ev_center_forward_saves: 'evCenterForwardSaves',\n pp_free_kick_saves: 'ppFreeKickSaves',\n sh_free_kick_saves: 'shFreeKickSaves',\n ev_free_kick_saves: 'evFreeKickSaves',\n pp_corner_saves: 'ppCornerSaves',\n sh_corner_saves: 'shCornerSaves',\n ev_corner_saves: 'evCornerSaves',\n pp_total_game_saves: 'ppTotalGameSaves',\n sh_total_game_saves: 'shTotalGameSaves',\n ev_total_game_saves: 'evTotalGameSaves',\n shootout_saves: 'shootoutSaves',\n after_game_shootout_saves: 'afterGameShootoutSaves',\n pp_goals_against: 'ppGoalsAgainst',\n sh_goals_against: 'shGoalsAgainst',\n ev_goals_against: 'evGoalsAgainst',\n goals_against: 'goalsAgainst',\n pp_counterattack_goals_against: 'ppCounterAttackGoalsAgainst',\n sh_counterattack_goals_against: 'shCounterAttackGoalsAgainst',\n ev_counterattack_goals_against: 'evCounterAttackGoalsAgainst',\n counterattack_goals_against: 'counterAttackGoalsAgainst',\n pp_maneuver_goals_against: 'ppManeuverGoalsAgainst',\n sh_maneuver_goals_against: 'shManeuverGoalsAgainst',\n ev_maneuver_goals_against: 'evManeuverGoalsAgainst',\n maneuver_goals_against: 'maneuverGoalsAgainst',\n pp_center_forward_goals_against: 'ppCenterForwardGoalsAgainst',\n sh_center_forward_goals_against: 'shCenterForwardGoalsAgainst',\n ev_center_forward_goals_against: 'evCenterForwardGoalsAgainst',\n center_forward_goals_against: 'centerForwardGoalsAgainst',\n pp_free_kick_goals_against: 'ppFreeKickGoalsAgainst',\n sh_free_kick_goals_against: 'shFreeKickGoalsAgainst',\n ev_free_kick_goals_against: 'evFreeKickGoalsAgainst',\n free_kick_goals_against: 'freeKickGoalsAgainst',\n pp_corner_goals_against: 'ppCornerGoalsAgainst',\n sh_corner_goals_against: 'shCornerGoalsAgainst',\n ev_corner_goals_against: 'evCornerGoalsAgainst',\n corner_goals_against: 'cornerGoalsAgainst',\n shootout_goals_against: 'shootoutGoalsAgainst',\n after_game_shootout_goals_against: 'afterGameShootoutGoalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n fouls: 'fouls',\n minor_penalties: 'minorPenalties',\n major_penalties: 'majorPenalties',\n match_penalties: 'matchPenalties',\n penalty_fouls: 'penaltyFouls',\n turnovers: 'turnovers',\n attack_fouls: 'attackFouls',\n personal_fouls: 'personalFouls',\n drawn_fouls: 'drawnFouls',\n drawn_turnovers: 'drawnTurnovers',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n losses: 'losses',\n steals: 'steals',\n pp_free_kick_goals: 'ppFreeKickGoals',\n pp_free_kick_on_goals: 'ppFreeKickOnGoals',\n pp_free_kick_misses: 'ppFreeKickMisses',\n pp_free_kick_shots_blocked: 'ppFreeKickShotsBlocked',\n sh_free_kick_goals: 'shFreeKickGoals',\n sh_free_kick_on_goals: 'shFreeKickOnGoals',\n sh_free_kick_misses: 'shFreeKickMisses',\n sh_free_kick_shots_blocked: 'shFreeKickShotsBlocked',\n ev_free_kick_goals: 'evFreeKickGoals',\n ev_free_kick_on_goals: 'evFreeKickOnGoals',\n ev_free_kick_misses: 'evFreeKickMisses',\n ev_free_kick_shots_blocked: 'evFreeKickShotsBlocked',\n free_kick_passes: 'freeKickPasses',\n free_kick_selfs: 'freeKickSelfs',\n pp_corner_goals: 'ppCornerGoals',\n pp_corner_on_goals: 'ppCornerOnGoals',\n pp_corner_misses: 'ppCornerMisses',\n pp_corner_shots_blocked: 'ppCornerShotsBlocked',\n sh_corner_goals: 'shCornerGoals',\n sh_corner_on_goals: 'shCornerOnGoals',\n sh_corner_misses: 'shCornerMisses',\n sh_corner_shots_blocked: 'shCornerShotsBlocked',\n ev_corner_goals: 'evCornerGoals',\n ev_corner_on_goals: 'evCornerOnGoals',\n ev_corner_misses: 'evCornerMisses',\n ev_corner_shots_blocked: 'evCornerShotsBlocked',\n corner_passes: 'cornerPasses',\n corner_selfs: 'cornerSelfs',\n tackles: 'tackles',\n player_efficiency: 'playerEfficiency',\n defense_select_positions: 'defenseSelectPositions',\n save_possessions: 'savePossessions',\n\n pp_shots: 'ppShots',\n ev_shots: 'evShots',\n sh_shots: 'shShots',\n pp_goals_percent: 'ppGoalsPercent',\n sh_goals_percent: 'shGoalsPercent',\n ev_goals_percent: 'evGoalsPercent',\n total_pp_goals: 'totalPpGoals',\n total_sh_goals: 'totalShGoals',\n total_ev_goals: 'totalEvGoals',\n goals: 'goals',\n total_goals: 'totalGoals',\n position_attack_goals: 'positionAttackGoals',\n position_attack_shots_on_goal: 'positionAttackShotsOnGoal',\n position_attack_shots_miss: 'positionAttackShotsMiss',\n position_attack_shots: 'positionAttackShots',\n position_attack_goals_percent: 'positionAttackGoalsPercent',\n total_counterattack_goals: 'totalCounterAttackGoals',\n counterattack_shot_on_goals: 'counterAttackShotOnGoals',\n counterattack_shot_misses: 'counterAttackShotMisses',\n counterattack_shots: 'counterAttackShots',\n counterattack_goals_percent: 'counterAttackGoalsPercent',\n total_maneuver_goals: 'totalManeuverGoals',\n maneuver_shot_misses: 'maneuverShotMisses',\n maneuver_shot_on_goals: 'maneuverShotOnGoals',\n maneuver_shots: 'maneuverShots',\n maneuver_goals_percent: 'maneuverGoalsPercent',\n total_center_forward_goals: 'totalCenterForwardGoals',\n center_forward_shot_on_goals: 'centerForwardShotOnGoals',\n center_forward_shot_misses: 'centerForwardShotMisses',\n center_forward_shots: 'centerForwardShots',\n center_forward_goals_percent: 'centerForwardGoalsPercent',\n total_free_kick_goals: 'totalFreeKickGoals',\n free_kick_shot_misses: 'freeKickShotMisses',\n free_kick_on_goals: 'freeKickOnGoals',\n total_free_kicks: 'totalFreeKicks',\n free_kick_goals_percent: 'freeKickGoalsPercent',\n total_corner_goals: 'totalCornerGoals',\n total_corners: 'totalCorners',\n total_in_game_goals: 'totalInGameGoals',\n in_game_shot_misses: 'inGameShotMisses',\n total_pp_shot_misses: 'totalPpShotMisses',\n shot_misses: 'shotMisses',\n total_pp_shots_on_goal: 'totalPpShotsOnGoal',\n in_game_shots_on_goals: 'inGameShotsOnGoals',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots: 'shots',\n shots_on_goal_percent: 'shotsOnGoalPercent',\n total_shots: 'totalShots',\n goals_percent: 'goalsPercent',\n total_goals_percent: 'totalGoalsPercent',\n face_offs: 'faceOffs',\n face_off_percent: 'faceOffPercent',\n total_fouls: 'totalFouls',\n total_penalties: 'totalPenalties',\n shootout_shots: 'shootoutShots',\n shootout_goals_percent: 'shootoutGoalsPercent',\n\n pp_perimetr_shot_goals: 'ppPerimetrShotGoals',\n pp_perimetr_shot_on_goals: 'ppPerimetrShotOnGoals',\n pp_perimetr_shot_misses: 'ppPerimetrShotMisses',\n pp_perimetr_shots_blocked: 'ppPerimetrShotsBlocked',\n ev_perimetr_shot_goals: 'evPerimetrShotGoals',\n ev_perimetr_shot_on_goals: 'evPerimetrShotOnGoals',\n ev_perimetr_shot_misses: 'evPerimetrShotMisses',\n ev_perimetr_shots_blocked: 'evPerimetrShotsBlocked',\n sh_perimetr_shot_goals: 'shPerimetrShotGoals',\n sh_perimetr_shot_on_goals: 'shPerimetrShotOnGoals',\n sh_perimetr_shot_misses: 'shPerimetrShotMisses',\n sh_perimetr_shots_blocked: 'shPerimetrShotsBlocked',\n pp_perimetr_shot_saves: 'ppPerimetrShotSaves',\n sh_perimetr_shot_saves: 'shPerimetrShotSaves',\n ev_perimetr_shot_saves: 'evPerimetrShotSaves',\n pp_perimetr_shot_goals_against: 'ppPerimetrShotGoalsAgainst',\n sh_perimetr_shot_goals_against: 'shPerimetrShotGoalsAgainst',\n ev_perimetr_shot_goals_against: 'evPerimetrShotGoalsAgainst',\n perimetr_shot_goals_against: 'perimetrShotGoalsAgainst',\n total_perimetr_shot_goals: 'totalPerimetrShotGoals',\n perimetr_shots_on_goals: 'perimetrShotsOnGoals',\n perimetr_shots_misses: 'perimetrShotsMisses',\n perimetr_shots: 'perimetrShots',\n perimetr_shot_goals_percent: 'perimetrShotGoalsPercent',\n\n pp_post_shot_goals: 'ppPostShotGoals',\n pp_post_shot_on_goals: 'ppPostShotOnGoals',\n pp_post_shot_misses: 'ppPostShotMisses',\n pp_post_shots_blocked: 'ppPostShotsBlocked',\n ev_post_shot_goals: 'evPostShotGoals',\n ev_post_shot_on_goals: 'evPostShotOnGoals',\n ev_post_shot_misses: 'evPostShotMisses',\n ev_post_shots_blocked: 'evPostShotsBlocked',\n sh_post_shot_goals: 'shPostShotGoals',\n sh_post_shot_on_goals: 'shPostShotOnGoals',\n sh_post_shot_misses: 'shPostShotMisses',\n sh_post_shots_blocked: 'shPostShotsBlocked',\n pp_post_shot_saves: 'ppPostShotSaves',\n sh_post_shot_saves: 'shPostShotSaves',\n ev_post_shot_saves: 'evPostShotSaves',\n pp_post_shot_goals_against: 'ppPostShotGoalsAgainst',\n sh_post_shot_goals_against: 'shPostShotGoalsAgainst',\n ev_post_shot_goals_against: 'evPostShotGoalsAgainst',\n post_shot_goals_against: 'postShotGoalsAgainst',\n total_post_shot_goals: 'totalPostShotGoals',\n post_shots_on_goals: 'postShotsOnGoals',\n post_shots_misses: 'postShotsMisses',\n post_shots: 'postShots',\n post_shot_goals_percent: 'postShotGoalsPercent',\n\n pp_fast_shot_goals: 'ppFastShotGoals',\n pp_fast_shot_on_goals: 'ppFastShotOnGoals',\n pp_fast_shot_misses: 'ppFastShotMisses',\n pp_fast_shots_blocked: 'ppFastShotsBlocked',\n ev_fast_shot_goals: 'evFastShotGoals',\n ev_fast_shot_on_goals: 'evFastShotOnGoals',\n ev_fast_shot_misses: 'evFastShotMisses',\n ev_fast_shots_blocked: 'evFastShotsBlocked',\n sh_fast_shot_goals: 'shFastShotGoals',\n sh_fast_shot_on_goals: 'shFastShotOnGoals',\n sh_fast_shot_misses: 'shFastShotMisses',\n sh_fast_shots_blocked: 'shFastShotsBlocked',\n pp_fast_shot_saves: 'ppFastShotSaves',\n sh_fast_shot_saves: 'shFastShotSaves',\n ev_fast_shot_saves: 'evFastShotSaves',\n pp_fast_shot_goals_against: 'ppFastShotGoalsAgainst',\n sh_fast_shot_goals_against: 'shFastShotGoalsAgainst',\n ev_fast_shot_goals_against: 'evFastShotGoalsAgainst',\n fast_shot_goals_against: 'fastShotGoalsAgainst',\n total_fast_shot_goals: 'totalFastShotGoals',\n fast_shots_on_goals: 'fastShotsOnGoals',\n fast_shots_misses: 'fastShotsMisses',\n fast_shots: 'fastShots',\n fast_shot_goals_percent: 'fastShotGoalsPercent',\n\n /*goalie stat*/\n position_attack_saves: 'positionAttackSaves',\n position_attack_shots_against: 'positionAttackShotsAgainst',\n position_attack_saves_percent: 'positionAttackSavesPercent',\n counterattack_saves: 'counterAttackSaves',\n counterattack_shots_against: 'counterAttackShotsAgainst',\n counterattack_saves_percent: 'counterAttackSavesPercent',\n center_forward_saves: 'centerForwardSaves',\n center_forward_shots_against: 'centerForwardShotsAgainst',\n center_forward_saves_percent: 'centerForwardSavesPercent',\n maneuver_saves: 'maneuverSaves',\n maneuver_shots_against: 'maneuverShotsAgainst',\n maneuver_saves_percent: 'maneuverSavesPercent',\n free_kick_saves: 'freeKickSaves',\n free_kick_shots_against: 'freeKickShotsAgainst',\n free_kick_saves_percent: 'freeKickSavesPercent',\n corner_saves: 'cornerSaves',\n corner_shots_against: 'cornerShotsAgainst',\n corner_saves_percent: 'cornerSavesPercent',\n in_game_saves: 'inGameSaves',\n saves: 'saves',\n total_saves: 'totalSaves',\n shootout_shots_against: 'shootoutShotsAgainst',\n shootout_saves_percent: 'shootoutSavesPercent',\n game_shots_against: 'gameShotsAgainst',\n saves_percent: 'savesPercent',\n total_shots_against: 'totalShotsAgainst',\n total_saves_percent: 'totalSavesPercent',\n in_game_goals_against: 'inGameGoalsAgainst',\n total_goals_against: 'totalGoalsAgainst',\n total_sh_saves: 'totalShSaves',\n total_sh_goals_against: 'totalShGoalsAgainst',\n total_sh_shots_against: 'totalShShotsAgainst',\n total_sh_saves_percent: 'totalShSavesPercent',\n total_ev_saves: 'totalEvSaves',\n total_ev_goals_against: 'totalEvGoalsAgainst',\n total_ev_shots_against: 'totalEvShotsAgainst',\n total_ev_saves_percent: 'totalEvSavesPercent',\n\n perimetr_shot_saves: 'perimetrShotSaves',\n perimetr_shots_against: 'perimetrShotsAgainst',\n perimetr_shot_saves_percent: 'perimetrShotSavesPercent',\n\n post_shot_saves: 'postShotSaves',\n post_shots_against: 'postShotsAgainst',\n post_shot_saves_percent: 'postShotSavesPercent',\n\n fast_shot_saves: 'fastShotSaves',\n fast_shots_against: 'fastShotsAgainst',\n fast_shot_saves_percent: 'fastShotSavesPercent',\n\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class WaterpoloStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppTotalShotsOnGoal: number;\n evTotalShotsOnGoal: number;\n shTotalShotsOnGoal: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppCounterAttackGoals: number;\n ppCounterAttackOnGoals: number;\n ppCounterAttackMisses: number;\n ppCounterAttackShotsBlocked: number;\n evCounterAttackGoals: number;\n evCounterAttackOnGoals: number;\n evCounterAttackMisses: number;\n evCounterAttackShotsBlocked: number;\n shCounterAttackGoals: number;\n shCounterAttackOnGoals: number;\n shCounterAttackMisses: number;\n shCounterAttackShotsBlocked: number;\n ppManeuverGoals: number;\n ppManeuverOnGoals: number;\n ppManeuverMisses: number;\n ppManeuverShotsBlocked: number;\n evManeuverGoals: number;\n evManeuverOnGoals: number;\n evManeuverMisses: number;\n evManeuverShotsBlocked: number;\n shManeuverGoals: number;\n shManeuverOnGoals: number;\n shManeuverMisses: number;\n shManeuverShotsBlocked: number;\n ppCenterForwardGoals: number;\n ppCenterForwardOnGoals: number;\n ppCenterForwardMisses: number;\n ppCenterForwardShotsBlocked: number;\n evCenterForwardGoals: number;\n evCenterForwardOnGoals: number;\n evCenterForwardMisses: number;\n evCenterForwardShotsBlocked: number;\n shCenterForwardGoals: number;\n shCenterForwardOnGoals: number;\n shCenterForwardMisses: number;\n shCenterForwardShotsBlocked: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n ppSaves: number;\n shSaves: number;\n evSaves: number;\n ppCounterAttackSaves: number;\n shCounterAttackSaves: number;\n evCounterAttackSaves: number;\n ppManeuverSaves: number;\n shManeuverSaves: number;\n evManeuverSaves: number;\n ppCenterForwardSaves: number;\n shCenterForwardSaves: number;\n evCenterForwardSaves: number;\n ppFreeKickSaves: number;\n shFreeKickSaves: number;\n evFreeKickSaves: number;\n ppCornerSaves: number;\n shCornerSaves: number;\n evCornerSaves: number;\n ppTotalGameSaves: number;\n shTotalGameSaves: number;\n evTotalGameSaves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n ppCounterAttackGoalsAgainst: number;\n shCounterAttackGoalsAgainst: number;\n evCounterAttackGoalsAgainst: number;\n counterAttackGoalsAgainst: number;\n ppManeuverGoalsAgainst: number;\n shManeuverGoalsAgainst: number;\n evManeuverGoalsAgainst: number;\n maneuverGoalsAgainst: number;\n ppCenterForwardGoalsAgainst: number;\n shCenterForwardGoalsAgainst: number;\n evCenterForwardGoalsAgainst: number;\n centerForwardGoalsAgainst: number;\n ppFreeKickGoalsAgainst: number;\n shFreeKickGoalsAgainst: number;\n evFreeKickGoalsAgainst: number;\n freeKickGoalsAgainst: number;\n ppCornerGoalsAgainst: number;\n shCornerGoalsAgainst: number;\n evCornerGoalsAgainst: number;\n cornerGoalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n fouls: number;\n minorPenalties: number;\n majorPenalties: number;\n matchPenalties: number;\n penaltyFouls: number;\n turnovers: number;\n attackFouls: number;\n personalFouls: number;\n drawnFouls: number;\n drawnTurnovers: number;\n yellowCards: number;\n redCards: number;\n losses: number;\n steals: number;\n ppFreeKickGoals: number;\n ppFreeKickOnGoals: number;\n ppFreeKickMisses: number;\n ppFreeKickShotsBlocked: number;\n shFreeKickGoals: number;\n shFreeKickOnGoals: number;\n shFreeKickMisses: number;\n shFreeKickShotsBlocked: number;\n evFreeKickGoals: number;\n evFreeKickOnGoals: number;\n evFreeKickMisses: number;\n evFreeKickShotsBlocked: number;\n freeKickPasses: number;\n freeKickSelfs: number;\n ppCornerGoals: number;\n ppCornerOnGoals: number;\n ppCornerMisses: number;\n ppCornerShotsBlocked: number;\n shCornerGoals: number;\n shCornerOnGoals: number;\n shCornerMisses: number;\n shCornerShotsBlocked: number;\n evCornerGoals: number;\n evCornerOnGoals: number;\n evCornerMisses: number;\n evCornerShotsBlocked: number;\n cornerPasses: number;\n cornerSelfs: number;\n tackles: number;\n playerEfficiency: number;\n defenseSelectPositions: number;\n savePossessions: number;\n\n /*additional statistic*/\n ppShots: number;\n shShots: number;\n evShots: number;\n ppGoalsPercent: number;\n shGoalsPercent: number;\n evGoalsPercent: number;\n totalPpGoals: number;\n totalShGoals: number;\n totalEvGoals: number;\n goals: number;\n totalGoals: number;\n positionAttackGoals: number;\n positionAttackShotsOnGoal: number;\n positionAttackShotsMiss: number;\n positionAttackShots: number;\n positionAttackGoalsPercent: number;\n totalCounterAttackGoals: number;\n counterAttackShotOnGoals: number;\n counterAttackShotMisses: number;\n counterAttackShots: number;\n counterAttackGoalsPercent: number;\n totalManeuverGoals: number;\n maneuverShotMisses: number;\n maneuverShotOnGoals: number;\n maneuverShots: number;\n maneuverGoalsPercent: number;\n totalCenterForwardGoals: number;\n centerForwardShotOnGoals: number;\n centerForwardShotMisses: number;\n centerForwardShots: number;\n centerForwardGoalsPercent: number;\n totalFreeKickGoals: number;\n freeKickShotMisses: number;\n freeKickOnGoals: number;\n totalFreeKicks: number;\n freeKickGoalsPercent: number;\n totalCornerGoals: number;\n totalCorners: number;\n totalInGameGoals: number;\n inGameShotMisses: number;\n totalPpShotMisses: number;\n shotMisses: number;\n totalPpShotsOnGoal: number;\n inGameShotsOnGoals: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shots: number;\n shotsOnGoalPercent: number;\n totalShots: number;\n goalsPercent: number;\n totalGoalsPercent: number;\n faceOffs: number;\n faceOffPercent: number;\n totalFouls: number;\n totalPenalties: number;\n shootoutShots: number;\n shootoutGoalsPercent: number;\n\n ppPerimetrShotGoals: number;\n ppPerimetrShotOnGoals: number;\n ppPerimetrShotMisses: number;\n ppPerimetrShotsBlocked: number;\n evPerimetrShotGoals: number;\n evPerimetrShotOnGoals: number;\n evPerimetrShotMisses: number;\n evPerimetrShotsBlocked: number;\n shPerimetrShotGoals: number;\n shPerimetrShotOnGoals: number;\n shPerimetrShotMisses: number;\n shPerimetrShotsBlocked: number;\n ppPerimetrShotSaves: number;\n shPerimetrShotSaves: number;\n evPerimetrShotSaves: number;\n ppPerimetrShotGoalsAgainst: number;\n shPerimetrShotGoalsAgainst: number;\n evPerimetrShotGoalsAgainst: number;\n perimetrShotGoalsAgainst: number;\n totalPerimetrShotGoals: number;\n perimetrShotsOnGoals: number;\n perimetrShotsMisses: number;\n perimetrShots: number;\n perimetrShotGoalsPercent: number;\n\n ppPostShotGoals: number;\n ppPostShotOnGoals: number;\n ppPostShotMisses: number;\n ppPostShotsBlocked: number;\n evPostShotGoals: number;\n evPostShotOnGoals: number;\n evPostShotMisses: number;\n evPostShotsBlocked: number;\n shPostShotGoals: number;\n shPostShotOnGoals: number;\n shPostShotMisses: number;\n shPostShotsBlocked: number;\n ppPostShotSaves: number;\n shPostShotSaves: number;\n evPostShotSaves: number;\n ppPostShotGoalsAgainst: number;\n shPostShotGoalsAgainst: number;\n evPostShotGoalsAgainst: number;\n postShotGoalsAgainst: number;\n totalPostShotGoals: number;\n postShotsOnGoals: number;\n postShotsMisses: number;\n postShots: number;\n postShotGoalsPercent: number;\n\n ppFastShotGoals: number;\n ppFastShotOnGoals: number;\n ppFastShotMisses: number;\n ppFastShotsBlocked: number;\n evFastShotGoals: number;\n evFastShotOnGoals: number;\n evFastShotMisses: number;\n evFastShotsBlocked: number;\n shFastShotGoals: number;\n shFastShotOnGoals: number;\n shFastShotMisses: number;\n shFastShotsBlocked: number;\n ppFastShotSaves: number;\n shFastShotSaves: number;\n evFastShotSaves: number;\n ppFastShotGoalsAgainst: number;\n shFastShotGoalsAgainst: number;\n evFastShotGoalsAgainst: number;\n fastShotGoalsAgainst: number;\n totalFastShotGoals: number;\n fastShotsOnGoals: number;\n fastShotsMisses: number;\n fastShots: number;\n fastShotGoalsPercent: number;\n\n /*goalie stat*/\n positionAttackSaves: number;\n positionAttackShotsAgainst: number;\n positionAttackSavesPercent: number;\n counterAttackSaves: number;\n counterAttackShotsAgainst: number;\n counterAttackSavesPercent: number;\n centerForwardSaves: number;\n centerForwardShotsAgainst: number;\n centerForwardSavesPercent: number;\n maneuverSaves: number;\n maneuverShotsAgainst: number;\n maneuverSavesPercent: number;\n freeKickSaves: number;\n freeKickShotsAgainst: number;\n freeKickSavesPercent: number;\n cornerSaves: number;\n cornerShotsAgainst: number;\n cornerSavesPercent: number;\n inGameSaves: number;\n saves: number;\n totalSaves: number;\n shootoutShotsAgainst: number;\n shootoutSavesPercent: number;\n gameShotsAgainst: number;\n savesPercent: number;\n totalShotsAgainst: number;\n totalSavesPercent: number;\n inGameGoalsAgainst: number;\n totalGoalsAgainst: number;\n totalShSaves: number;\n totalShGoalsAgainst: number;\n totalShShotsAgainst: number;\n totalShSavesPercent: number;\n totalEvSaves: number;\n totalEvGoalsAgainst: number;\n totalEvShotsAgainst: number;\n totalEvSavesPercent: number;\n\n perimetrShotSaves: number;\n perimetrShotsAgainst: number;\n perimetrShotSavesPercent: number;\n\n postShotSaves: number;\n postShotsAgainst: number;\n postShotSavesPercent: number;\n\n fastShotSaves: number;\n fastShotsAgainst: number;\n fastShotSavesPercent: number;\n\n newbie: boolean;\n rank: number;\n\n get assists(): number {\n return Math.floor(10 * ((this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0))) / 10;\n }\n\n get goalpass(): number {\n return Math.floor(10 * ((this.totalGoals || 0) + (this.assists || 0))) / 10;\n }\n\n get userMinutes(): string {\n if (!this.gameTime) {\n return '00:00';\n }\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get penaltyTime(): string {\n if (!this.penaltyMinutes) {\n return '00:00';\n }\n const minutes = Math.floor(this.penaltyMinutes / 60);\n const seconds = Math.floor(this.penaltyMinutes - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ToFrontHook, ToBackHook, ModelInstance, enumField, listField } from './util';\nimport { TournamentDivision } from './tournament-division';\n\nexport enum TournamentRoundTypes {\n group = 1,\n playoff,\n}\n\nexport class TournamentRoundSettings extends BaseModel {\n toursCount: number;\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n type: 'type',\n divisions: 'divisions',\n },\n relation: {\n type: enumField(TournamentRoundTypes),\n divisions: listField(TournamentDivision),\n }\n})\nexport class TournamentRound extends BaseModel {\n id: number;\n name: string;\n type: TournamentRoundTypes;\n divisions: TournamentDivision[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic, WinLoseType } from './base-statistic';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n league_player: 'leaguePlayer',\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n team_score_sum: 'teamScoreSum',\n team_missed_sum: 'teamMissedSum',\n tournament_points: 'tournamentPoints',\n points: 'points',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n free_throws_made: 'freeThrowsMade',\n two_points_free_throw_made: 'twoPointsFreeThrowMade',\n three_points_free_throw_made: 'threePointsFreeThrowMade',\n total_free_throw_made: 'totalFreeThrowMade',\n one_points_made: 'onePointsMade',\n dunks_made: 'dunksMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n two_point_free_throw_attempts: 'twoPointFreeThrowAttempts',\n three_point_free_throw_attempts: 'threePointFreeThrowAttempts',\n total_free_throw_attempts: 'totalFreeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n dunk_attempts: 'dunkAttempts',\n two_point_percent: 'twoPointPercent',\n three_point_percent: 'threePointPercent',\n free_throw_percent: 'freeThrowPercent',\n total_free_throw_percent: 'totalFreeThrowPercent',\n one_point_percent: 'onePointPercent',\n dunks_made_percent: 'dunksMadePercent',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n drawn_fouls: 'drawnFouls',\n drawn_wrestler_attempts: 'drawnWrestlerAttempts',\n drawn_wrestler_won_attempts: 'drawnWrestlerWonAttempts',\n drawn_wrestler_lost_attempts: 'drawnWrestlerLostAttempts',\n wrestler_scrums_won: 'wrestlerScrumsWon',\n wrestler_scrums_lost: 'wrestlerScrumsLost',\n wrestler_scrums_tie: 'wrestlerScrumsTie',\n wrestler_scrum_points: 'wrestlerScrumPoints',\n wrestler_scrums_counterattack: 'wrestlerScrumsCounterattack',\n wrestler_scrums_counterattack_points: 'wrestlerScrumsCounterattackPoints',\n scrums_won: 'scrumsWon',\n scrums_lost: 'scrumsLost',\n scrums_tie: 'scrumsTie',\n scrum_points: 'scrumPoints',\n scrums_ball_advantage_won: 'scrumsBallAdvantageWon',\n scrums_ball_advantage_lost: 'scrumsBallAdvantageLost',\n scrums_ball_advantage_tie: 'scrumsBallAdvantageTie',\n scrums_ball_advantage_total: 'scrumsBallAdvantageTotal',\n scrums_ball_advantage_won_percent: 'scrumsBallAdvantageWonPercent',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n wrestler_scrums: 'wrestlerScrums',\n wrestler_scrums_won_percent: 'wrestlerScrumsWonPercent',\n scrums: 'scrums',\n scrums_won_percent: 'scrumsWonPercent',\n total_scrums: 'totalScrums',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n newbie: 'newbie',\n rank: 'rank',\n },\n relation: {\n leaguePlayer: LeaguePlayer,\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class WrestballStatistic extends BaseModel implements BaseStatistic {\n leaguePlayer: LeaguePlayer;\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: WinLoseType;\n gamesCount: number;\n wonGamesCount: number;\n teamScoreSum: number;\n teamMissedSum: number;\n tournamentPoints: number;\n points: number;\n twoPointsMade: number;\n threePointsMade: number;\n freeThrowsMade: number;\n twoPointsFreeThrowMade: number;\n threePointsFreeThrowMade: number;\n totalFreeThrowMade: number;\n onePointsMade: number;\n dunksMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n twoPointFreeThrowAttempts: number;\n threePointFreeThrowAttempts: number;\n totalFreeThrowAttempts: number;\n onePointAttempts: number;\n dunkAttempts: number;\n twoPointPercent: number;\n threePointPercent: number;\n freeThrowPercent: number;\n totalFreeThrowPercent: number;\n onePointPercent: number;\n dunksMadePercent: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n drawnFouls: number;\n drawnWrestlerAttempts: number;\n drawnWrestlerWonAttempts: number;\n drawnWrestlerLostAttempts: number;\n wrestlerScrums: number;\n wrestlerScrumsWon: number;\n wrestlerScrumsLost: number;\n wrestlerScrumsTie: number;\n wrestlerScrumPoints: number;\n wrestlerScrumsWonPercent: number;\n wrestlerScrumsCounterattack: number;\n wrestlerScrumsCounterattackPoints: number;\n scrums: number;\n scrumsWon: number;\n scrumsLost: number;\n scrumsTie: number;\n scrumPoints: number;\n scrumsWonPercent: number;\n scrumsBallAdvantageWon: number;\n scrumsBallAdvantageLost: number;\n scrumsBallAdvantageTie: number;\n scrumsBallAdvantageTotal: number;\n scrumsBallAdvantageWonPercent: number;\n totalScrums: number;\n yellowCards: number;\n redCards: number;\n gameTime: number;\n plusMinus: number;\n newbie: boolean;\n rank: number;\n\n get totalFouls() {\n return Math.floor(10 * (\n (this.personalFouls || 0)\n )) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get tournamentTeamPoints(): number {\n return this.tournamentTeam && this.tournamentTeam.points;\n }\n\n get onePointsPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n get twoPointsPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n get threePointsPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n get dunkMadePercent(): number {\n return !this.dunksMade || !this.dunkAttempts ? 0 : Math.round(1000 * this.dunksMade / this.dunkAttempts) / 10;\n }\n\n get freeThrowsPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, listField } from './util';\nimport { TournamentGroup } from './tournament-group';\nimport { TournamentDivision } from './tournament-division';\nimport { TournamentTeam } from './tournament-team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n competitor_team_id: 'competitorTeamId',\n team_score: 'teamScore',\n competitor_team_score: 'competitorTeamScore',\n }\n})\nexport class RoundTeamGame extends BaseModel {\n id: number;\n teamId: number;\n competitorTeamId: number;\n teamScore: number;\n competitorTeamScore: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_round_id: 'tournamentRoundId',\n tournament_team: 'tournamentTeam',\n group: 'group',\n division: 'division',\n division_id: 'divisionId',\n points: 'points',\n handicap: 'handicap',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n draw_games_count: 'drawGamesCount',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n games_won_percent: 'gamesWonPercent',\n score_points_sum: 'scorePointsSum',\n missed_points_sum: 'missedPointsSum',\n win_normal_time_games_count: 'winNormalTimeGamesCount',\n lose_normal_time_games_count: 'loseNormalTimeGamesCount',\n win_overtime_games_count: 'winOvertimeGamesCount',\n lose_overtime_games_count: 'loseOvertimeGamesCount',\n last_games_won: 'lastGamesWon',\n last_games_count: 'lastGamesCount',\n tries_scored: 'triesScored',\n tries_missed: 'triesMissed',\n attack_bonuses: 'attackBonuses',\n defense_bonuses: 'defenseBonuses',\n games_by_score_count: 'gamesByScoreCount',\n games: 'games',\n },\n relation: {\n group: TournamentGroup,\n division: TournamentDivision,\n tournamentTeam: TournamentTeam,\n games: listField(RoundTeamGame),\n }\n})\nexport class TournamentRoundTeam extends BaseModel {\n private _games: RoundTeamGame[];\n\n id: number;\n tournamentRoundId: number;\n tournamentTeam: TournamentTeam;\n group: TournamentGroup;\n division: TournamentDivision;\n divisionId: number;\n points: number;\n handicap: number;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n drawGamesCount: number;\n scoreSum: number;\n missedSum: number;\n scorePointsSum: number;\n missedPointsSum: number;\n winNormalTimeGamesCount: number;\n loseNormalTimeGamesCount: number;\n winOvertimeGamesCount: number;\n loseOvertimeGamesCount: number;\n gamesWonPercent: number;\n lastGamesWon: number;\n lastGamesCount: number;\n triesScored: number;\n triesMissed: number;\n attackBonuses: number;\n defenseBonuses: number;\n gamesByScoreCount: {[key: string]: number};\n gamesMapping: {[key: number]: RoundTeamGame[]} = {};\n\n set games(value: RoundTeamGame[]) {\n this._games = value;\n this.gamesMapping = value.reduce((acc, game) => {\n const competitorTeamId = game.teamId === this.tournamentTeam.team.id ? game.competitorTeamId : game.teamId;\n return {\n ...acc,\n [competitorTeamId]: [\n ...(acc[competitorTeamId] || []),\n game,\n ]\n };\n }, {});\n }\n\n get games(): RoundTeamGame[] {\n return this._games;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Tournament } from '../models/tournament';\nimport { map } from 'rxjs/operators';\nimport { TournamentNews } from '../models/tournament-news';\nimport { Game, GameStatuses } from '../models/game';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { Playoff } from '../models/playoff';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyStatistic } from '../models/hockey-statistic';\nimport { FootballStatistic } from '../models/football-statistic';\nimport { LeagueUserPermissions } from '../models/league-user';\nimport { HandballStatistic } from '../models/handball-statistic';\nimport { RugbyStatistic } from '../models/rugby-statistic';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { TeamAchievement } from '../models/team-achievement';\nimport { WaterpoloStatistic } from '../models/waterpolo-statistic';\nimport { TournamentRound } from '../models/tournament-round';\nimport { TournamentDivision } from '../models/tournament-division';\nimport { UserGender } from '../models/user';\nimport { GameUserLimitations } from '../models/game-user-limitation';\nimport { GameHockeyPosition } from '../models/hockey-profile';\nimport { GameFootballPosition } from '../models/football-profile';\nimport { GameHandballPosition } from '../models/handball-profile';\nimport { GameWaterpoloPosition } from '../models/waterpolo-profile';\nimport { GameBasketballPosition } from '../models/basketball-profile';\nimport { GameVolleyballPosition } from '../models/volleyball-profile';\nimport { GameRugbyPosition } from '../models/rugby-profile';\nimport { WrestballStatistic } from '../models/wrestball-statistic';\nimport { TournamentRoundTeam } from '../models/tournament-round-team';\n\nexport interface TournamentGamesFilters {\n tournamentIds?: number[];\n tournamentSeasonId?: number;\n tournamentStageId?: number;\n tournamentRoundId?: number;\n tournamentGroupId?: number;\n divisionId?: number;\n tournamentTour?: number;\n teamId?: number;\n playoffStage?: number;\n playoffRound?: number;\n playoffId?: number;\n isPlayoff?: boolean;\n status?: GameStatuses;\n statuses?: GameStatuses[];\n tournamentCourtId?: number;\n leaguePlayerId?: number;\n userId?: number;\n query?: string;\n date_from?: string;\n date_to?: string;\n}\n\nexport type StatisticGroupByTypes = 'team' | 'user' | 'team_user' | 'tournament_team' | 'league_player' | 'tournament_team_user'\n | 'month' | 'win_loses';\n\nexport interface StatisticFilters {\n league_id?: number;\n tournament_id?: number;\n tournament_ids?: number[];\n tournament_season_id?: number;\n tournament_season_ids?: number[];\n tournament_team_id?: number;\n league_player_id?: number;\n tournament_team_user_id?: number;\n team_id?: number;\n team_user_id?: number;\n user_id?: number;\n tournament_stage_id?: number;\n tournament_round_id?: number;\n division_id?: number;\n tournament_group_id?: number;\n tournament_tour?: number;\n playoff_stage?: number;\n playoff_round?: number;\n playoff_id?: number;\n is_playoff?: boolean;\n date_from?: string;\n date_to?: string;\n query?: string;\n gender?: UserGender;\n basketball_position?: GameBasketballPosition;\n volleyball_position?: GameVolleyballPosition;\n hockey_position?: GameHockeyPosition;\n football_position?: GameFootballPosition;\n handball_position?: GameHandballPosition;\n waterpolo_position?: GameWaterpoloPosition;\n rugby_position?: GameRugbyPosition;\n league_player_field_value?: {[key: string]: string};\n tournament_team_field_value?: {[key: string]: string};\n per_game?: boolean;\n group_by: StatisticGroupByTypes;\n only_closed?: boolean;\n check_ignore_game?: boolean;\n min_games_count?: number;\n order_by?: string;\n page?: number;\n size?: number;\n}\n\nexport interface StatisticLeadersFilters {\n tournament_id?: number;\n tournament_ids?: number[];\n tournament_season_id?: number;\n tournament_team_id?: number;\n team_id?: number;\n tournament_stage_id?: number;\n tournament_tour?: number;\n playoff_stage?: number;\n playoff_id?: number;\n date_from?: string;\n date_to?: string;\n per_game?: boolean;\n group_by: StatisticGroupByTypes;\n size?: number;\n fields: string[];\n}\n\nexport interface TournamentEventsListFilter {\n event?: TournamentEventTypes;\n search?: string;\n tournamentTour?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(tournamentId: number): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/${alias}/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getSeasonTournaments(seasonTournamentId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/season_tournament/${seasonTournamentId}/tournaments/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getNews(tournamentId: number): Promise<TournamentNews[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`)\n .pipe(map(result => TournamentNews.toFront(result)))\n .toPromise();\n }\n\n async getEvents(tournamentId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/events/`, {params, observe: 'response'})\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getTournamentStages(tournamentId: number): Promise<TournamentStage[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stages/`).pipe(\n map(data => TournamentStage.toFront(data))\n ).toPromise();\n }\n\n async getTournamentRounds(tournamentId: number): Promise<TournamentRound[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/rounds/`).pipe(\n map(data => TournamentRound.toFront(data)),\n ).toPromise();\n }\n\n async getTournamentDivisions(tournamentId: number): Promise<TournamentDivision[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/divisions/`).pipe(\n map(data => TournamentDivision.toFront(data)),\n ).toPromise();\n }\n\n async getPlayoff(tournamentId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/playoff/`).pipe(\n map(result => Playoff.toFront(result))\n ).toPromise();\n }\n\n async getPlayoffGames(playoffId: number, playoffNumber?: string): Promise<Game[]> {\n let params = new HttpParams();\n if (playoffNumber) {\n params = params.set('playoff_number', playoffNumber);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_playoff/${playoffId}/games/`,\n {params}\n ).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getGamesStages(tournamentId: number, roundId?: number): Promise<GameTimelineStages> {\n let params = new HttpParams();\n if (roundId) {\n params = params.set('tournament_round_id', roundId.toString());\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_stages/`,\n {params}\n )\n .pipe(map(data => GameTimelineStages.toFront(data)))\n .toPromise();\n }\n\n async getGames(tournamentId: number, page: number, size: number, filters: TournamentGamesFilters = {}): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games/`, {params, observe: 'response'})\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))).toPromise();\n }\n\n async getGamesDates(tournamentId: number): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_dates/`,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: result.body\n }))\n ).toPromise();\n }\n\n async getGroups(tournamentId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/groups/`)\n .pipe(map(result => TournamentGroup.toFront(result)))\n .toPromise();\n }\n\n async getTeams(tournamentId: number, groupId?: number, short?: boolean, micro?: boolean): Promise<TournamentTeam[]> {\n let params = new HttpParams();\n if (groupId) {\n params = params.set('group_id', groupId.toString());\n }\n if (short) {\n params = params.set('short', '1');\n }\n if (micro) {\n params = params.set('micro', '1');\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams/`, {params})\n .pipe(map(result => TournamentTeam.toFront(result)))\n .toPromise();\n }\n\n async getStageTeams(tournamentId: number): Promise<TournamentStageTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stage_teams/`)\n .pipe(map(result => TournamentStageTeam.toFront(result)))\n .toPromise();\n }\n\n async getTeamsAchievements(tournamentId: number): Promise<TeamAchievement[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/achievements/`)\n .pipe(map(result => TeamAchievement.toFront(result)))\n .toPromise();\n }\n\n async getTeamById(tournamentTeamId: number): Promise<TournamentTeam> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/`)\n .pipe(map(result => TournamentTeam.toFront(result)))\n .toPromise();\n }\n\n async getTeamRoundTeams(tournamentTeamId: number): Promise<TournamentRoundTeam[]> {\n return this.httpClient.get<object[]>(\n `${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/tournament_round_teams/`\n ).pipe(\n map(response => TournamentRoundTeam.toFront(response))\n ).toPromise();\n }\n\n async getUserById(userId: number): Promise<TournamentTeamUser> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${userId}/`)\n .pipe(map(result => TournamentTeamUser.toFront(result)))\n .toPromise();\n }\n\n async getUserGames(tournamentUserId: number): Promise<Game[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${tournamentUserId}/games/`)\n .pipe(map(result => Game.toFront(result)))\n .toPromise();\n }\n\n async downloadTable(tournamentId: number, format: 'pdf' | 'xlsx', isChess?: boolean): Promise<any> {\n let httpParams = new HttpParams().set('file_type', format);\n if (isChess) {\n httpParams = httpParams.set('isChess', true);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/table_file/`, {\n params: httpParams,\n responseType: 'blob'\n }).toPromise();\n }\n\n async getBasketballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: BasketballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/basketball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = BasketballStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getVolleyballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: VolleyballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/volleyball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = VolleyballStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getHockeyStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: HockeyStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/hockey_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = HockeyStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getFootballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: FootballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/football_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = FootballStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getHandballStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: HandballStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/handball_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = HandballStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getWaterpoloStatisticLeaders(filters: StatisticLeadersFilters): Promise<{[key: string]: WaterpoloStatistic[]}> {\n let params = new HttpParams();\n params = applyStatisticLeadersFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/waterpolo_statistic_leaders/`, {params}).pipe(\n map((result: {[key: string]: any[]}) => {\n for (const key of Object.keys(result)) {\n result[key] = WaterpoloStatistic.toFront(result[key]);\n }\n return result;\n })\n ).toPromise();\n }\n\n async getBasketballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<BasketballStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/basketball_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: BasketballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getVolleyballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<VolleyballStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/volleyball_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: VolleyballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getHockeyStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<HockeyStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/hockey_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: HockeyStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getFootballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<FootballStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/football_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: FootballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getHandballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<HandballStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/handball_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: HandballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getRugbyStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<RugbyStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/rugby_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: RugbyStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getWaterpoloStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<WaterpoloStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/waterpolo_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: WaterpoloStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getWrestballStatistic(filters?: StatisticFilters): Promise<PaginatedResponse<WrestballStatistic[]>> {\n const data = applyStatisticFilters(filters);\n\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/wrestball_statistic/`,\n data,\n {observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: WrestballStatistic.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getTournamentTeamUsers(tournamentTeamId: number, includes: string[] = []): Promise<TournamentTeamUser[]> {\n let params = new HttpParams();\n for (const include of includes) {\n params = params.append('include', include);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/users/`, {params}).pipe(\n map(result => TournamentTeamUser.toFront(result))\n ).toPromise();\n }\n\n async myPermission(tournamentId: number): Promise<LeagueUserPermissions[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/permission/`).pipe(\n map((data: any) => (data.permissions || []).map(item => LeagueUserPermissions[item]))\n ).toPromise();\n }\n\n async getTournamentTeamTournaments(tournamentTeamId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getTournamentUserTournaments(tournamentTeamUserId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${tournamentTeamUserId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getTournamentTeamUsersLimitation(tournamentTeamId: number): Promise<GameUserLimitations[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/users_limitation/`).pipe(\n map(result => GameUserLimitations.toFront(result)),\n ).toPromise();\n }\n\n async downloadTeamSanctionList(tournamentTeamId: number, fileType: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/sanction_list_file/?file_type=${fileType}`, {\n params: new HttpParams().set('file_type', fileType),\n responseType: 'blob'\n }).toPromise();\n }\n}\n\nexport function applyGamesFilters(filters: TournamentGamesFilters, params: HttpParams): HttpParams {\n if (filters.tournamentIds) {\n params = params.set('tournament_ids', filters.tournamentIds.join(','));\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.tournamentRoundId) {\n params = params.set('tournament_round_id', filters.tournamentRoundId.toString());\n }\n if (filters.tournamentGroupId) {\n params = params.set('tournament_group_id', filters.tournamentGroupId.toString());\n }\n if (filters.divisionId) {\n params = params.set('division_id', filters.divisionId.toString());\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.playoffRound) {\n params = params.set('playoff_round', filters.playoffRound.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n if (filters.tournamentCourtId) {\n params = params.set('tournament_court_id', filters.tournamentCourtId.toString());\n }\n if (filters.leaguePlayerId) {\n params = params.set('league_player_id', filters.leaguePlayerId.toString());\n }\n if (filters.userId) {\n params = params.set('user_id', filters.userId.toString());\n }\n if (filters.query) {\n params = params.set('query', filters.query);\n }\n if (filters.date_from) {\n params = params.set('date_from', filters.date_from);\n }\n if (filters.date_to) {\n params = params.set('date_to', filters.date_to);\n }\n if (filters.isPlayoff !== undefined && filters.isPlayoff !== null) {\n params = params.set('is_playoff', filters.isPlayoff ? '1' : '0');\n }\n return params;\n}\n\nexport function applyStatisticFilters(filters: StatisticFilters): object {\n const rawFilters = {};\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n if (key === 'basketball_position') {\n rawFilters[key] = GameBasketballPosition[filters[key]];\n } else if (key === 'volleyball_position') {\n rawFilters[key] = GameVolleyballPosition[filters[key]];\n } else if (key === 'hockey_position') {\n rawFilters[key] = GameHockeyPosition[filters[key]];\n } else if (key === 'football_position') {\n rawFilters[key] = GameFootballPosition[filters[key]];\n } else if (key === 'handball_position') {\n rawFilters[key] = GameHandballPosition[filters[key]];\n } else if (key === 'waterpolo_position') {\n rawFilters[key] = GameWaterpoloPosition[filters[key]];\n } else if (key === 'rugby_position') {\n rawFilters[key] = GameRugbyPosition[filters[key]];\n } else {\n rawFilters[key] = filters[key];\n }\n }\n }\n\n if (filters.per_game !== undefined) {\n rawFilters['per_game'] = filters.per_game ? '1' : '0';\n }\n\n if (filters.tournament_ids) {\n rawFilters['tournament_ids'] = filters.tournament_ids.join(',');\n }\n\n if (filters.tournament_season_ids) {\n rawFilters['tournament_season_ids'] = filters.tournament_season_ids.join(',');\n }\n\n if (filters.is_playoff !== undefined && filters.is_playoff !== null) {\n rawFilters['is_playoff'] = filters.is_playoff ? '1' : '0';\n }\n\n if (filters.only_closed !== undefined && filters.only_closed !== null) {\n rawFilters['only_closed'] = filters.only_closed ? '1' : '0';\n }\n\n if (filters.check_ignore_game !== undefined && filters.check_ignore_game !== null) {\n rawFilters['check_ignore_game'] = filters.check_ignore_game ? '1' : '0';\n }\n\n return rawFilters;\n}\n\nexport function applyStatisticLeadersFilters(filters: StatisticLeadersFilters, params: HttpParams): HttpParams {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n\n if (filters.tournament_ids) {\n params = params.set('tournament_ids', filters.tournament_ids.join(','));\n }\n if (filters.fields) {\n params = params.set('fields', filters.fields.join(','));\n }\n return params;\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n link: 'link',\n sort: 'sort',\n },\n relation: {\n picture: File\n }\n})\nexport class LeaguePartner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import {ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField} from './util';\nimport {File} from './file';\n\nexport enum BannerLocation {\n slider = 'slider',\n central = 'central',\n media = 'media',\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n link: 'link',\n sort: 'sort',\n location: 'location',\n },\n relation: {\n picture: File,\n location: enumField(BannerLocation),\n }\n})\nexport class LeagueBanner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n location: BannerLocation;\n\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n file: 'file',\n },\n relation: {\n file: File,\n }\n})\nexport class LeagueDocument extends BaseModel {\n id: number;\n file: File;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { Team } from './team';\nimport { LeaguePlayer } from './league-player';\n\n@ModelInstance({\n mappingFields: {\n teams: 'teams',\n league_players: 'leaguePlayers',\n },\n relation: {\n teams: listField(Team),\n leaguePlayers: listField(LeaguePlayer),\n }\n})\nexport class TeamsAndUsers extends BaseModel {\n teams: Team[];\n leaguePlayers: LeaguePlayer[];\n\n get isEmpty(): boolean {\n return (!this.teams || this.teams.length === 0) &&\n (!this.leaguePlayers || this.leaguePlayers.length === 0);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n },\n})\nexport class SeasonTournament extends BaseModel {\n id: number;\n name: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { League } from '../models/league';\nimport { map } from 'rxjs/operators';\nimport { Tournament, TournamentStatuses } from '../models/tournament';\nimport { ConfigService } from '../services/config.service';\nimport { applyGamesFilters, TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { GameMediaFilters } from './media-api';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { Game, GameStatuses } from '../models/game';\nimport { LeaguePartner } from '../models/league-partner';\nimport { LeagueCourt } from '../models/league-court';\nimport { BannerLocation, LeagueBanner } from '../models/league-banner';\nimport { LeagueDocument } from '../models/league-document';\nimport { TeamsAndUsers } from '../models/teams-and-users';\nimport { SeasonTournament } from '../models/season-tournament';\nimport { LeaguePlayerField } from '../models/league-player-field';\n\nexport enum TournamentFilterStatusEnum {\n open = 1,\n recruitment,\n in_progress,\n closed,\n}\n\nexport interface TournamentListFilters {\n search?: string;\n statuses?: TournamentStatuses[];\n tournamentStatus?: TournamentFilterStatusEnum;\n seasonId?: number;\n seasonTournamentId?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class LeagueApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getByAlias(alias: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${alias}/`).pipe(\n map(result => League.toFront(result))\n ).toPromise();\n }\n\n async getByDomain(domain: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/by_domain/${domain}/`).pipe(\n map(result => League.toFront(result))\n ).toPromise();\n }\n\n async getSeasonTournaments(leagueId: number): Promise<SeasonTournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/season_tournaments/`).pipe(\n map(response => SeasonTournament.toFront(response)),\n ).toPromise();\n }\n\n async getTournaments(leagueId: number, filters?: TournamentListFilters): Promise<Tournament[]> {\n let params = new HttpParams();\n if (filters) {\n params = applyTournamentListFilters(params, filters);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/`, {params}).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getTournamentsPaginated(\n leagueId: number,\n page: number,\n size: number,\n filters?: TournamentListFilters,\n ): Promise<PaginatedResponse<Tournament[]>> {\n let params = new HttpParams().set('page', page).set('size', size);\n if (filters) {\n params = applyTournamentListFilters(params, filters);\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/`,\n {params, observe: 'response'}\n ).pipe(\n map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: Tournament.toFront(response.body)\n }))\n ).toPromise();\n }\n\n async getEvents(\n leagueId: number,\n page: number,\n size: number,\n filters?: TournamentEventsListFilter,\n ): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/events/`,\n {params, observe: 'response'},\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getTournamentSeasons(leagueId: number): Promise<TournamentSeason[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`).pipe(\n map(result => TournamentSeason.toFront(result))\n ).toPromise();\n }\n\n async getGames(leagueId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/games/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getSeasons(leagueId: number, page = 1, size = 20, notClosed?: boolean, include?: string[]): Promise<PaginatedResponse<TournamentSeason[]>> {\n const params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString())\n .set('not_closed', notClosed ? '1' : '')\n .set('include', include ? include.join(',') : '');\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`, {\n params,\n observe: 'response'\n })\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentSeason.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getPartners(leagueId: number): Promise<LeaguePartner[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/partners/`).pipe(\n map(result => LeaguePartner.toFront(result))\n ).toPromise();\n }\n\n async getBanners(leagueId: number, location?: BannerLocation): Promise<LeagueBanner[]> {\n const params = location ? new HttpParams().set('location', location) : new HttpParams();\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/banners/`, {params}).pipe(\n map(result => LeagueBanner.toFront(result))\n ).toPromise();\n }\n\n async getCourts(leagueId: number): Promise<LeagueCourt[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/courts/`).pipe(\n map(result => LeagueCourt.toFront(result))\n ).toPromise();\n }\n\n async getGraphicSettings(leagueId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/graphic_settings/`)\n .toPromise();\n }\n\n async getDocuments(leagueId: number): Promise<LeagueDocument[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/documents/`).pipe(\n map(result => LeagueDocument.toFront(result))\n ).toPromise();\n }\n\n async searchTeamsAndUsers(leagueId: number, query: string): Promise<TeamsAndUsers> {\n const params = (new HttpParams()).set('query', query);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/team_and_user_search/`, {params}\n ).pipe(\n map(result => TeamsAndUsers.toFront(result))\n ).toPromise();\n }\n\n async getLeaguePlayerFields(leagueId: number): Promise<LeaguePlayerField[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/player_fields/`).pipe(\n map(result => LeaguePlayerField.toFront(result)),\n ).toPromise();\n }\n}\n\nfunction applyTournamentListFilters(params: HttpParams, filters: TournamentListFilters): HttpParams {\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.statuses) {\n params = params.set('statuses', filters.statuses.map(s => TournamentStatuses[s]).join(','));\n }\n if (filters.tournamentStatus) {\n params = params.set('tournament_status', TournamentFilterStatusEnum[filters.tournamentStatus]);\n }\n if (filters.seasonId) {\n params = params.set('season_id', filters.seasonId);\n }\n if (filters.seasonTournamentId) {\n params = params.set('season_tournament_id', filters.seasonTournamentId);\n }\n return params;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { LeagueNews, LeagueNewsType } from '../models/league-news';\nimport { map } from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class LeagueNewsApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getLeagueNewsList(leagueId: number, page: number, size: number, type: LeagueNewsType = LeagueNewsType.text, seasonId?: number): Promise<PaginatedResponse<LeagueNews[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString())\n .set('type', LeagueNewsType[type]);\n if (seasonId) {\n params = params.set('season', seasonId.toString());\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/`, {params, observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: LeagueNews.toFront(response.body)\n })))\n .toPromise();\n }\n\n async getMainLeagueNews(leagueId: number): Promise<LeagueNews> {\n return this.httpClient.get<any[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => response && response.length > 0 ? LeagueNews.toFront(response[0]) : null))\n .toPromise();\n }\n\n async getMainLeagueNewsList(leagueId: number): Promise<LeagueNews[]> {\n return this.httpClient.get<any[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => LeagueNews.toFront(response)))\n .toPromise();\n }\n\n async getNewsById(newsId: number): Promise<LeagueNews> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_news/${newsId}/`)\n .pipe(map(response => LeagueNews.toFront(response)))\n .toPromise();\n }\n\n async getTournamentNewsList(tournamentId: number): Promise<PaginatedResponse<LeagueNews[]>> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`, {observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: LeagueNews.toFront(response.body)\n })))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { LeaguePlayer } from '../models/league-player';\nimport { map } from 'rxjs/operators';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\n\n@Injectable({providedIn: 'root'})\nexport class LeaguePlayerApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(leaguePlayerId: number): Promise<LeaguePlayer> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_player/${leaguePlayerId}/`).pipe(\n map(item => LeaguePlayer.toFront(item))\n ).toPromise();\n }\n\n getTournamentUsers(leaguePlayerId: number, seasonId?: number): Promise<TournamentTeamUser[]> {\n let params = new HttpParams();\n if (seasonId) {\n params = params.set('season_id', seasonId.toString());\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_player/${leaguePlayerId}/tournament_users/`, {params}).pipe(\n map(item => TournamentTeamUser.toFront(item))\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\n\ninterface LeagueTeamFilters {\n tournament_id?: number;\n tournament_season_id?: number;\n query?: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class LeagueTeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getLeagueTeams(filters?: LeagueTeamFilters): Promise<Team[]> {\n let params = new HttpParams();\n if (filters) {\n if (filters.tournament_id) {\n params = params.set('tournament_id', filters.tournament_id);\n }\n if (filters.tournament_season_id) {\n params = params.set('tournament_season_id', filters.tournament_season_id);\n }\n if (filters.query) {\n params = params.set('query', filters.query);\n }\n }\n return this.httpClient.get<any[]>(`${this.configService.get('apiUrl')}/api/v1/league_team/`, {params}).pipe(\n map(response => response.map(item => Team.toFront(item))),\n ).toPromise();\n }\n\n async getLeagueTeam(teamId: number): Promise<Team> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_team/${teamId}/`).pipe(\n map(response => Team.toFront(response)),\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { MediaItem } from '../models/media-item';\nimport { Game, GameStatuses } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\nimport { applyGamesFilters, TournamentGamesFilters } from './tournament-api';\n\nexport interface GameMediaFilters extends TournamentGamesFilters {\n mediaCount?: number;\n}\n\nexport interface MediaFilters {\n mediaType?: 'photo' | 'video' | 'live_video';\n sort?: string;\n teamId?: number;\n statuses?: GameStatuses[];\n}\n\n@Injectable({providedIn: 'root'})\nexport class MediaApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getMedia(mediaId: number): Promise<MediaItem> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/`).pipe(\n map(result => MediaItem.toFront(result))\n ).toPromise();\n }\n\n async getTournamentGameMedia(tournamentId: number, page: number, size: number, filters?: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/game_media/`, {observe: 'response', params}).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getLeagueGameMedia(leagueId: number, page: number, size: number, filters?: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/game_media/`, {observe: 'response', params}).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getLeagueMedia(leagueId: number, page: number, size: number, filters: MediaFilters = {}): Promise<PaginatedResponse<MediaItem[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters.mediaType) {\n params = params.set('media_type', filters.mediaType);\n }\n if (filters.sort) {\n params = params.set('sort', filters.sort);\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/media/`, {params, observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: MediaItem.toFront(response.body)\n }))).toPromise();\n }\n\n async getGameMediaById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/game_media/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getGameMedia(gameId: number): Promise<MediaItem[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/media/?size=1000`).pipe(\n map(result => MediaItem.toFront(result))\n ).toPromise();\n }\n\n async createZip(mediaIds: number[]): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/media/zip/`, mediaIds, { responseType: 'blob' })\n .toPromise();\n }\n\n async downloadMedia(mediaId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/download/`,{responseType: 'blob'})\n .toPromise();\n }\n}\n\nexport function applyGameMediaFilters(filters: GameMediaFilters, params: HttpParams, ): HttpParams {\n if (filters) {\n params = applyGamesFilters(filters, params);\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.playoffId) {\n params = params.set('playoff_id', filters.playoffId.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.playoffRound) {\n params = params.set('playoff_round', filters.playoffRound.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.mediaCount) {\n params = params.set('media_count', filters.mediaCount.toString());\n }\n }\n return params;\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { User } from './user';\n\nexport enum PollStatuses {\n open = 1,\n closed,\n archived,\n}\n\n@ModelInstance({\n mappingFields: {\n uuid: 'uuid',\n name: 'name'\n }\n})\nexport class PollVariant extends BaseModel {\n uuid: string;\n name: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n answer_uuid: 'answerUuid',\n user: 'user',\n poll_id: 'pollId',\n },\n relation: {\n user: User\n }\n})\nexport class PollAnswer extends BaseModel {\n id: number;\n answerUuid: string;\n user: User;\n pollId: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n active: 'active',\n status: 'status',\n team_id: 'teamId',\n name: 'name',\n description: 'description',\n variants: 'variants',\n author: 'author',\n answers: 'answers',\n multiple_answer: 'multipleAnswer',\n anonymous: 'anonymous',\n created_at: 'createdAt'\n },\n relation: {\n status: enumField(PollStatuses),\n variants: PollVariant,\n author: User,\n answers: PollAnswer,\n createdAt: DateTimeField,\n }\n})\nexport class Poll extends BaseModel {\n id: number;\n active: boolean;\n teamId: number;\n status: PollStatuses;\n name: string;\n description: string;\n _variants: PollVariant[];\n author: User;\n _answers: PollAnswer[];\n multipleAnswer: boolean;\n anonymous: boolean;\n createdAt: Date;\n variantsWithAnswers: {variant: PollVariant, percent: number}[] = [];\n\n set variants(value: PollVariant[]) {\n this._variants = value || [];\n if (this._answers) {\n this.calculateAnswersPercentage();\n }\n }\n get variants(): PollVariant[] {\n return this._variants;\n }\n\n set answers(value: PollAnswer[]) {\n this._answers = value || [];\n if (this._variants) {\n this.calculateAnswersPercentage();\n }\n }\n get answers(): PollAnswer[] {\n return this._answers;\n }\n\n calculateAnswersPercentage() {\n if (!this._answers.length) {\n return;\n }\n\n const variants = this._variants.map(v => v.uuid);\n const answersByVariant = this._answers.reduce((acc, item) => {\n if (variants.indexOf(item.answerUuid) < 0) {\n return acc;\n }\n if (!acc[item.answerUuid]) {\n acc[item.answerUuid] = 0;\n }\n acc[item.answerUuid]++;\n return acc;\n }, {});\n this.variantsWithAnswers = this._variants.map(item => ({\n variant: item,\n percent: answersByVariant[item.uuid] ? Math.round(100 * answersByVariant[item.uuid] / this._answers.length) : 0\n }))\n .sort((a, b) => a.percent > b.percent ? -1 : 1);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n user: 'user',\n team: 'team',\n team_id: 'teamId',\n user_accept: 'userAccept',\n team_accept: 'teamAccept',\n users_count: 'usersCount',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n score_sum: 'scoreSum',\n created_at: 'createdAt',\n updated_at: 'updatedAt',\n },\n relation: {\n user: User,\n team: Team,\n createdAt: DateTimeField,\n updateAt: DateTimeField,\n }\n})\nexport class TeamInvite extends BaseModel {\n id: number;\n userId: number;\n user: User;\n teamId: number;\n team: Team;\n userAccept: boolean;\n teamAccept: boolean;\n usersCount: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n createdAt: Date;\n updatedAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { TeamUser } from './team-user';\nimport { Game } from './game';\n\nexport enum GameInviteStatus {\n accepted = 1,\n declined,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_user: 'teamUser',\n game_id: 'gameId',\n game: 'game',\n status: 'status',\n },\n relation: {\n game: Game,\n teamUser: TeamUser,\n status: enumField(GameInviteStatus),\n }\n})\nexport class GameInvite extends BaseModel {\n id: number;\n teamUser: TeamUser;\n gameId: number;\n game: Game;\n status: GameInviteStatus;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","export enum TeamEventTypes {\n training = 1,\n other = 2,\n}\n","import { TeamEventTypes } from '../models/team-event-type';\nimport { Locales } from './locales';\n\nexport const TeamEventTypeLocalization = {\n [Locales.ru]: {\n [TeamEventTypes.training]: 'Тренировка',\n [TeamEventTypes.other]: 'Другое',\n },\n [Locales.en]: {\n [TeamEventTypes.training]: 'Training',\n [TeamEventTypes.other]: 'Other',\n }\n};\n","import { BaseModel, enumField, ModelInstance, DateTimeField, ToBackHook, ToFrontHook } from './util';\nimport { Team } from './team';\nimport { TeamEventTypeLocalization } from '../localization/team-event-type';\nimport { TeamEventTypes } from './team-event-type';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n team: 'team',\n event_type: 'eventType',\n event_custom_name: 'eventCustomName',\n description: 'description',\n datetime: 'datetime',\n location: 'location',\n },\n relation: {\n eventType: enumField(TeamEventTypes),\n team: Team,\n datetime: DateTimeField,\n }\n})\nexport class TeamEvent extends BaseModel {\n id: number;\n teamId: number;\n team: Team;\n eventType: TeamEventTypes;\n eventCustomName: string;\n description: string;\n datetime: Date;\n location: string;\n\n get name(): string {\n if (this.eventType === TeamEventTypes.other) {\n return this.eventCustomName;\n }\n return TeamEventTypeLocalization[this.eventType];\n }\n\n get isClosed(): boolean {\n return this.datetime.getTime() < new Date().getTime();\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum TeamEventInviteStatuses {\n accepted = 1,\n declined = 2\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_event_id: 'teamEventId',\n team_user_id: 'teamUserId',\n status: 'status',\n },\n relation: {\n status: enumField(TeamEventInviteStatuses)\n }\n})\nexport class TeamEventInvite {\n id: number;\n teamEventId: number;\n teamUserId: number;\n status: TeamEventInviteStatuses;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\nimport { TeamUser } from './team-user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team_invite_id: 'tournamentTeamInviteId',\n tournament_team_id: 'tournamentTeamId',\n team_user: 'teamUser',\n accepted: 'accepted'\n },\n relation: {\n teamUser: TeamUser\n }\n})\nexport class TournamentTeamUserInvite extends BaseModel {\n id: number;\n tournamentTeamInviteId: number;\n tournamentTeamId: number;\n teamUser: TeamUser;\n accepted: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Team } from './team';\nimport { Tournament } from './tournament';\nimport { TournamentTeamUserInvite } from './tournament-team-user-invite';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team: 'team',\n tournament: 'tournament',\n team_accept: 'teamAccept',\n organization_accept: 'organizationAccept',\n user_invites_count: 'userInvitesCount',\n user_invites: 'userInvites',\n notifications_count: 'notificationsCount',\n },\n relation: {\n team: Team,\n tournament: Tournament,\n userInvites: TournamentTeamUserInvite,\n }\n})\nexport class TournamentInvite extends BaseModel {\n id: number;\n team: Team;\n tournament: Tournament;\n teamAccept: boolean;\n organizationAccept: boolean;\n userInvitesCount: number;\n userInvites: TournamentTeamUserInvite[];\n notificationsCount: number;\n\n get isOpen(): boolean {\n return (this.teamAccept === null || this.organizationAccept === null) && this.teamAccept !== false && this.organizationAccept !== false;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { Team } from './team';\nimport { Poll } from './poll';\nimport { Game } from './game';\nimport { TeamInvite } from './team-invite';\nimport { TeamUser } from './team-user';\nimport { GameInvite } from './game-invite';\nimport { TeamEvent } from './team-event';\nimport { TeamEventInvite } from './team-event-invite';\nimport { Tournament } from './tournament';\nimport { TournamentInvite } from './tournament-invite';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\n\nexport enum NotificationType {\n team_updated = 1,\n team_invited,\n team_join_request,\n team_join_declined_by_team,\n team_join_declined_by_user,\n team_join_canceled_by_team,\n team_join_canceled_by_user,\n team_joined_for_user,\n team_joined_for_team,\n team_user_role_changed_for_user,\n team_user_role_changed_for_team,\n team_user_number_changed,\n team_user_deleted_for_user,\n team_user_deleted_for_team,\n team_user_left,\n\n game_updated,\n game_invited,\n game_invite_accepted,\n game_invite_declined,\n game_remind,\n game_won,\n game_losing,\n game_tech_defeat,\n game_tech_victory,\n\n poll_created,\n poll_closed,\n\n team_event_invited,\n team_event_accepted,\n team_event_declined,\n team_event_remind,\n\n tournament_invited,\n tournament_joined,\n tournament_join_declined,\n tournament_join_canceled,\n tournament_user_invited,\n tournament_user_accepted_for_team,\n tournament_user_accepted_for_user,\n tournament_user_added,\n tournament_user_declined_for_team,\n tournament_user_declined_for_user,\n tournament_user_invite_deleted,\n tournament_user_deleted,\n tournament_user_disqualified_for_team,\n tournament_user_disqualified_for_user,\n tournament_user_disqualification_updated_for_team,\n tournament_user_disqualification_updated_for_user,\n tournament_team_deleted,\n\n org_tournament_invite_created,\n org_tournament_invite_declined,\n org_tournament_invite_deleted,\n org_tournament_invite_changed,\n org_tournament_user_deleted,\n org_tournament_user_invited,\n org_tournament_user_has_changes,\n org_tournament_team_leave,\n}\n\nexport enum NotificationServiceEnum {\n public = 1,\n org\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n event_type: 'event',\n data: 'data',\n initiator: 'initiator',\n team: 'team',\n team_invite: 'teamInvite',\n team_user: 'teamUser',\n poll: 'poll',\n game: 'game',\n game_invite: 'gameInvite',\n team_event: 'teamEvent',\n team_event_invite: 'teamEventInvite',\n tournament: 'tournament',\n tournament_invite: 'tournamentInvite',\n tournament_team: 'tournamentTeam',\n viewed: 'viewed',\n protected: 'protected',\n service: 'service',\n created_at: 'createdAt',\n },\n relation: {\n event: enumField(NotificationType),\n initiator: User,\n team: Team,\n teamInvite: TeamInvite,\n teamUser: TeamUser,\n poll: Poll,\n game: Game,\n gameInvite: GameInvite,\n teamEvent: TeamEvent,\n teamEventInvite: TeamEventInvite,\n tournament: Tournament,\n tournamentInvite: TournamentInvite,\n tournamentTeam: TournamentTeam,\n service: enumField(NotificationServiceEnum),\n createdAt: DateTimeField,\n }\n})\nexport class Notification extends BaseModel {\n id: number;\n event: NotificationType;\n data: any;\n initiator: User;\n team: Team;\n teamInvite: TeamInvite;\n teamUser: TeamUser;\n poll: Poll;\n game: Game;\n gameInvite: GameInvite;\n teamEvent: TeamEvent;\n teamEventInvite: TeamEventInvite;\n tournament: Tournament;\n tournamentInvite: TournamentInvite;\n tournamentTeam: TournamentTeam;\n viewed: boolean;\n protected: boolean;\n service: NotificationServiceEnum;\n createdAt: Date;\n\n get important(): boolean {\n return true;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum NotificationAllowTypes {\n all = 1,\n important,\n none\n}\n\n@ModelInstance({\n mappingFields: {\n user_id: 'userId',\n popup: 'popup',\n sound: 'sound',\n browser: 'browser',\n email: 'email'\n },\n relation: {\n sound: enumField(NotificationAllowTypes),\n browser: enumField(NotificationAllowTypes),\n }\n})\nexport class NotificationSettings extends BaseModel {\n userId: number;\n popup: boolean;\n sound: NotificationAllowTypes;\n browser: NotificationAllowTypes;\n email: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Notification } from '../models/notification';\nimport { NotificationSettings } from '../models/notification-settings';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\n\nexport interface NotificationFilters {\n protected?: boolean;\n not_viewed?: boolean;\n important?: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class NotificationBaseApi {\n protected apiUrl: string;\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCount(): Promise<number> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/count/`)\n .pipe(map(data => +data))\n .toPromise();\n }\n\n async getList(page: number, size: number, filters: NotificationFilters = {}): Promise<PaginatedResponse<Notification[]>> {\n let params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString());\n for (const key of Object.keys(filters)) {\n params = params.set(key, filters[key]);\n }\n\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/`, {params, observe: 'response'})\n .pipe(\n map(response => {\n const data: Notification[] = Notification.toFront(response.body);\n return {\n total: +response.headers.get('x-page-count'),\n data\n };\n }),\n ).toPromise();\n }\n\n async markViewed(notificationId: number, viewed: boolean): Promise<Notification> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/${notificationId}/viewed/`, {viewed})\n .pipe(map(data => Notification.toFront(data)))\n .toPromise();\n }\n\n async markAllViewed(): Promise<Notification[]> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/viewed/`, {})\n .pipe(map(data => Notification.toFront(data)))\n .toPromise();\n }\n\n async getNotificationSettings(): Promise<NotificationSettings> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`)\n .pipe(map(data => NotificationSettings.toFront(data)))\n .toPromise();\n }\n\n async updateNotificationSettings(data: NotificationSettings): Promise<NotificationSettings> {\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`,\n NotificationSettings.toBack(data)\n )\n .pipe(map(result => NotificationSettings.toFront(result)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class NotificationApi extends NotificationBaseApi {\n protected apiUrl = '/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class OrgNotificationApi extends NotificationBaseApi {\n protected apiUrl = '/org/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\nimport { City } from '../models/city';\nimport { Sport } from '../models/sport';\n\n@Injectable({providedIn: 'root'})\nexport class ReferenceApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCities(): Promise<City[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/reference/cities/`)\n .pipe(\n map(data => City.toFront(data))\n ).toPromise();\n }\n\n async getSports(): Promise<Sport[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/sport/`)\n .pipe(\n map(data => Sport.toFront(data))\n ).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { RugbyStatistic } from './rugby-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: RugbyStatistic,\n competitorTeam: RugbyStatistic\n }\n})\nexport class RugbyGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: RugbyStatistic;\n competitorTeam: RugbyStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n tries: 'tries',\n penalty_tries: 'penaltyTries',\n conversion_goals: 'conversionGoals',\n conversion_misses: 'conversionMisses',\n penalty_misses: 'penaltyMisses',\n penalty_goals: 'penaltyGoals',\n drop_goals: 'dropGoals',\n drop_goal_misses: 'dropGoalMisses',\n free_kicks: 'freeKicks',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n red_cards_20: 'redCards20',\n offloads: 'offloads',\n tackles: 'tackles',\n handling_errors: 'handlingErrors',\n carries_over_gainline: 'carriesOverGainline',\n foot_field_shots: 'footFieldShots',\n foot_out_shots: 'footOutShots',\n foot_kicks_50_22: 'footKicks5022',\n fouls: 'fouls',\n team_fouls: 'teamFouls',\n outs: 'outs',\n runs: 'runs',\n game_time: 'gameTime',\n plus_minus: 'plusMinus'\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class RugbyGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n tries: number;\n penaltyTries: number;\n conversionGoals: number;\n conversionMisses: number;\n penaltyMisses: number;\n penaltyGoals: number;\n dropGoals: number;\n dropGoalMisses: number;\n freeKicks: number;\n yellowCards: number;\n redCards: number;\n offloads: number;\n tackles: number;\n handlingErrors: number;\n carriesOverGainline: number;\n footFieldShots: number;\n footOutShots: number;\n footKicks5022: number;\n fouls: number;\n teamFouls: number;\n outs: number;\n runs: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get conversionKicks(): number {\n return (this.conversionGoals || 0) + (this.conversionMisses || 0);\n }\n\n get conversionGoalsPercent(): number {\n if (!this.conversionKicks) {\n return 0;\n }\n return Math.floor(1000 * this.conversionGoals / this.conversionKicks) / 10;\n }\n\n get penaltyKicksOnGoal(): number {\n return (this.penaltyGoals || 0) + (this.penaltyMisses || 0);\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penaltyKicksOnGoal) {\n return 0;\n }\n return Math.floor(1000 * this.penaltyGoals / this.penaltyKicksOnGoal) / 10;\n }\n\n get dropGoalKicks(): number {\n return (this.dropGoals || 0) + (this.dropGoalMisses || 0);\n }\n\n get dropGoalsPercent(): number {\n if (!this.dropGoalKicks) {\n return 0;\n }\n return Math.floor(1000 * this.dropGoals / this.dropGoalKicks) / 10;\n }\n\n get totalGoals(): number {\n return (this.conversionGoals || 0) + (this.dropGoals || 0) + (this.penaltyGoals || 0);\n }\n\n get footShots(): number {\n return (this.footFieldShots || 0) + (this.footOutShots || 0) + (this.footKicks5022 || 0);\n }\n\n get totalFouls(): number {\n return (this.fouls || 0) + (this.teamFouls || 0);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, listField, enumField } from './util';\n\nexport enum RugbyFoulSanctions {\n scrum = 1,\n lineout,\n free_kick,\n penalty_shot,\n yellow_card,\n red_card,\n start_kick,\n twenty_two_meters_kick,\n conversion_cancel\n}\n\nexport enum RugbyFoulGameStage {\n start_kick= 1,\n open_game,\n tackle,\n ruck_or_maul,\n scrum,\n out_and_lineout,\n scoring_field,\n kick_on_goal,\n free_kick,\n team,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n sanction: 'sanction',\n game_stage: 'gameStage',\n },\n relation: {\n sanction: listField(enumField(RugbyFoulSanctions)),\n gameStage: enumField(RugbyFoulGameStage),\n }\n})\nexport class RugbyFoulType extends BaseModel {\n id: number;\n name: string;\n sanction: RugbyFoulSanctions[];\n gameStage: RugbyFoulGameStage;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\nimport { RugbyFoulGameStage, RugbyFoulSanctions, RugbyFoulType } from './rugby-foul-type';\n\nexport enum RugbyGameLogTypes {\n enter_game = 1,\n exit_game,\n try,\n penalty_try,\n conversion_goal,\n conversion_miss,\n penalty_miss,\n penalty_goal,\n drop_goal,\n drop_goal_miss,\n free_kick,\n foul,\n yellow_card,\n red_card,\n red_card_20,\n offload,\n tackle,\n handling_error,\n carries_over_gainline,\n bleeding_injury,\n head_injury,\n end_game_penalty_miss,\n end_game_penalty_goal,\n foot_field_shot,\n foot_out_shot,\n foot_kick_50_22,\n run,\n\n // team actions\n timeout,\n tap_penalty,\n penalty_kick_to_touch,\n scrum_won,\n scrum_lost,\n scrum_won_free,\n lineout_won,\n lineout_lost,\n quick_throw,\n ruck_won,\n ruck_lost,\n maul_won,\n maul_lost,\n team_foul,\n start_kick,\n twenty_two_meters_kick,\n goal_kick,\n out\n}\n\nexport const RUGBY_GAME_LOG_TYPE_POINTS = {\n [RugbyGameLogTypes.penalty_try]: 7,\n [RugbyGameLogTypes.try]: 5,\n [RugbyGameLogTypes.conversion_goal]: 2,\n [RugbyGameLogTypes.penalty_goal]: 3,\n [RugbyGameLogTypes.drop_goal]: 3,\n [RugbyGameLogTypes.end_game_penalty_goal]: 1, // Не влияет на общий счет\n};\n\nexport const RUGBY_TEAM_LOG_TYPES = [\n RugbyGameLogTypes.timeout, RugbyGameLogTypes.scrum_won, RugbyGameLogTypes.scrum_lost, RugbyGameLogTypes.scrum_won_free,\n RugbyGameLogTypes.lineout_won, RugbyGameLogTypes.lineout_lost,\n RugbyGameLogTypes.quick_throw, RugbyGameLogTypes.ruck_won, RugbyGameLogTypes.ruck_lost,\n RugbyGameLogTypes.maul_won, RugbyGameLogTypes.maul_lost, RugbyGameLogTypes.team_foul,\n RugbyGameLogTypes.penalty_kick_to_touch, RugbyGameLogTypes.tap_penalty,\n RugbyGameLogTypes.start_kick, RugbyGameLogTypes.twenty_two_meters_kick, RugbyGameLogTypes.goal_kick,\n RugbyGameLogTypes.penalty_try, RugbyGameLogTypes.out\n];\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n group: 'group',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n foul_type: 'foulType',\n foul_sanction: 'foulSanction',\n foul_game_stage: 'foulGameStage',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(RugbyGameLogTypes),\n foulType: RugbyFoulType,\n foulSanction: enumField(RugbyFoulSanctions),\n foulGameStage: enumField(RugbyFoulGameStage),\n }\n})\nexport class RugbyGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n group: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: RugbyGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n foulType: RugbyFoulType;\n foulSanction: RugbyFoulSanctions;\n foulGameStage: RugbyFoulGameStage;\n\n compare(model: RugbyGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return RUGBY_GAME_LOG_TYPE_POINTS[this.logType] !== undefined;\n }\n\n scorePoints(): number {\n return RUGBY_GAME_LOG_TYPE_POINTS[this.logType];\n }\n\n isAfter(log: RugbyGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n isFoulType(): boolean {\n return [RugbyGameLogTypes.team_foul, RugbyGameLogTypes.foul].indexOf(this.logType) > -1;\n }\n\n isTeamType(): boolean {\n return RUGBY_TEAM_LOG_TYPES.includes(this.logType);\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { GameBaseApi } from './game-base-api';\nimport { RugbyGameTeamStatistic } from '../models/rugby-game-team-statistic';\nimport { RugbyGameStatistic } from '../models/rugby-game-statistic';\nimport { RugbyGameLog } from '../models/rugby-game-log';\nimport { RugbyFoulType } from '../models/rugby-foul-type';\n\n@Injectable({providedIn: 'root'})\nexport class RugbyGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<RugbyGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/team_statistic/`).pipe(\n map(result => RugbyGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<RugbyGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/user_statistic/`).pipe(\n map(result => RugbyGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<RugbyGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/logs/`).pipe(\n map(result => RugbyGameLog.toFront(result))\n ).toPromise();\n }\n\n async getFoulTypes(): Promise<RugbyFoulType> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/foul_types/`).pipe(\n map(result => RugbyFoulType.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_rugby_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', 'pdf'),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n email: 'email',\n first_name: 'firstName',\n last_name: 'lastName',\n },\n})\nexport class TeamInviteExternal extends BaseModel {\n id: number;\n teamId: number;\n email: string;\n firstName: string;\n lastName: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook, enumField } from './util';\n\nexport enum TeamPermissionTypes {\n for_all = 1,\n for_users,\n for_team\n}\n\n@ModelInstance({\n mappingFields: {\n players: 'players',\n games: 'games',\n statistic: 'statistic',\n polls: 'polls',\n events: 'events'\n },\n relation: {\n players: enumField(TeamPermissionTypes),\n games: enumField(TeamPermissionTypes),\n statistic: enumField(TeamPermissionTypes),\n polls: enumField(TeamPermissionTypes),\n events: enumField(TeamPermissionTypes)\n }\n})\nexport class TeamPermission extends BaseModel {\n players: TeamPermissionTypes;\n games: TeamPermissionTypes;\n statistic: TeamPermissionTypes;\n polls: TeamPermissionTypes;\n events: TeamPermissionTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { TeamUserRole } from './team-user';\n\n@ModelInstance({\n mappingFields: {\n can_edit: 'canEdit',\n can_view_users: 'canViewUsers',\n can_manage_permission: 'canManagePermission',\n can_change_owner: 'canChangeOwner',\n can_delete: 'canDelete',\n can_manage_invites: 'canManageInvites',\n can_view_invites: 'canViewInvites',\n can_manage_polls: 'canManagePolls',\n can_view_polls: 'canViewPolls',\n can_answer_poll: 'canAnswerPoll',\n can_manage_games: 'canManageGames',\n can_view_games: 'canViewGames',\n can_view_statistic: 'canViewStatistic',\n can_promote_users: 'canPromoteUsers',\n can_edit_users: 'canEditUsers',\n can_delete_users: 'canDeleteUsers',\n can_view_events: 'canViewEvents',\n can_manage_events: 'canManageEvents',\n can_view_tournaments: 'canViewTournaments',\n can_manage_tournaments: 'canManageTournaments',\n role: 'role'\n },\n relation: {\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamAccess extends BaseModel {\n canEdit: boolean;\n canViewUsers: boolean;\n canManagePermission: boolean;\n canChangeOwner: boolean;\n canDelete: boolean;\n canManageInvites: boolean;\n canViewInvites: boolean;\n canManagePolls: boolean;\n canViewPolls: boolean;\n canAnswerPoll: boolean;\n canManageGames: boolean;\n canViewGames: boolean;\n canViewStatistic: boolean;\n canPromoteUsers: boolean;\n canEditUsers: boolean;\n canDeleteUsers: boolean;\n canViewEvents: boolean;\n canManageEvents: boolean;\n canViewTournaments: boolean;\n canManageTournaments: boolean;\n role: TeamUserRole;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser, TeamUserRole } from '../models/team-user';\nimport { User } from '../models/user';\nimport { TeamInvite } from '../models/team-invite';\nimport { TeamInviteExternal } from '../models/team-invite-external';\nimport { Poll } from '../models/poll';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { TeamEvent } from '../models/team-event';\nimport { Tournament } from '../models/tournament';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { TeamPermission } from '../models/team-permission';\nimport { TeamAccess } from '../models/team-access';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async search(query: string, sportId?: number): Promise<Team[]> {\n let params = (new HttpParams()).set('search', query);\n if (sportId) {\n params = params.set('sport', sportId.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/`, {params})\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async create(team: Team): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/`, Team.toBack(team))\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getById(teamId: number): Promise<Team> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`)\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getTeamAccess(teamId: number): Promise<TeamAccess> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/access/`)\n .pipe(map(data => TeamAccess.toFront(data)))\n .toPromise();\n }\n\n async update(teamId: number, values: any): Promise<Team> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`, Team.toBack(values))\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async delete(team: Team): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${team.id}/`)\n .toPromise();\n }\n\n async getPermission(teamId: number): Promise<TeamPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`)\n .pipe(map(data => TeamPermission.toFront(data)))\n .toPromise();\n }\n\n async updatePermission(teamId: number, permission: TeamPermission): Promise<TeamPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`, TeamPermission.toBack(permission))\n .pipe(map(data => TeamPermission.toFront(data)))\n .toPromise();\n }\n\n async getUsers(teamId: number, tournamentId?: number): Promise<TeamUser[]> {\n let params = new HttpParams();\n if (tournamentId) {\n params = params.set('tournament_id', tournamentId.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`, {params})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateUserRole(teamId: number, teamUserId: number, role: TeamUserRole): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/role/`, {role: TeamUserRole[role]})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateUserNumber(teamId: number, teamUserId: number, gameNumber: number): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/number/`, {number: gameNumber.toString()})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async deleteUser(teamUser: TeamUser): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${teamUser.teamId}/users/${teamUser.id}/`)\n .toPromise();\n }\n\n async changeOwner(teamId: number, user: User): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/owner/`, {id: user.id})\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getInvites(teamId: number): Promise<TeamInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`)\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async sendInvite(teamId: number, user: User): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`, {user})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/accept/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async declineInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/decline/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async resendInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/resend/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async getInvitesExternal(teamId: number): Promise<TeamInviteExternal[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`)\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async sendInviteExternal(teamId: number, invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`, TeamInviteExternal.toBack(invite))\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async deleteInviteExternal(invite: TeamInviteExternal): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/`)\n .toPromise();\n }\n\n async resendInviteExternal(invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/resend/`, {})\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async getPolls(teamId: number, archive: boolean = false): Promise<Poll[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => Poll.toFront(data)))\n .toPromise();\n }\n\n async createPoll(teamId: number, poll: Poll): Promise<Poll> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/`, Poll.toBack(poll))\n .pipe(map(data => Poll.toFront(data)))\n .toPromise();\n }\n\n async getUsersStatistic(teamId: number): Promise<BasketballStatistic[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballStatistic(teamId: number): Promise<VolleyballStatistic[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/volleyball_statistics/`)\n .pipe(map(data => VolleyballStatistic.toFront(data)))\n .toPromise();\n }\n\n async joinTeam(teamId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/join/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async leaveTeam(teamId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/leave/`, {})\n .toPromise();\n }\n\n async getGames(teamId: number, archive = false): Promise<Game[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async createGame(teamId: number, game: Game): Promise<Game> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/`, Game.toBack(game))\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async getTeamEvents(teamId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async createTeamEvent(teamId: number, teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`, TeamEvent.toBack(teamEvent))\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async getTournaments(teamId: number): Promise<Tournament[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/`)\n .pipe(map(data => Tournament.toFront(data)))\n .toPromise();\n }\n\n async getTournamentTeams(teamId: number): Promise<TournamentTeam[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_teams/`)\n .pipe(map(data => TournamentTeam.toFront(data)))\n .toPromise();\n }\n\n async getTournamentInvites(teamId: number): Promise<TournamentInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_invites/`)\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async getTournamentGames(teamId: number, tournamentId: number, page: number, size?: number): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/${tournamentId}/games/`, {params, observe: 'response'})\n .pipe(map((response: HttpResponse<any>) => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n }))\n .toPromise();\n }\n\n async acceptTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/accept/`, {})\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async declineTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/decline/`, {})\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async registerLazyUser(teamId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/lazy_user/`, {user: User.toBack(userData)})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async getLazyUser(teamUserId: number): Promise<TeamUser> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateLazyUser(teamUserId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`, {user: User.toBack(userData)})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async deleteLazyUser(teamUserId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .toPromise();\n }\n\n async resendLazyUserEmail(teamUserId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/resend_email/`, {})\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { TeamEvent } from '../models/team-event';\nimport { TeamEventInvite } from '../models/team-event-invite';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamEventApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getTeamEvent(teamEventId: number): Promise<TeamEvent> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async updateTeamEvent(teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEvent.id}/`, TeamEvent.toBack(teamEvent))\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async deleteTeamEvent(teamEventId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .toPromise();\n }\n\n async getTeamEventInvites(teamEventId: number): Promise<TeamEventInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`)\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async createTeamEventInvite(teamEventId: number, teamUserId: number): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`, {team_user_id: teamUserId})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/accept/`, {})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async declineTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/decline/`, {})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Team } from './team';\n\n@ModelInstance({\n mappingFields: {\n valid_users_count: 'validUsersCount',\n invalid_users_count: 'invalidUsersCount',\n has_access: 'hasAccess',\n invite_sent: 'inviteSent',\n already_in_tournament: 'alreadyInTournament'\n }\n})\nexport class TournamentJoinData extends BaseModel {\n validUsersCount: number;\n invalidUsersCount: number;\n hasAccess: boolean;\n inviteSent: boolean;\n alreadyInTournament: boolean;\n\n get usersCount(): number {\n return this.validUsersCount + this.invalidUsersCount;\n }\n\n get valid() {\n return this.hasAccess && !this.inviteSent && !this.alreadyInTournament;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n join_data: 'joinData'\n },\n relation: {\n team: Team,\n joinData: TournamentJoinData\n }\n})\nexport class TournamentJoinTeam extends BaseModel {\n team: Team;\n joinData: TournamentJoinData;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, DateField, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { UserGender } from './user';\n\n@ModelInstance({\n mappingFields: {\n email: 'email',\n phone: 'phone',\n gender: 'gender',\n birth_date: 'birthDate',\n size: 'size',\n nickname: 'nickname',\n city: 'city',\n },\n relation: {\n birthDate: DateField,\n gender: enumField(UserGender),\n }\n})\nexport class TournamentJoin1x1Data extends BaseModel {\n email: string;\n phone: string;\n gender: string;\n birthDate: Date;\n size: string;\n nickname: string;\n city: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TournamentJoinTeam } from '../models/tournament-join-team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser } from '../models/team-user';\nimport { TournamentTeamUserInvite } from '../models/tournament-team-user-invite';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { ConfigService } from '../services/config.service';\nimport { TournamentJoin1x1Data } from '../models/tournament-join1x1-data';\n\nexport enum TournamentJoin1x1Status {\n not_sent = 1,\n invite_sent,\n in_tournament,\n not_valid,\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentJoinApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getTeamsForJoin(tournamentId: number): Promise<TournamentJoinTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams_for_join/`).pipe(\n map(response => TournamentJoinTeam.toFront(response))\n ).toPromise();\n }\n\n async getTeamUsers(teamId: number): Promise<TeamUser[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`)\n .pipe(\n map(data => TeamUser.toFront(data))\n ).toPromise();\n }\n\n async joinTournament(tournamentId: number, teamId: number, invites: TournamentTeamUserInvite[]): Promise<TournamentInvite> {\n const body = {\n team: {id: teamId},\n user_invites: TournamentTeamUserInvite.toBack(invites)\n };\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join/`, body)\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async join1x1Tournament(tournamentId: number, additionalData: TournamentJoin1x1Data): Promise<TournamentInvite> {\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join_1x1/`,\n TournamentJoin1x1Data.toBack(additionalData)\n )\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async join1x1TournamentStatus(tournamentId: number): Promise<TournamentJoin1x1Status> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join_1x1_status/`)\n .pipe(map((data: { status: string }) => TournamentJoin1x1Status[data.status]))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { TournamentRound } from '../models/tournament-round';\nimport { map } from 'rxjs/operators';\nimport { TournamentRoundTeam } from '../models/tournament-round-team';\nimport { Playoff } from '../models/playoff';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { applyGamesFilters, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { Game } from '../models/game';\n\nexport interface TournamentRoundTeamsFilters {\n groupId?: number;\n divisionId?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentRoundApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(tournamentRoundId: number): Promise<TournamentRound> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/`).pipe(\n map(data => TournamentRound.toFront(data)),\n ).toPromise();\n }\n\n async getTeams(tournamentRoundId: number, filters?: TournamentRoundTeamsFilters): Promise<TournamentRoundTeam[]> {\n let params = new HttpParams();\n if (filters) {\n if (filters.divisionId) {\n params = params.set('division_id', filters.divisionId);\n }\n if (filters.groupId) {\n params = params.set('group_id', filters.groupId);\n }\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/teams/`,\n {params}\n ).pipe(\n map(data => TournamentRoundTeam.toFront(data)),\n ).toPromise();\n }\n\n async getPlayoffs(tournamentRoundId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/playoffs/`).pipe(\n map(data => Playoff.toFront(data)),\n ).toPromise();\n }\n\n async getGroups(tournamentRoundId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_round/${tournamentRoundId}/groups/`).pipe(\n map(data => TournamentGroup.toFront(data)),\n ).toPromise();\n }\n\n async getGames(roundId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_round/${roundId}/games/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { Game, GameStatuses } from '../models/game';\nimport { Tournament } from '../models/tournament';\nimport { applyGamesFilters, TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { applyGameMediaFilters, GameMediaFilters } from './media-api';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\nimport { Playoff } from '../models/playoff';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentSeasonApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<TournamentSeason> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/${alias}/`).pipe(\n map(result => TournamentSeason.toFront(result))\n ).toPromise();\n }\n\n async getTournaments(seasonId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getGames(seasonId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n params = applyGamesFilters(filters, params);\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getEvents(seasonId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/events/`,\n {params, observe: 'response'}\n )\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getGameMedia(seasonId: number, page: number, size: number, filters: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n params = applyGameMediaFilters(filters, params);\n\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/game_media/`,\n {observe: 'response', params})\n .pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getTeams(seasonId: number, short?: boolean, micro?: boolean): Promise<TournamentTeam[]> {\n let params = new HttpParams();\n if (short) {\n params = params.set('short', '1');\n }\n if (micro) {\n params = params.set('micro', '1');\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/teams/`, {params}).pipe(\n map(result => TournamentTeam.toFront(result))\n ).toPromise();\n }\n\n async getPlayoffs(seasonId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/playoffs/`).pipe(\n map(result => Playoff.toFront(result))\n ).toPromise();\n }\n\n async getGamesStages(seasonId: number): Promise<GameTimelineStages> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games_stages/`)\n .pipe(map(data => GameTimelineStages.toFront(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { map } from 'rxjs/operators';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { Playoff } from '../models/playoff';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { ConfigService } from '../services/config.service';\nimport { TeamAchievement } from '../models/team-achievement';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentStageApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(id: number): Promise<TournamentStage> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${id}/`)\n .pipe(map(result => TournamentStage.toFront(result)))\n .toPromise();\n }\n\n async getGroups(stageId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/groups/`)\n .pipe(map(result => TournamentGroup.toFront(result)))\n .toPromise();\n }\n\n async getTeamsAchievements(stageId: number): Promise<TeamAchievement[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/achievements/`)\n .pipe(map(result => TeamAchievement.toFront(result)))\n .toPromise();\n }\n\n async getPlayoffs(stageId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/playoff/`)\n .pipe(map(result => Playoff.toFront(result)))\n .toPromise();\n }\n\n async getTeams(stageId: number): Promise<TournamentStageTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/teams/`)\n .pipe(map(result => TournamentStageTeam.toFront(result)))\n .toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n edit: 'edit',\n personal_data: 'personalData',\n teams: 'teams',\n statistic: 'statistic',\n games: 'games'\n }\n})\nexport class UserAccess extends BaseModel {\n edit: boolean;\n personalData: boolean;\n teams: boolean;\n statistic: boolean;\n games: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum UserPermissionTypes {\n denied = 1,\n for_all,\n for_users,\n for_team\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n personal_data: 'personalData',\n games: 'games',\n teams: 'teams',\n statistic: 'statistic'\n },\n relation: {\n personalData: enumField(UserPermissionTypes),\n games: enumField(UserPermissionTypes),\n teams: enumField(UserPermissionTypes),\n statistic: enumField(UserPermissionTypes)\n }\n})\nexport class UserPermission extends BaseModel {\n id: number;\n personalData: UserPermissionTypes;\n games: UserPermissionTypes;\n teams: UserPermissionTypes;\n statistic: UserPermissionTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { User } from '../models/user';\nimport { File } from '../models/file';\nimport { map } from 'rxjs/operators';\nimport { UserProfile } from '../models/user-profile';\nimport { BasketballProfile } from '../models/basketball-profile';\nimport { VolleyballProfile } from '../models/volleyball-profile';\nimport { Team } from '../models/team';\nimport { TeamInvite } from '../models/team-invite';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { GameInvite } from '../models/game-invite';\nimport { TeamEvent } from '../models/team-event';\nimport { UserAccess } from '../models/user-access';\nimport { UserPermission } from '../models/user-permission';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class UserApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCurrentUser(): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/`)\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getUserById(userId: number): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`)\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getAccess(userId?: number): Promise<UserAccess> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/access/`)\n .pipe(map(data => UserAccess.toFront(data)))\n .toPromise();\n }\n\n async updateUser(userId: number, data: any): Promise<User> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`, User.toBack(data))\n .pipe(map(result => User.toFront(result)))\n .toPromise();\n }\n\n async updateUserPhoto(file: any, filename?: string): Promise<File> {\n const formData = new FormData();\n formData.append('file', file, filename);\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/photo/`, formData)\n .pipe(map(data => File.toFront(data)))\n .toPromise();\n }\n\n async changePassword(userId: number, oldPassword: string, password: string, passwordConfirm: string): Promise<any> {\n const payload = {\n old_password: oldPassword,\n password,\n password_confirm: passwordConfirm\n };\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_password/`, payload)\n .toPromise();\n }\n\n async changeEmail(userId: number, email: string, password: string): Promise<any> {\n const payload = {email, password};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email/`, payload)\n .toPromise();\n }\n\n async changeEmailConfirm(userId, email: string, password: string, token: number): Promise<any> {\n const payload = {email, password, token};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email_confirm/`, payload)\n .toPromise();\n }\n\n async getUserProfile(userId: number): Promise<UserProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/profile/`)\n .pipe(map(data => UserProfile.toFront(data)))\n .toPromise();\n }\n\n async getBasketballProfile(userId: number): Promise<BasketballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/basketball_profile/`)\n .pipe(map(data => BasketballProfile.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballProfile(userId: number): Promise<VolleyballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_profile/`)\n .pipe(map(data => VolleyballProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserProfile(userProfile: UserProfile): Promise<UserProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userProfile.userId}/profile/`, UserProfile.toBack(userProfile))\n .pipe(map(data => UserProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserBasketballProfile(basketballProfile: BasketballProfile): Promise<BasketballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${basketballProfile.userId}/basketball_profile/`, BasketballProfile.toBack(basketballProfile))\n .pipe(map(data => BasketballProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserVolleyballProfile(volleyballProfile: VolleyballProfile): Promise<VolleyballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${volleyballProfile.userId}/volleyball_profile/`, VolleyballProfile.toBack(volleyballProfile))\n .pipe(map(data => VolleyballProfile.toFront(data)))\n .toPromise();\n }\n\n async getUserPermissions(userId?: number): Promise<UserPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/permission/`)\n .pipe(map(data => UserPermission.toFront(data)))\n .toPromise();\n }\n\n async updateUserPermission(data: any): Promise<UserPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/current/permission/`, UserPermission.toBack(data))\n .pipe(map(result => UserPermission.toFront(result)))\n .toPromise();\n }\n\n async getTeams(userId: number): Promise<Team[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/teams/`)\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getInvites(): Promise<TeamInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/`)\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/accept/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async declineInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/decline/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async getStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getStreetballStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/streetball_statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballStatistic(userId: number): Promise<VolleyballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_statistics/`)\n .pipe(map(data => VolleyballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getGames(userId: number): Promise<Game[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/games/`)\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async getGameInvites(): Promise<GameInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/`)\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/accept/`, {})\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async declineGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/decline/`, {})\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async searchUsers(query: string): Promise<User[]> {\n const params = (new HttpParams()).set('search', query);\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/`, {params})\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async setWizardShowed(wizard: string): Promise<User> {\n return this.httpClient\n .put(`${this.configService.get('apiUrl')}/api/v1/user/current/wizards/`, {wizard})\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getTeamEvents(userId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/team_events/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook, BaseModel } from './util';\nimport { VolleyballStatistic } from './volleyball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam',\n },\n relation: {\n team: VolleyballStatistic,\n competitorTeam: VolleyballStatistic,\n }\n})\nexport class VolleyballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: VolleyballStatistic;\n competitorTeam: VolleyballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n serve_hits: 'serveHits',\n serve_faults: 'serveFaults',\n serve_aces: 'serveAces',\n good_serves: 'goodServes',\n stuff_blocks: 'stuffBlocks',\n block_faults: 'blockFaults',\n block_rebounds: 'blockRebounds',\n attack_spikes: 'attackSpikes',\n attack_faults: 'attackFaults',\n attack_shots: 'attackShots',\n receives: 'receives',\n receive_faults: 'receiveFaults',\n excellent_receives: 'excellentReceives',\n serve_receives: 'serveReceives',\n serve_receive_faults: 'serveReceiveFaults',\n excellent_serve_receives: 'excellentServeReceives',\n points: 'points',\n faults: 'faults',\n yellow_cards: 'yellowCards',\n }\n})\nexport class VolleyballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n goodServes: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n points: number;\n faults: number;\n yellowCards: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get attacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots)) / 10;\n }\n\n get blocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds)) / 10;\n }\n\n get totalReceives(): number {\n return Math.floor(10 * (this.receives + this.excellentReceives + this.receiveFaults)) / 10;\n }\n\n get totalServeReceives(): number {\n return Math.floor(10 * (this.serveReceives + this.excellentServeReceives + this.serveReceiveFaults)) / 10;\n }\n\n get totalServes(): number {\n return Math.floor(10 * (this.serveAces + this.serveHits + this.serveFaults + this.goodServes)) / 10;\n }\n\n get totalAttacks(): number {\n return Math.floor(10 * (this.attackSpikes + this.attackShots + this.attackFaults)) / 10;\n }\n\n get totalBlocks(): number {\n return Math.floor(10 * (this.stuffBlocks + this.blockRebounds + this.blockFaults)) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\n\nexport enum VolleyballGameLogType {\n enter_game = 1,\n exit_game,\n remove_game,\n serve_hit,\n serve_fault,\n serve_ace,\n stuff_block,\n block_fault,\n block_rebound,\n attack_spike,\n attack_fault,\n attack_shot,\n receive,\n receive_fault,\n excellent_receive,\n point,\n fault,\n serve_receive,\n serve_receive_fault,\n excellent_serve_receive,\n timeout,\n yellow_card,\n tie_ball,\n good_serve\n}\n\nexport const SCORE_LOG_TYPES = [\n VolleyballGameLogType.serve_ace, VolleyballGameLogType.stuff_block,\n VolleyballGameLogType.attack_spike, VolleyballGameLogType.point\n];\nexport const FAULT_LOG_TYPES = [\n VolleyballGameLogType.serve_fault, VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.block_fault, VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.fault, VolleyballGameLogType.serve_receive_fault\n];\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n log_type: 'logType',\n set: 'set',\n rally: 'rally',\n position: 'position',\n team_id: 'teamId',\n datetime: 'datetime',\n is_highlight: 'isHighlight',\n group: 'group',\n is_coach: 'isCoach',\n is_bench: 'isBench',\n },\n relation: {\n logType: enumField(VolleyballGameLogType),\n datetime: DateTimeField\n }\n})\nexport class VolleyballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n active = true;\n gameId: number;\n gameUserId: number;\n logType: VolleyballGameLogType;\n set: number;\n rally: number;\n position: number;\n teamId: number;\n datetime: Date;\n isHighlight: boolean;\n gameUser: GameUser;\n group: string;\n isCoach: boolean;\n isBench: boolean;\n\n compare(model: VolleyballGameLog): number {\n const orderFields = ['set', 'rally', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n isScoreType() {\n return SCORE_LOG_TYPES.includes(this.logType);\n }\n\n isFaultType() {\n return FAULT_LOG_TYPES.includes(this.logType);\n }\n\n isServe() {\n return [\n VolleyballGameLogType.serve_hit,\n VolleyballGameLogType.serve_ace,\n VolleyballGameLogType.serve_fault,\n VolleyballGameLogType.good_serve,\n ].includes(this.logType);\n }\n\n isAttack() {\n return [\n VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.attack_spike,\n VolleyballGameLogType.attack_shot\n ].includes(this.logType);\n }\n\n isReceive() {\n return [\n VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.receive,\n VolleyballGameLogType.excellent_receive\n ].includes(this.logType);\n }\n\n isServeReceive() {\n return [\n VolleyballGameLogType.serve_receive_fault,\n VolleyballGameLogType.serve_receive,\n VolleyballGameLogType.excellent_serve_receive\n ].includes(this.logType);\n }\n\n isBlock() {\n return [\n VolleyballGameLogType.block_fault,\n VolleyballGameLogType.block_rebound,\n VolleyballGameLogType.stuff_block\n ].includes(this.logType);\n }\n\n isEnterExit() {\n return [\n VolleyballGameLogType.enter_game,\n VolleyballGameLogType.exit_game,\n VolleyballGameLogType.timeout\n ].includes(this.logType);\n }\n\n isComboType() {\n return ![\n VolleyballGameLogType.receive,\n VolleyballGameLogType.serve_receive\n ].includes(this.logType);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Game } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { VolleyballGameTeamStatistic } from '../models/volleyball-game-team-statistic';\nimport { VolleyballGameStatistic } from '../models/volleyball-game-statistic';\nimport { VolleyballGameLog } from '../models/volleyball-game-log';\nimport { ConfigService } from '../services/config.service';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class VolleyballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<VolleyballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/team_statistic/`).pipe(\n map(result => VolleyballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<VolleyballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/user_statistic/`).pipe(\n map(result => VolleyballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<VolleyballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/logs/`).pipe(\n map(result => VolleyballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocolLight(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol_light/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadProtocolAdvanced(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol_advanced/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum WaterpoloGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n shootout_attempt,\n shootout_goal,\n assist,\n block_shot ,\n free_kick_on_goal,\n minor_penalty ,\n major_penalty ,\n match_penalty ,\n foul,\n yellow_card,\n red_card,\n penalty_shot ,\n face_off_lose ,\n face_off_win ,\n save ,\n timeout,\n penalty_start,\n penalty_end,\n after_game_shootout_attempt,\n after_game_shootout_goal,\n after_game_shootout_save,\n shootout_save,\n loss,\n steal,\n free_kick_miss,\n free_kick_goal,\n free_kick_pass,\n free_kick_self,\n corner_on_goal,\n corner_miss,\n corner_goal,\n corner_pass,\n corner_self,\n personal_foul,\n counterattack_goal,\n counterattack_on_goal,\n counterattack_miss,\n counterattack_save ,\n maneuver_goal,\n maneuver_on_goal,\n maneuver_miss,\n maneuver_save,\n center_forward_goal,\n center_forward_on_goal,\n center_forward_miss,\n center_forward_save,\n free_kick_save,\n corner_save,\n tackle,\n penalty_foul,\n attack_foul,\n turnover,\n counter_attack_shot_blocked,\n maneuver_shot_blocked,\n center_forward_shot_blocked,\n free_kick_shot_blocked,\n corner_shot_blocked,\n complete_penalty_time,\n defense_select_position,\n save_possession,\n perimetr_shot_goal,\n perimetr_shot_on_goal,\n perimetr_shot_miss,\n perimetr_shot_blocked,\n perimetr_shot_save,\n post_shot_goal,\n post_shot_on_goal,\n post_shot_miss,\n post_shot_blocked,\n post_shot_save,\n fast_shot_goal,\n fast_shot_on_goal,\n fast_shot_miss,\n fast_shot_blocked,\n fast_shot_save\n}\n\nexport enum WaterpoloAdvantageTypes {\n power_play = 1,\n shorthanded,\n even_strength\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n advantage: 'advantage',\n advantage_num: 'advantageNum',\n is_goalie: 'isGoalie',\n penalized_game_user_id: 'penalizedGameUserId',\n foul_on_game_user_id: 'foulOnGameUserId',\n mutual_penalty: 'mutualPenalty',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(WaterpoloGameLogTypes),\n advantage: enumField(WaterpoloAdvantageTypes),\n }\n})\nexport class WaterpoloGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: WaterpoloGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n advantage: WaterpoloAdvantageTypes;\n advantageNum: number;\n isGoalie: boolean;\n _penalizedGameUserId: number;\n foulOnGameUserId: number;\n foulOnGameUser: GameUser;\n mutualPenalty: boolean;\n\n get penalizedGameUserId(): number {\n if (this._penalizedGameUserId) {\n return this._penalizedGameUserId;\n }\n return this.gameUserId;\n }\n\n set penalizedGameUserId(value: number) {\n this._penalizedGameUserId = value;\n }\n\n compare(model: WaterpoloGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [\n WaterpoloGameLogTypes.goal, WaterpoloGameLogTypes.shootout_goal, WaterpoloGameLogTypes.after_game_shootout_goal,\n WaterpoloGameLogTypes.free_kick_goal, WaterpoloGameLogTypes.corner_goal,\n WaterpoloGameLogTypes.counterattack_goal, WaterpoloGameLogTypes.maneuver_goal, WaterpoloGameLogTypes.center_forward_goal,\n WaterpoloGameLogTypes.perimetr_shot_goal, WaterpoloGameLogTypes.post_shot_goal, WaterpoloGameLogTypes.fast_shot_goal\n ].indexOf(this.logType) > -1;\n }\n\n isPenaltyType(): boolean {\n return [\n WaterpoloGameLogTypes.minor_penalty, WaterpoloGameLogTypes.major_penalty, WaterpoloGameLogTypes.match_penalty, WaterpoloGameLogTypes.personal_foul\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType(): boolean {\n return [\n WaterpoloGameLogTypes.minor_penalty, WaterpoloGameLogTypes.major_penalty, WaterpoloGameLogTypes.match_penalty,\n WaterpoloGameLogTypes.personal_foul, WaterpoloGameLogTypes.foul, WaterpoloGameLogTypes.attack_foul, WaterpoloGameLogTypes.penalty_foul\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: WaterpoloGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_total_shots_on_goal: 'ppTotalShotsOnGoal',\n ev_total_shots_on_goal: 'evTotalShotsOnGoal',\n sh_total_shots_on_goal: 'shTotalShotsOnGoal',\n pp_goals: 'ppGoals',\n ev_goals: 'evGoals',\n sh_goals: 'shGoals',\n pp_counterattack_goals: 'ppCounterAttackGoals',\n pp_counterattack_on_goals: 'ppCounterAttackOnGoals',\n pp_counterattack_misses: 'ppCounterAttackMisses',\n pp_counterattack_shots_blocked: 'ppCounterAttackShotsBlocked',\n ev_counterattack_goals: 'evCounterAttackGoals',\n ev_counterattack_on_goals: 'evCounterAttackOnGoals',\n ev_counterattack_misses: 'evCounterAttackMisses',\n ev_counterattack_shots_blocked: 'evCounterAttackShotsBlocked',\n sh_counterattack_goals: 'shCounterAttackGoals',\n sh_counterattack_on_goals: 'shCounterAttackOnGoals',\n sh_counterattack_misses: 'shCounterAttackMisses',\n sh_counterattack_shots_blocked: 'shCounterAttackShotsBlocked',\n pp_maneuver_goals: 'ppManeuverGoals',\n pp_maneuver_on_goals: 'ppManeuverOnGoals',\n pp_maneuver_misses: 'ppManeuverMisses',\n pp_maneuver_shots_blocked: 'ppManeuverShotsBlocked',\n ev_maneuver_goals: 'evManeuverGoals',\n ev_maneuver_on_goals: 'evManeuverOnGoals',\n ev_maneuver_misses: 'evManeuverMisses',\n ev_maneuver_shots_blocked: 'evManeuverShotsBlocked',\n sh_maneuver_goals: 'shManeuverGoals',\n sh_maneuver_on_goals: 'shManeuverOnGoals',\n sh_maneuver_misses: 'shManeuverMisses',\n sh_maneuver_shots_blocked: 'shManeuverShotsBlocked',\n pp_center_forward_goals: 'ppCenterForwardGoals',\n pp_center_forward_on_goals: 'ppCenterForwardOnGoals',\n pp_center_forward_misses: 'ppCenterForwardMisses',\n pp_center_forward_shots_blocked: 'ppCenterForwardShotsBlocked',\n ev_center_forward_goals: 'evCenterForwardGoals',\n ev_center_forward_on_goals: 'evCenterForwardOnGoals',\n ev_center_forward_misses: 'evCenterForwardMisses',\n ev_center_forward_shots_blocked: 'evCenterForwardShotsBlocked',\n sh_center_forward_goals: 'shCenterForwardGoals',\n sh_center_forward_on_goals: 'shCenterForwardOnGoals',\n sh_center_forward_misses: 'shCenterForwardMisses',\n sh_center_forward_shots_blocked: 'shCenterForwardShotsBlocked',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n after_game_shootout_attempts: 'afterGameShootoutAttempts',\n after_game_shootout_goals: 'afterGameShootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n pp_saves: 'ppSaves',\n sh_saves: 'shSaves',\n ev_saves: 'evSaves',\n pp_counterattack_saves: 'ppCounterAttackSaves',\n sh_counterattack_saves: 'shCounterAttackSaves',\n ev_counterattack_saves: 'evCounterAttackSaves',\n pp_maneuver_saves: 'ppManeuverSaves',\n sh_maneuver_saves: 'shManeuverSaves',\n ev_maneuver_saves: 'evManeuverSaves',\n pp_center_forward_saves: 'ppCenterForwardSaves',\n sh_center_forward_saves: 'shCenterForwardSaves',\n ev_center_forward_saves: 'evCenterForwardSaves',\n pp_free_kick_saves: 'ppFreeKickSaves',\n sh_free_kick_saves: 'shFreeKickSaves',\n ev_free_kick_saves: 'evFreeKickSaves',\n pp_corner_saves: 'ppCornerSaves',\n sh_corner_saves: 'shCornerSaves',\n ev_corner_saves: 'evCornerSaves',\n pp_total_game_saves: 'ppTotalGameSaves',\n sh_total_game_saves: 'shTotalGameSaves',\n ev_total_game_saves: 'evTotalGameSaves',\n shootout_saves: 'shootoutSaves',\n after_game_shootout_saves: 'afterGameShootoutSaves',\n pp_goals_against: 'ppGoalsAgainst',\n sh_goals_against: 'shGoalsAgainst',\n ev_goals_against: 'evGoalsAgainst',\n goals_against: 'goalsAgainst',\n pp_counterattack_goals_against: 'ppCounterAttackGoalsAgainst',\n sh_counterattack_goals_against: 'shCounterAttackGoalsAgainst',\n ev_counterattack_goals_against: 'evCounterAttackGoalsAgainst',\n counterattack_goals_against: 'counterAttackGoalsAgainst',\n pp_maneuver_goals_against: 'ppManeuverGoalsAgainst',\n sh_maneuver_goals_against: 'shManeuverGoalsAgainst',\n ev_maneuver_goals_against: 'evManeuverGoalsAgainst',\n maneuver_goals_against: 'maneuverGoalsAgainst',\n pp_center_forward_goals_against: 'ppCenterForwardGoalsAgainst',\n sh_center_forward_goals_against: 'shCenterForwardGoalsAgainst',\n ev_center_forward_goals_against: 'evCenterForwardGoalsAgainst',\n center_forward_goals_against: 'centerForwardGoalsAgainst',\n pp_free_kick_goals_against: 'ppFreeKickGoalsAgainst',\n sh_free_kick_goals_against: 'shFreeKickGoalsAgainst',\n ev_free_kick_goals_against: 'evFreeKickGoalsAgainst',\n free_kick_goals_against: 'freeKickGoalsAgainst',\n pp_corner_goals_against: 'ppCornerGoalsAgainst',\n sh_corner_goals_against: 'shCornerGoalsAgainst',\n ev_corner_goals_against: 'evCornerGoalsAgainst',\n corner_goals_against: 'cornerGoalsAgainst',\n shootout_goals_against: 'shootoutGoalsAgainst',\n after_game_shootout_goals_against: 'afterGameShootoutGoalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n fouls: 'fouls',\n minor_penalties: 'minorPenalties',\n major_penalties: 'majorPenalties',\n match_penalties: 'matchPenalties',\n penalty_fouls: 'penaltyFouls',\n turnovers: 'turnovers',\n attack_fouls: 'attackFouls',\n personal_fouls: 'personalFouls',\n drawn_fouls: 'drawnFouls',\n drawn_turnovers: 'drawnTurnovers',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n losses: 'losses',\n steals: 'steals',\n pp_free_kick_goals: 'ppFreeKickGoals',\n pp_free_kick_on_goals: 'ppFreeKickOnGoals',\n pp_free_kick_misses: 'ppFreeKickMisses',\n pp_free_kick_shots_blocked: 'ppFreeKickShotsBlocked',\n sh_free_kick_goals: 'shFreeKickGoals',\n sh_free_kick_on_goals: 'shFreeKickOnGoals',\n sh_free_kick_misses: 'shFreeKickMisses',\n sh_free_kick_shots_blocked: 'shFreeKickShotsBlocked',\n ev_free_kick_goals: 'evFreeKickGoals',\n ev_free_kick_on_goals: 'evFreeKickOnGoals',\n ev_free_kick_misses: 'evFreeKickMisses',\n ev_free_kick_shots_blocked: 'evFreeKickShotsBlocked',\n free_kick_passes: 'freeKickPasses',\n free_kick_selfs: 'freeKickSelfs',\n pp_corner_goals: 'ppCornerGoals',\n pp_corner_on_goals: 'ppCornerOnGoals',\n pp_corner_misses: 'ppCornerMisses',\n pp_corner_shots_blocked: 'ppCornerShotsBlocked',\n sh_corner_goals: 'shCornerGoals',\n sh_corner_on_goals: 'shCornerOnGoals',\n sh_corner_misses: 'shCornerMisses',\n sh_corner_shots_blocked: 'shCornerShotsBlocked',\n ev_corner_goals: 'evCornerGoals',\n ev_corner_on_goals: 'evCornerOnGoals',\n ev_corner_misses: 'evCornerMisses',\n ev_corner_shots_blocked: 'evCornerShotsBlocked',\n corner_passes: 'cornerPasses',\n corner_selfs: 'cornerSelfs',\n tackles: 'tackles',\n player_efficiency: 'playerEfficiency',\n defense_select_positions: 'defenseSelectPositions',\n save_possessions: 'savePossessions',\n\n pp_perimetr_shot_goals: 'ppPerimetrShotGoals',\n pp_perimetr_shot_on_goals: 'ppPerimetrShotOnGoals',\n pp_perimetr_shot_misses: 'ppPerimetrShotMisses',\n pp_perimetr_shots_blocked: 'ppPerimetrShotsBlocked',\n ev_perimetr_shot_goals: 'evPerimetrShotGoals',\n ev_perimetr_shot_on_goals: 'evPerimetrShotOnGoals',\n ev_perimetr_shot_misses: 'evPerimetrShotMisses',\n ev_perimetr_shots_blocked: 'evPerimetrShotsBlocked',\n sh_perimetr_shot_goals: 'shPerimetrShotGoals',\n sh_perimetr_shot_on_goals: 'shPerimetrShotOnGoals',\n sh_perimetr_shot_misses: 'shPerimetrShotMisses',\n sh_perimetr_shots_blocked: 'shPerimetrShotsBlocked',\n pp_perimetr_shot_saves: 'ppPerimetrShotSaves',\n sh_perimetr_shot_saves: 'shPerimetrShotSaves',\n ev_perimetr_shot_saves: 'evPerimetrShotSaves',\n pp_perimetr_shot_goals_against: 'ppPerimetrShotGoalsAgainst',\n sh_perimetr_shot_goals_against: 'shPerimetrShotGoalsAgainst',\n ev_perimetr_shot_goals_against: 'evPerimetrShotGoalsAgainst',\n perimetr_shot_goals_against: 'perimetrShotGoalsAgainst',\n\n pp_post_shot_goals: 'ppPostShotGoals',\n pp_post_shot_on_goals: 'ppPostShotOnGoals',\n pp_post_shot_misses: 'ppPostShotMisses',\n pp_post_shots_blocked: 'ppPostShotsBlocked',\n ev_post_shot_goals: 'evPostShotGoals',\n ev_post_shot_on_goals: 'evPostShotOnGoals',\n ev_post_shot_misses: 'evPostShotMisses',\n ev_post_shots_blocked: 'evPostShotsBlocked',\n sh_post_shot_goals: 'shPostShotGoals',\n sh_post_shot_on_goals: 'shPostShotOnGoals',\n sh_post_shot_misses: 'shPostShotMisses',\n sh_post_shots_blocked: 'shPostShotsBlocked',\n pp_post_shot_saves: 'ppPostShotSaves',\n sh_post_shot_saves: 'shPostShotSaves',\n ev_post_shot_saves: 'evPostShotSaves',\n pp_post_shot_goals_against: 'ppPostShotGoalsAgainst',\n sh_post_shot_goals_against: 'shPostShotGoalsAgainst',\n ev_post_shot_goals_against: 'evPostShotGoalsAgainst',\n post_shot_goals_against: 'postShotGoalsAgainst',\n\n pp_fast_shot_goals: 'ppFastShotGoals',\n pp_fast_shot_on_goals: 'ppFastShotOnGoals',\n pp_fast_shot_misses: 'ppFastShotMisses',\n pp_fast_shots_blocked: 'ppFastShotsBlocked',\n ev_fast_shot_goals: 'evFastShotGoals',\n ev_fast_shot_on_goals: 'evFastShotOnGoals',\n ev_fast_shot_misses: 'evFastShotMisses',\n ev_fast_shots_blocked: 'evFastShotsBlocked',\n sh_fast_shot_goals: 'shFastShotGoals',\n sh_fast_shot_on_goals: 'shFastShotOnGoals',\n sh_fast_shot_misses: 'shFastShotMisses',\n sh_fast_shots_blocked: 'shFastShotsBlocked',\n pp_fast_shot_saves: 'ppFastShotSaves',\n sh_fast_shot_saves: 'shFastShotSaves',\n ev_fast_shot_saves: 'evFastShotSaves',\n pp_fast_shot_goals_against: 'ppFastShotGoalsAgainst',\n sh_fast_shot_goals_against: 'shFastShotGoalsAgainst',\n ev_fast_shot_goals_against: 'evFastShotGoalsAgainst',\n fast_shot_goals_against: 'fastShotGoalsAgainst',\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class WaterpoloGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppTotalShotsOnGoal: number;\n evTotalShotsOnGoal: number;\n shTotalShotsOnGoal: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppCounterAttackGoals: number;\n ppCounterAttackOnGoals: number;\n ppCounterAttackMisses: number;\n ppCounterAttackShotsBlocked: number;\n evCounterAttackGoals: number;\n evCounterAttackOnGoals: number;\n evCounterAttackMisses: number;\n evCounterAttackShotsBlocked: number;\n shCounterAttackGoals: number;\n shCounterAttackOnGoals: number;\n shCounterAttackMisses: number;\n shCounterAttackShotsBlocked: number;\n ppManeuverGoals: number;\n ppManeuverOnGoals: number;\n ppManeuverMisses: number;\n ppManeuverShotsBlocked: number;\n evManeuverGoals: number;\n evManeuverOnGoals: number;\n evManeuverMisses: number;\n evManeuverShotsBlocked: number;\n shManeuverGoals: number;\n shManeuverOnGoals: number;\n shManeuverMisses: number;\n shManeuverShotsBlocked: number;\n ppCenterForwardGoals: number;\n ppCenterForwardOnGoals: number;\n ppCenterForwardMisses: number;\n ppCenterForwardShotsBlocked: number;\n evCenterForwardGoals: number;\n evCenterForwardOnGoals: number;\n evCenterForwardMisses: number;\n evCenterForwardShotsBlocked: number;\n shCenterForwardGoals: number;\n shCenterForwardOnGoals: number;\n shCenterForwardMisses: number;\n shCenterForwardShotsBlocked: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n afterGameShootoutAttempts: number;\n afterGameShootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n ppSaves: number;\n shSaves: number;\n evSaves: number;\n ppCounterAttackSaves: number;\n shCounterAttackSaves: number;\n evCounterAttackSaves: number;\n ppManeuverSaves: number;\n shManeuverSaves: number;\n evManeuverSaves: number;\n ppCenterForwardSaves: number;\n shCenterForwardSaves: number;\n evCenterForwardSaves: number;\n ppFreeKickSaves: number;\n shFreeKickSaves: number;\n evFreeKickSaves: number;\n ppCornerSaves: number;\n shCornerSaves: number;\n evCornerSaves: number;\n ppTotalGameSaves: number;\n shTotalGameSaves: number;\n evTotalGameSaves: number;\n shootoutSaves: number;\n afterGameShootoutSaves: number;\n ppGoalsAgainst: number;\n shGoalsAgainst: number;\n evGoalsAgainst: number;\n goalsAgainst: number;\n ppCounterAttackGoalsAgainst: number;\n shCounterAttackGoalsAgainst: number;\n evCounterAttackGoalsAgainst: number;\n counterAttackGoalsAgainst: number;\n ppManeuverGoalsAgainst: number;\n shManeuverGoalsAgainst: number;\n evManeuverGoalsAgainst: number;\n maneuverGoalsAgainst: number;\n ppCenterForwardGoalsAgainst: number;\n shCenterForwardGoalsAgainst: number;\n evCenterForwardGoalsAgainst: number;\n centerForwardGoalsAgainst: number;\n ppFreeKickGoalsAgainst: number;\n shFreeKickGoalsAgainst: number;\n evFreeKickGoalsAgainst: number;\n freeKickGoalsAgainst: number;\n ppCornerGoalsAgainst: number;\n shCornerGoalsAgainst: number;\n evCornerGoalsAgainst: number;\n cornerGoalsAgainst: number;\n shootoutGoalsAgainst: number;\n afterGameShootoutGoalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n fouls: number;\n minorPenalties: number;\n majorPenalties: number;\n matchPenalties: number;\n penaltyFouls: number;\n turnovers: number;\n attackFouls: number;\n personalFouls: number;\n drawnFouls: number;\n drawnTurnovers: number;\n yellowCards: number;\n redCards: number;\n losses: number;\n steals: number;\n ppFreeKickGoals: number;\n ppFreeKickOnGoals: number;\n ppFreeKickMisses: number;\n ppFreeKickShotsBlocked: number;\n shFreeKickGoals: number;\n shFreeKickOnGoals: number;\n shFreeKickMisses: number;\n shFreeKickShotsBlocked: number;\n evFreeKickGoals: number;\n evFreeKickOnGoals: number;\n evFreeKickMisses: number;\n evFreeKickShotsBlocked: number;\n freeKickPasses: number;\n freeKickSelfs: number;\n ppCornerGoals: number;\n ppCornerOnGoals: number;\n ppCornerMisses: number;\n ppCornerShotsBlocked: number;\n shCornerGoals: number;\n shCornerOnGoals: number;\n shCornerMisses: number;\n shCornerShotsBlocked: number;\n evCornerGoals: number;\n evCornerOnGoals: number;\n evCornerMisses: number;\n evCornerShotsBlocked: number;\n cornerPasses: number;\n cornerSelfs: number;\n tackles: number;\n playerEfficiency: number;\n defenseSelectPositions: number;\n savePossessions: number;\n\n ppPerimetrShotGoals: number;\n ppPerimetrShotOnGoals: number;\n ppPerimetrShotMisses: number;\n ppPerimetrShotsBlocked: number;\n evPerimetrShotGoals: number;\n evPerimetrShotOnGoals: number;\n evPerimetrShotMisses: number;\n evPerimetrShotsBlocked: number;\n shPerimetrShotGoals: number;\n shPerimetrShotOnGoals: number;\n shPerimetrShotMisses: number;\n shPerimetrShotsBlocked: number;\n ppPerimetrShotSaves: number;\n shPerimetrShotSaves: number;\n evPerimetrShotSaves: number;\n ppPerimetrShotGoalsAgainst: number;\n shPerimetrShotGoalsAgainst: number;\n evPerimetrShotGoalsAgainst: number;\n perimetrShotGoalsAgainst: number;\n\n ppPostShotGoals: number;\n ppPostShotOnGoals: number;\n ppPostShotMisses: number;\n ppPostShotsBlocked: number;\n evPostShotGoals: number;\n evPostShotOnGoals: number;\n evPostShotMisses: number;\n evPostShotsBlocked: number;\n shPostShotGoals: number;\n shPostShotOnGoals: number;\n shPostShotMisses: number;\n shPostShotsBlocked: number;\n ppPostShotSaves: number;\n shPostShotSaves: number;\n evPostShotSaves: number;\n ppPostShotGoalsAgainst: number;\n shPostShotGoalsAgainst: number;\n evPostShotGoalsAgainst: number;\n postShotGoalsAgainst: number;\n\n ppFastShotGoals: number;\n ppFastShotOnGoals: number;\n ppFastShotMisses: number;\n ppFastShotsBlocked: number;\n evFastShotGoals: number;\n evFastShotOnGoals: number;\n evFastShotMisses: number;\n evFastShotsBlocked: number;\n shFastShotGoals: number;\n shFastShotOnGoals: number;\n shFastShotMisses: number;\n shFastShotsBlocked: number;\n ppFastShotSaves: number;\n shFastShotSaves: number;\n evFastShotSaves: number;\n ppFastShotGoalsAgainst: number;\n shFastShotGoalsAgainst: number;\n evFastShotGoalsAgainst: number;\n fastShotGoalsAgainst: number;\n\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n get penaltyTime(): string {\n if (!this.penaltyMinutes) {\n return '00:00';\n }\n const minutes = Math.floor(this.penaltyMinutes / 60);\n const seconds = Math.floor(this.penaltyMinutes - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0);\n }\n\n get totalCounterAttackGoals(): number {\n return (this.ppCounterAttackGoals || 0) + (this.evCounterAttackGoals || 0) + (this.shCounterAttackGoals || 0);\n }\n\n get ppCounterAttackShots(): number {\n return (this.ppCounterAttackOnGoals || 0) + (this.ppCounterAttackMisses || 0) + (this.ppCounterAttackShotsBlocked || 0);\n }\n\n get shCounterAttackShots(): number {\n return (this.shCounterAttackOnGoals || 0) + (this.shCounterAttackMisses || 0) + (this.shCounterAttackShotsBlocked || 0);\n }\n\n get evCounterAttackShots(): number {\n return (this.evCounterAttackOnGoals || 0) + (this.evCounterAttackMisses || 0) + (this.evCounterAttackShotsBlocked || 0);\n }\n\n get counterAttackShotMisses(): number {\n return (this.ppCounterAttackMisses || 0) + (this.shCounterAttackMisses || 0) + (this.evCounterAttackMisses || 0);\n }\n\n get counterAttackShotOnGoals(): number {\n return (this.ppCounterAttackOnGoals || 0) + (this.shCounterAttackOnGoals || 0) + (this.evCounterAttackOnGoals || 0);\n }\n\n get counterAttackShotsBlocked(): number {\n return (this.ppCounterAttackShotsBlocked || 0) + (this.shCounterAttackShotsBlocked || 0) + (this.evCounterAttackShotsBlocked || 0);\n }\n\n get counterAttackShots(): number {\n return this.counterAttackShotMisses + this.counterAttackShotOnGoals + this.counterAttackShotsBlocked;\n }\n\n get counterAttackGoalsPercent(): number {\n if (!this.totalCounterAttackGoals || !this.counterAttackShots) {\n return 0;\n }\n return Math.round(1000 * this.totalCounterAttackGoals / this.counterAttackShots) / 10;\n }\n\n get totalManeuverGoals(): number {\n return (this.ppManeuverGoals || 0) + (this.shManeuverGoals || 0) + (this.evManeuverGoals || 0);\n }\n\n get ppManeuverShots(): number {\n return (this.ppManeuverOnGoals || 0) + (this.ppManeuverMisses || 0) + (this.ppManeuverShotsBlocked || 0);\n }\n\n get shManeuverShots(): number {\n return (this.shManeuverOnGoals || 0) + (this.shManeuverMisses || 0) + (this.shManeuverShotsBlocked || 0);\n }\n\n get evManeuverShots(): number {\n return (this.evManeuverOnGoals || 0) + (this.evManeuverMisses || 0) + (this.evManeuverShotsBlocked || 0);\n }\n\n get maneuverShotMisses(): number {\n return (this.ppManeuverMisses || 0) + (this.shManeuverMisses || 0) + (this.evManeuverMisses || 0);\n }\n\n get maneuverShotOnGoals(): number {\n return (this.ppManeuverOnGoals || 0) + (this.shManeuverOnGoals || 0) + (this.evManeuverOnGoals || 0);\n }\n\n get maneuverShotsBlocked(): number {\n return (this.ppManeuverShotsBlocked || 0) + (this.shManeuverShotsBlocked || 0) + (this.evManeuverShotsBlocked || 0);\n }\n\n get maneuverShots(): number {\n return this.maneuverShotMisses + this.maneuverShotOnGoals + this.maneuverShotsBlocked;\n }\n\n get maneuverGoalsPercent(): number {\n if (!this.totalManeuverGoals || !this.maneuverShots) {\n return 0;\n }\n return Math.round(1000 * this.totalManeuverGoals / this.maneuverShots) / 10;\n }\n\n get totalCenterForwardGoals(): number {\n return (this.ppCenterForwardGoals || 0) + (this.shCenterForwardGoals || 0) + (this.evCenterForwardGoals || 0);\n }\n\n get ppCenterForwardShots(): number {\n return (this.ppCenterForwardOnGoals || 0) + (this.ppCenterForwardMisses || 0) + (this.ppCenterForwardShotsBlocked || 0);\n }\n\n get shCenterForwardShots(): number {\n return (this.shCenterForwardOnGoals || 0) + (this.shCenterForwardMisses || 0) + (this.shCenterForwardShotsBlocked || 0);\n }\n\n get evCenterForwardShots(): number {\n return (this.evCenterForwardOnGoals || 0) + (this.evCenterForwardMisses || 0) + (this.evCenterForwardShotsBlocked || 0);\n }\n\n get centerForwardShotMisses(): number {\n return (this.ppCenterForwardMisses || 0) + (this.shCenterForwardMisses || 0) + (this.evCenterForwardMisses || 0);\n }\n\n get centerForwardShotOnGoals(): number {\n return (this.ppCenterForwardOnGoals || 0) + (this.shCenterForwardOnGoals || 0) + (this.evCenterForwardOnGoals || 0);\n }\n\n get centerForwardShotsBlocked(): number {\n return (this.ppCenterForwardShotsBlocked || 0) + (this.shCenterForwardShotsBlocked || 0) + (this.evCenterForwardShotsBlocked || 0);\n }\n\n get centerForwardShots(): number {\n return this.centerForwardShotMisses + this.centerForwardShotOnGoals + this.centerForwardShotsBlocked;\n }\n\n get centerForwardGoalsPercent(): number {\n if (!this.totalCenterForwardGoals || !this.centerForwardShots) {\n return 0;\n }\n return Math.round(1000 * this.totalCenterForwardGoals / this.centerForwardShots) / 10;\n }\n\n get totalPerimetrShotGoals(): number {\n return (this.ppPerimetrShotGoals || 0) + (this.evPerimetrShotGoals || 0) + (this.shPerimetrShotGoals || 0);\n }\n\n get ppPerimetrShots(): number {\n return (this.ppPerimetrShotOnGoals || 0) + (this.ppPerimetrShotMisses || 0) + (this.ppPerimetrShotsBlocked || 0);\n }\n\n get shPerimetrShots(): number {\n return (this.shPerimetrShotOnGoals || 0) + (this.shPerimetrShotMisses || 0) + (this.shPerimetrShotsBlocked || 0);\n }\n\n get evPerimetrShots(): number {\n return (this.evPerimetrShotOnGoals || 0) + (this.evPerimetrShotMisses || 0) + (this.evPerimetrShotsBlocked || 0);\n }\n\n get perimetrShotMisses(): number {\n return (this.ppPerimetrShotMisses || 0) + (this.shPerimetrShotMisses || 0) + (this.evPerimetrShotMisses || 0);\n }\n\n get perimetrShotOnGoals(): number {\n return (this.ppPerimetrShotOnGoals || 0) + (this.shPerimetrShotOnGoals || 0) + (this.evPerimetrShotOnGoals || 0);\n }\n\n get perimetrShotsBlocked(): number {\n return (this.ppPerimetrShotsBlocked || 0) + (this.shPerimetrShotsBlocked || 0) + (this.evPerimetrShotsBlocked || 0);\n }\n\n get perimetrShots(): number {\n return this.perimetrShotMisses + this.perimetrShotOnGoals + this.perimetrShotsBlocked;\n }\n\n get perimetrShotGoalsPercent(): number {\n if (!this.totalPerimetrShotGoals || !this.perimetrShots) {\n return 0;\n }\n return Math.round(1000 * this.totalPerimetrShotGoals / this.perimetrShots) / 10;\n }\n\n get totalPostShotGoals(): number {\n return (this.ppPostShotGoals || 0) + (this.evPostShotGoals || 0) + (this.shPostShotGoals || 0);\n }\n\n get ppPostShots(): number {\n return (this.ppPostShotOnGoals || 0) + (this.ppPostShotMisses || 0) + (this.ppPostShotsBlocked || 0);\n }\n\n get shPostShots(): number {\n return (this.shPostShotOnGoals || 0) + (this.shPostShotMisses || 0) + (this.shPostShotsBlocked || 0);\n }\n\n get evPostShots(): number {\n return (this.evPostShotOnGoals || 0) + (this.evPostShotMisses || 0) + (this.evPostShotsBlocked || 0);\n }\n\n get postShotMisses(): number {\n return (this.ppPostShotMisses || 0) + (this.shPostShotMisses || 0) + (this.evPostShotMisses || 0);\n }\n\n get postShotOnGoals(): number {\n return (this.ppPostShotOnGoals || 0) + (this.shPostShotOnGoals || 0) + (this.evPostShotOnGoals || 0);\n }\n\n get postShotsBlocked(): number {\n return (this.ppPostShotsBlocked || 0) + (this.shPostShotsBlocked || 0) + (this.evPostShotsBlocked || 0);\n }\n\n get postShots(): number {\n return this.postShotMisses + this.postShotOnGoals + this.postShotsBlocked;\n }\n\n get postShotGoalsPercent(): number {\n if (!this.totalPostShotGoals || !this.postShots) {\n return 0;\n }\n return Math.round(1000 * this.totalPostShotGoals / this.postShots) / 10;\n }\n\n get totalFastShotGoals(): number {\n return (this.ppFastShotGoals || 0) + (this.evFastShotGoals || 0) + (this.shFastShotGoals || 0);\n }\n\n get ppFastShots(): number {\n return (this.ppFastShotOnGoals || 0) + (this.ppFastShotMisses || 0) + (this.ppFastShotsBlocked || 0);\n }\n\n get shFastShots(): number {\n return (this.shFastShotOnGoals || 0) + (this.shFastShotMisses || 0) + (this.shFastShotsBlocked || 0);\n }\n\n get evFastShots(): number {\n return (this.evFastShotOnGoals || 0) + (this.evFastShotMisses || 0) + (this.evFastShotsBlocked || 0);\n }\n\n get fastShotMisses(): number {\n return (this.ppFastShotMisses || 0) + (this.shFastShotMisses || 0) + (this.evFastShotMisses || 0);\n }\n\n get fastShotOnGoals(): number {\n return (this.ppFastShotOnGoals || 0) + (this.shFastShotOnGoals || 0) + (this.evFastShotOnGoals || 0);\n }\n\n get fastShotsBlocked(): number {\n return (this.ppFastShotsBlocked || 0) + (this.shFastShotsBlocked || 0) + (this.evFastShotsBlocked || 0);\n }\n\n get fastShots(): number {\n return this.fastShotMisses + this.fastShotOnGoals + this.fastShotsBlocked;\n }\n\n get fastShotGoalsPercent(): number {\n if (!this.totalFastShotGoals || !this.fastShots) {\n return 0;\n }\n return Math.round(1000 * this.totalFastShotGoals / this.fastShots) / 10;\n }\n\n get ppShots(): number {\n return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0) +\n (this.ppFreeKickMisses || 0) + (this.ppFreeKickOnGoals || 0) + (this.ppFreeKickShotsBlocked || 0) +\n (this.ppCornerMisses || 0) + (this.ppCornerOnGoals || 0) + (this.ppCornerShotsBlocked || 0) +\n this.ppCounterAttackShots + this.ppManeuverShots + this.ppCenterForwardShots +\n this.ppPerimetrShots + this.ppPostShots + this.ppFastShots;\n }\n\n get evShots(): number {\n return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0) +\n (this.evFreeKickMisses || 0) + (this.evFreeKickOnGoals || 0) + (this.evFreeKickShotsBlocked || 0) +\n (this.evCornerMisses || 0) + (this.evCornerOnGoals || 0) + (this.evCornerShotsBlocked || 0) +\n this.evCounterAttackShots + this.evManeuverShots + this.evCenterForwardShots +\n this.evPerimetrShots + this.evPostShots + this.evFastShots;\n }\n\n get shShots(): number {\n return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0) +\n (this.shFreeKickMisses || 0) + (this.shFreeKickOnGoals || 0) + (this.shFreeKickShotsBlocked || 0) +\n (this.shCornerMisses || 0) + (this.shCornerOnGoals || 0) + (this.shCornerShotsBlocked || 0) +\n this.shCounterAttackShots + this.shManeuverShots + this.shCenterForwardShots +\n this.shPerimetrShots + this.shPostShots + this.shFastShots;\n }\n\n get totalShGoals(): number {\n return (this.shGoals || 0) + (this.shFreeKickGoals || 0) + (this.shCornerGoals || 0) +\n (this.shCounterAttackGoals || 0) + (this.shManeuverGoals || 0) + (this.shCenterForwardGoals || 0) +\n (this.shPerimetrShotGoals || 0) + (this.shPostShotGoals || 0) + (this.shFastShotGoals || 0);\n }\n\n get totalEvGoals(): number {\n return (this.evGoals || 0) + (this.evFreeKickGoals || 0) + (this.evCornerGoals || 0) +\n (this.evCounterAttackGoals || 0) + (this.evManeuverGoals || 0) + (this.evCenterForwardGoals || 0) +\n (this.evPerimetrShotGoals || 0) + (this.evPostShotGoals || 0) + (this.evFastShotGoals || 0);\n }\n\n get totalPpGoals(): number {\n return (this.ppGoals || 0) + (this.ppFreeKickGoals || 0) + (this.ppCornerGoals || 0) +\n (this.ppCounterAttackGoals || 0) + (this.ppManeuverGoals || 0) + (this.ppCenterForwardGoals || 0) +\n (this.ppPerimetrShotGoals || 0) + (this.ppPostShotGoals || 0) + (this.ppFastShotGoals || 0);\n }\n\n get goals(): number {\n return this.totalShGoals + this.totalEvGoals + this.totalPpGoals;\n }\n\n get totalGoals(): number {\n return this.goals + (this.shootoutGoals || 0);\n }\n\n get shootoutShots(): number {\n return (this.shootoutGoals || 0) + (this.shootoutAttempts || 0);\n }\n\n get inGameShotMisses(): number {\n return (this.ppShotMisses || 0) + (this.evShotMisses || 0) + (this.shShotMisses || 0) +\n this.counterAttackShotMisses + this.maneuverShotMisses + this.centerForwardShotMisses +\n this.perimetrShotMisses + this.postShotMisses + this.fastShotMisses;\n }\n\n get shotMisses(): number {\n return (this.ppFreeKickMisses || 0) + (this.evFreeKickMisses || 0) + (this.shFreeKickMisses || 0) +\n (this.ppCornerMisses || 0) + (this.evCornerMisses || 0) + (this.shCornerMisses || 0) +\n this.inGameShotMisses;\n }\n\n get totalPpShotMisses(): number {\n return (this.ppShotMisses || 0) + (this.ppFreeKickMisses || 0) + (this.ppCornerMisses || 0) +\n (this.ppCounterAttackMisses || 0) + (this.ppManeuverMisses || 0) + (this.ppCenterForwardMisses || 0) +\n (this.ppPerimetrShotMisses || 0) + (this.ppPostShotMisses || 0) + (this.ppFastShotMisses || 0);\n }\n\n get shotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0) +\n (this.ppFreeKickOnGoals || 0) + (this.evFreeKickOnGoals || 0) + (this.shFreeKickOnGoals || 0) +\n (this.ppCornerOnGoals || 0) + (this.evCornerOnGoals || 0) + (this.shCornerOnGoals || 0) +\n this.counterAttackShotOnGoals + this.maneuverShotOnGoals + this.centerForwardShotOnGoals +\n this.perimetrShotOnGoals + this.postShotOnGoals + this.fastShotOnGoals;\n }\n\n get totalPpShotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.ppFreeKickOnGoals || 0) + (this.ppCornerOnGoals || 0) +\n (this.ppCounterAttackOnGoals || 0) + (this.ppManeuverOnGoals || 0) + (this.ppCenterForwardOnGoals || 0) +\n (this.ppPerimetrShotOnGoals || 0) + (this.ppPostShotOnGoals || 0) + (this.ppFastShotOnGoals || 0);\n }\n\n get inGameShotsOnGoals(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0) +\n this.counterAttackShotOnGoals + this.maneuverShotOnGoals + this.centerForwardShotOnGoals +\n this.perimetrShotOnGoals + this.postShotOnGoals + this.fastShotOnGoals;\n }\n\n get shots(): number {\n return this.ppShots + this.evShots + this.shShots;\n }\n\n get totalShots(): number {\n return this.shots + this.shootoutShots;\n }\n\n get faceOffs(): number {\n return (this.faceOffWins || 0) + (this.faceOffLosses || 0);\n }\n\n get freeKickShotMisses(): number {\n return (this.ppFreeKickMisses || 0) + (this.evFreeKickMisses || 0) + (this.shFreeKickMisses || 0);\n }\n\n get freeKickShotsBlocked(): number {\n return (this.ppFreeKickShotsBlocked || 0) + (this.evFreeKickShotsBlocked || 0) + (this.shFreeKickShotsBlocked || 0);\n }\n\n get freeKickOnGoals(): number {\n return (this.ppFreeKickOnGoals || 0) + (this.evFreeKickOnGoals || 0) + (this.shFreeKickOnGoals || 0);\n }\n\n get totalFreeKickGoals(): number {\n return (this.ppFreeKickGoals || 0) + (this.shFreeKickGoals || 0) + (this.evFreeKickGoals || 0);\n }\n\n get totalFreeKicks(): number {\n return (this.freeKickSelfs || 0) + (this.freeKickPasses || 0) +\n this.freeKickShotMisses + this.freeKickOnGoals + this.totalFreeKickGoals + this.freeKickShotsBlocked;\n }\n\n get freeKickGoalsPercent(): number {\n if (!this.totalFreeKickGoals || !this.totalFreeKicks) {\n return 0;\n }\n return Math.round(1000 * this.totalFreeKickGoals / this.totalFreeKicks) / 10;\n }\n\n get totalCornerGoals(): number {\n return (this.ppCornerGoals || 0) + (this.shCornerGoals || 0) + (this.evCornerGoals || 0);\n }\n\n get cornerShotMisses(): number {\n return (this.ppCornerMisses || 0) + (this.shCornerMisses || 0) + (this.evCornerMisses || 0);\n }\n\n get cornerOnGoals(): number {\n return (this.ppCornerOnGoals || 0) + (this.shCornerOnGoals || 0) + (this.evCornerOnGoals || 0);\n }\n\n get cornerShotsBlocked(): number {\n return (this.ppCornerShotsBlocked || 0) + (this.shCornerShotsBlocked || 0) + (this.evCornerShotsBlocked || 0);\n }\n\n get totalCorners(): number {\n return (this.cornerSelfs || 0) + (this.cornerPasses || 0) + this.cornerShotsBlocked +\n this.cornerOnGoals + this.cornerShotMisses + this.totalCornerGoals;\n }\n\n get shotsBlocked(): number {\n return (this.ppShotsBlocked || 0) + (this.evShotsBlocked || 0) + (this.shShotsBlocked || 0) +\n this.counterAttackShotsBlocked + this.maneuverShotsBlocked + this.centerForwardShotsBlocked +\n this.freeKickShotsBlocked + this.cornerShotsBlocked +\n this.perimetrShotsBlocked + this.postShotsBlocked + this.fastShotsBlocked;\n }\n\n get totalFouls(): number {\n return (this.fouls || 0) + (this.personalFouls || 0);\n }\n\n get totalPenalties(): number {\n return (this.minorPenalties || 0) + (this.majorPenalties || 0) + (this.matchPenalties || 0);\n }\n\n get positionAttackGoals(): number {\n return (this.shGoals || 0) + (this.evGoals || 0) + (this.ppGoals || 0);\n }\n\n get positionAttackShotsOnGoal(): number {\n return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0);\n }\n\n get positionAttackShotsMiss(): number {\n return (this.ppShotMisses || 0) + (this.evShotMisses || 0) + (this.shShotMisses || 0);\n }\n\n get positionAttackShots(): number {\n return this.positionAttackShotsOnGoal + this.positionAttackShotsMiss;\n }\n\n get positionAttackGoalsPercent(): number {\n if (!this.positionAttackGoals || !this.positionAttackShots) {\n return 0;\n }\n return Math.round(1000 * this.positionAttackGoals / this.positionAttackShots) / 10;\n }\n\n get totalInGameGoals(): number {\n return this.totalCenterForwardGoals + this.totalManeuverGoals + this.totalCounterAttackGoals + this.positionAttackGoals +\n this.totalPerimetrShotGoals + this.totalPostShotGoals + this.totalFastShotGoals;\n }\n\n get ppGoalsPercent(): number {\n if (!this.totalPpGoals || !this.ppShots) {\n return 0;\n }\n return Math.round(1000 * this.totalPpGoals / this.ppShots) / 10;\n }\n\n get evGoalsPercent(): number {\n if (!this.totalEvGoals || !this.evShots) {\n return 0;\n }\n return Math.round(1000 * this.totalEvGoals / this.evShots) / 10;\n }\n\n get shGoalsPercent(): number {\n if (!this.totalShGoals || !this.shShots) {\n return 0;\n }\n return Math.round(1000 * this.totalShGoals / this.shShots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get goalsPercent(): number {\n if (!this.goals || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.goals / this.shots) / 10;\n }\n\n get totalGoalsPercent(): number {\n if (!this.totalGoals || !this.totalShots) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.totalShots) / 10;\n }\n\n get faceOffPercent(): number {\n if (!this.faceOffWins || !this.faceOffs) {\n return 0;\n }\n return Math.round(1000 * this.faceOffWins / this.faceOffs) / 10;\n }\n\n get shootoutGoalsPercent(): number {\n if (!this.shootoutGoals || !this.shootoutShots) {\n return 0;\n }\n return Math.round(1000 * this.shootoutGoals / this.shootoutShots) / 10;\n }\n\n get goalpass(): number {\n return (this.totalGoals || 0) + (this.assists || 0);\n }\n\n /*goalie stat */\n get positionAttackSaves(): number {\n return (this.ppSaves || 0) + (this.shSaves || 0) + (this.evSaves || 0);\n }\n\n get positionAttackShotsAgainst(): number {\n return this.positionAttackSaves + (this.goalsAgainst || 0);\n }\n\n get positionAttackSavesPercent(): number {\n if (!this.positionAttackSaves || !this.positionAttackShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.positionAttackSaves / this.positionAttackShotsAgainst) / 10;\n }\n\n get counterAttackSaves(): number {\n return (this.ppCounterAttackSaves || 0) + (this.shCounterAttackSaves || 0) + (this.evCounterAttackSaves || 0);\n }\n\n get counterAttackShotsAgainst(): number {\n return this.counterAttackSaves + (this.counterAttackGoalsAgainst || 0);\n }\n\n get counterAttackSavesPercent(): number {\n if (!this.counterAttackSaves || !this.counterAttackShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.counterAttackSaves / this.counterAttackShotsAgainst) / 10;\n }\n\n\n get centerForwardSaves(): number {\n return (this.ppCenterForwardSaves || 0) + (this.shCenterForwardSaves || 0) + (this.evCenterForwardSaves || 0);\n }\n\n get centerForwardShotsAgainst(): number {\n return this.centerForwardSaves + (this.centerForwardGoalsAgainst || 0);\n }\n\n get centerForwardSavesPercent(): number {\n if (!this.centerForwardSaves || !this.centerForwardShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.centerForwardSaves / this.centerForwardShotsAgainst) / 10;\n }\n\n get maneuverSaves(): number {\n return (this.ppManeuverSaves || 0) + (this.shManeuverSaves || 0) + (this.evManeuverSaves || 0);\n }\n\n get maneuverShotsAgainst(): number {\n return this.maneuverSaves + (this.maneuverGoalsAgainst || 0);\n }\n\n get maneuverSavesPercent(): number {\n if (!this.maneuverSaves || !this.maneuverShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.maneuverSaves / this.maneuverShotsAgainst) / 10;\n }\n\n get freeKickSaves(): number {\n return (this.ppFreeKickSaves || 0) + (this.shFreeKickSaves || 0) + (this.evFreeKickSaves || 0);\n }\n\n get freeKickShotsAgainst(): number {\n return this.freeKickSaves + (this.freeKickGoalsAgainst || 0);\n }\n\n get freeKickSavesPercent(): number {\n if (!this.freeKickSaves || !this.freeKickShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.freeKickSaves / this.freeKickShotsAgainst) / 10;\n }\n\n get cornerSaves(): number {\n return (this.ppCornerSaves || 0) + (this.shCornerSaves || 0) + (this.evCornerSaves || 0);\n }\n\n get cornerShotsAgainst(): number {\n return this.cornerSaves + (this.cornerGoalsAgainst || 0);\n }\n\n get cornerSavesPercent(): number {\n if (!this.cornerSaves || !this.cornerShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.cornerSaves / this.cornerShotsAgainst) / 10;\n }\n\n get perimetrShotSaves(): number {\n return (this.ppPerimetrShotSaves || 0) + (this.shPerimetrShotSaves || 0) + (this.evPerimetrShotSaves || 0);\n }\n\n get perimetrShotsAgainst(): number {\n return this.perimetrShotSaves + (this.perimetrShotGoalsAgainst || 0);\n }\n\n get perimetrShotSavesPercent(): number {\n if (!this.perimetrShotSaves || !this.perimetrShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.perimetrShotSaves / this.perimetrShotsAgainst) / 10;\n }\n\n get postShotSaves(): number {\n return (this.ppPostShotSaves || 0) + (this.shPostShotSaves || 0) + (this.evPostShotSaves || 0);\n }\n\n get postShotsAgainst(): number {\n return this.postShotSaves + (this.postShotGoalsAgainst || 0);\n }\n\n get postShotSavesPercent(): number {\n if (!this.postShotSaves || !this.postShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.postShotSaves / this.postShotsAgainst) / 10;\n }\n\n get fastShotSaves(): number {\n return (this.ppFastShotSaves || 0) + (this.shFastShotSaves || 0) + (this.evFastShotSaves || 0);\n }\n\n get fastShotsAgainst(): number {\n return this.fastShotSaves + (this.fastShotGoalsAgainst || 0);\n }\n\n get fastShotSavesPercent(): number {\n if (!this.fastShotSaves || !this.fastShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.fastShotSaves / this.fastShotsAgainst) / 10;\n }\n\n\n get inGameSaves(): number {\n return (this.shSaves || 0) + (this.evSaves || 0) + (this.ppSaves || 0) +\n this.counterAttackSaves + this.maneuverSaves + this.centerForwardSaves +\n this.perimetrShotSaves + this.postShotSaves + this.fastShotSaves;\n }\n\n get saves(): number {\n return this.inGameSaves + this.freeKickSaves + this.cornerSaves;\n }\n\n get totalSaves(): number {\n return this.saves + (this.shootoutSaves || 0);\n }\n\n get inGameGoalsAgainst(): number {\n return (this.goalsAgainst || 0) + (this.counterAttackGoalsAgainst || 0) + (this.maneuverGoalsAgainst || 0) + (this.centerForwardGoalsAgainst || 0) +\n (this.perimetrShotGoalsAgainst || 0) + (this.postShotGoalsAgainst || 0) + (this.fastShotGoalsAgainst || 0);\n }\n\n get shootoutShotsAgainst(): number {\n return (this.shootoutSaves || 0) + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameGoalsAgainst(): number {\n return this.inGameGoalsAgainst + (this.freeKickGoalsAgainst || 0) + (this.cornerGoalsAgainst || 0);\n }\n\n get totalGoalsAgainst(): number {\n return this.gameGoalsAgainst + (this.shootoutGoalsAgainst || 0);\n }\n\n get gameShotsAgainst(): number {\n return this.saves + this.gameGoalsAgainst;\n }\n\n get totalShotsAgainst(): number {\n return this.gameShotsAgainst + this.shootoutShotsAgainst;\n }\n\n get shootoutSavesPercent(): number {\n if (!this.shootoutSaves || !this.shootoutShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.shootoutSaves / this.shootoutShotsAgainst) / 10;\n }\n\n get savesPercent(): number {\n if (!this.saves || !this.gameShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.gameShotsAgainst) / 10;\n }\n\n get totalSavesPercent(): number {\n if (!this.totalSaves || !this.totalShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalSaves / this.totalShotsAgainst) / 10;\n }\n\n get totalShSaves(): number {\n return (this.shCounterAttackSaves || 0) + (this.shManeuverSaves || 0) + (this.shCenterForwardSaves || 0) +\n (this.shSaves || 0) + (this.shFreeKickSaves || 0) + (this.shCornerSaves || 0) +\n (this.shPerimetrShotSaves) + (this.shPostShotSaves) + (this.shFastShotSaves);\n }\n\n get totalShGoalsAgainst(): number {\n return (this.shGoalsAgainst || 0) + (this.shFreeKickGoalsAgainst || 0) + (this.shCornerGoalsAgainst || 0) +\n (this.shCounterAttackGoalsAgainst || 0) + (this.shManeuverGoalsAgainst || 0) + (this.shCenterForwardGoalsAgainst || 0) +\n (this.shPerimetrShotGoalsAgainst || 0) + (this.shPostShotGoalsAgainst || 0) + (this.shFastShotGoalsAgainst || 0);\n }\n\n get totalShShotsAgainst(): number {\n return this.totalShSaves + this.totalShGoalsAgainst;\n }\n\n get totalShSavesPercent(): number {\n if (!this.totalShSaves || !this.totalShShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalShSaves / this.totalShShotsAgainst) / 10;\n }\n\n get totalEvSaves(): number {\n return (this.evCounterAttackSaves || 0) + (this.evManeuverSaves || 0) + (this.evCenterForwardSaves || 0) +\n (this.evSaves || 0) + (this.evFreeKickSaves || 0) + (this.evCornerSaves || 0) +\n (this.evPerimetrShotSaves) + (this.evPostShotSaves) + (this.evFastShotSaves);\n }\n\n get totalEvGoalsAgainst(): number {\n return (this.evGoalsAgainst || 0) + (this.evFreeKickGoalsAgainst || 0) + (this.evCornerGoalsAgainst || 0) +\n (this.evCounterAttackGoalsAgainst || 0) + (this.evManeuverGoalsAgainst || 0) + (this.evCenterForwardGoalsAgainst || 0) +\n (this.evPerimetrShotGoalsAgainst || 0) + (this.evPostShotGoalsAgainst || 0) + (this.evFastShotGoalsAgainst || 0);\n }\n\n get totalEvShotsAgainst(): number {\n return this.totalEvSaves + this.totalEvGoalsAgainst;\n }\n\n get totalEvSavesPercent(): number {\n if (!this.totalEvSaves || !this.totalEvShotsAgainst) {\n return 0;\n }\n return Math.round(1000 * this.totalEvSaves / this.totalEvShotsAgainst) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { WaterpoloStatistic } from './waterpolo-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: WaterpoloStatistic,\n competitorTeam: WaterpoloStatistic\n }\n})\nexport class WaterpoloGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: WaterpoloStatistic;\n competitorTeam: WaterpoloStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { WaterpoloGameLog } from '../models/waterpolo-game-log';\nimport { WaterpoloGameStatistic } from '../models/waterpolo-game-statistic';\nimport { WaterpoloGameTeamStatistic } from '../models/waterpolo-game-team-statistic';\nimport { GameBaseApi } from './game-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class WaterpoloGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<WaterpoloGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/team_statistic/`).pipe(\n map(result => WaterpoloGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<WaterpoloGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/user_statistic/`).pipe(\n map(result => WaterpoloGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<WaterpoloGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/logs/`).pipe(\n map(result => WaterpoloGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf' | 'xlsx' | 'html'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf' | 'xlsx' | 'html', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_waterpolo_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { WrestballStatistic } from './wrestball-statistic';\nimport { GameTeamStatisticBase } from './game-team-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: WrestballStatistic,\n competitorTeam: WrestballStatistic\n }\n})\nexport class WrestballGameTeamStatistic extends BaseModel implements GameTeamStatisticBase {\n team: WrestballStatistic;\n competitorTeam: WrestballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n points: 'points',\n free_throws_made: 'freeThrowsMade',\n two_points_free_throw_made: 'twoPointsFreeThrowMade',\n three_points_free_throw_made: 'threePointsFreeThrowMade',\n total_free_throw_made: 'totalFreeThrowMade',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n one_points_made: 'onePointsMade',\n dunks_made: 'dunksMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n two_point_free_throw_attempts: 'twoPointFreeThrowAttempts',\n three_point_free_throw_attempts: 'threePointFreeThrowAttempts',\n total_free_throw_attempts: 'totalFreeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n dunk_attempts: 'dunkAttempts',\n one_point_percent: 'onePointPercent',\n two_point_percent: 'twoPointPercent',\n three_point_percent: 'threePointPercent',\n free_throw_percent: 'freeThrowPercent',\n total_free_throw_percent: 'totalFreeThrowPercent',\n dunks_made_percent: 'dunksMadePercent',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n drawn_fouls: 'drawnFouls',\n drawn_wrestler_attempts: 'drawnWrestlerAttempts',\n drawn_wrestler_won_attempts: 'drawnWrestlerWonAttempts',\n drawn_wrestler_lost_attempts: 'drawnWrestlerLostAttempts',\n wrestler_scrums_won: 'wrestlerScrumsWon',\n wrestler_scrums_lost: 'wrestlerScrumsLost',\n wrestler_scrums_tie: 'wrestlerScrumsTie',\n wrestler_scrum_points: 'wrestlerScrumPoints',\n wrestler_scrums_counterattack: 'wrestlerScrumsCounterattack',\n wrestler_scrums_counterattack_points: 'wrestlerScrumsCounterattackPoints',\n scrums_won: 'scrumsWon',\n scrums_lost: 'scrumsLost',\n scrums_tie: 'scrumsTie',\n scrum_points: 'scrumPoints',\n scrums_ball_advantage_won: 'scrumsBallAdvantageWon',\n scrums_ball_advantage_lost: 'scrumsBallAdvantageLost',\n scrums_ball_advantage_tie: 'scrumsBallAdvantageTie',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n updated_at: 'updatedAt',\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class WrestballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n freeThrowsMade: number;\n twoPointsFreeThrowMade: number;\n threePointsFreeThrowMade: number;\n totalFreeThrowMade: number;\n twoPointsMade: number;\n threePointsMade: number;\n onePointsMade: number;\n dunksMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n twoPointFreeThrowAttempts: number;\n threePointFreeThrowAttempts: number;\n totalFreeThrowAttempts: number;\n onePointAttempts: number;\n dunkAttempts: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n disqualificationFouls: number;\n drawnFouls: number;\n drawnWrestlerAttempts: number;\n drawnWrestlerWonAttempts: number;\n drawnWrestlerLostAttempts: number;\n wrestlerScrumsWon: number;\n wrestlerScrumsLost: number;\n wrestlerScrumsTie: number;\n wrestlerScrumPoints: number;\n wrestlerScrumsCounterattack: number;\n wrestlerScrumsCounterattackPoints: number;\n scrumsWon: number;\n scrumsLost: number;\n scrumsTie: number;\n scrumPoints: number;\n scrumsBallAdvantageWon: number;\n scrumsBallAdvantageLost: number;\n scrumsBallAdvantageTie: number;\n yellowCards: number;\n redCards: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get totalFouls(): number {\n return (this.personalFouls || 0)\n + (this.technicalFouls || 0)\n + (this.unsportsmanlikeFouls || 0)\n + (this.disqualificationFouls || 0)\n + (this.yellowCards || 0)\n + (this.redCards || 0);\n }\n\n set onePointPercent(v: number) {}\n\n get onePointPercent(): number {\n if (!this.onePointsMade || !this.onePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.onePointsMade / this.onePointAttempts) / 10;\n }\n\n set twoPointPercent(v: number) {}\n\n get twoPointPercent(): number {\n if (!this.twoPointsMade || !this.twoPointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.twoPointsMade / this.twoPointAttempts) / 10;\n }\n\n set threePointPercent(v: number) {}\n\n get threePointPercent(): number {\n if (!this.threePointsMade || !this.threePointAttempts) {\n return 0;\n }\n return Math.round(1000 * this.threePointsMade / this.threePointAttempts) / 10;\n }\n\n set freeThrowPercent(v: number) {}\n\n get freeThrowPercent(): number {\n if (!this.freeThrowsMade || !this.freeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.freeThrowsMade / this.freeThrowAttempts) / 10;\n }\n\n set totalFreeThrowPercent(v: number) {}\n\n get totalFreeThrowPercent(): number {\n if (!this.totalFreeThrowMade || !this.totalFreeThrowAttempts) {\n return 0;\n }\n return Math.round(1000 * this.totalFreeThrowMade / this.totalFreeThrowAttempts) / 10;\n }\n\n set dunksMadePercent(v: number) {}\n\n get dunksMadePercent(): number {\n return !this.dunksMade || !this.dunkAttempts ? 0 : Math.round(1000 * this.dunksMade / this.dunkAttempts) / 10;\n }\n\n get totalRebounds(): number {\n return Math.floor(10 * ((this.offensiveRebounds || 0) + (this.defensiveRebounds || 0))) / 10;\n }\n\n get wrestlerScrums(): number {\n return (this.wrestlerScrumsWon || 0)\n + (this.wrestlerScrumsLost || 0)\n + (this.wrestlerScrumsTie || 0)\n + (this.wrestlerScrumsCounterattack || 0);\n }\n\n get wrestlerScrumsWonPercent(): number {\n if (!this.wrestlerScrumsWon || !this.wrestlerScrums) {\n return 0;\n }\n return Math.round(1000 * this.wrestlerScrumsWon / this.wrestlerScrums) / 10;\n }\n\n get scrums(): number {\n return (this.scrumsWon || 0) + (this.scrumsLost || 0) + (this.scrumsTie || 0);\n }\n\n get scrumsWonPercent(): number {\n if (!this.scrumsWon || !this.scrums) {\n return 0;\n }\n return Math.round(1000 * this.scrumsWon / this.scrums) / 10;\n }\n\n get scrumsBallAdvantageTotal(): number {\n return (this.scrumsBallAdvantageWon || 0) + (this.scrumsBallAdvantageLost || 0) + (this.scrumsBallAdvantageTie || 0);\n }\n\n get scrumsBallAdvantageWonPercent(): number {\n if (!this.scrumsBallAdvantageWon || !this.scrumsBallAdvantageTotal) {\n return 0;\n }\n return Math.round(1000 * this.scrumsBallAdvantageWon / this.scrumsBallAdvantageTotal) / 10;\n }\n\n get totalScrums(): number {\n return (this.wrestlerScrums || 0) + (this.scrums || 0) + (this.scrumsBallAdvantageTotal || 0);\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum WrestballGameLogTypes {\n enter_game = 1,\n exit_game,\n remove_game,\n one_point_made,\n one_point_attempt,\n two_point_made,\n two_point_attempt,\n three_point_made,\n three_point_attempt,\n free_throw_made,\n free_throw_attempt,\n assist,\n block,\n rebound,\n offensive_rebound,\n defensive_rebound,\n team_rebound,\n steal,\n turnover,\n personal_foul,\n timeout,\n wrestler_scrum,\n wrestler_scrum_won,\n wrestler_scrum_lost,\n wrestler_scrum_tie,\n scrum,\n scrum_won,\n scrum_lost,\n scrum_tie,\n yellow_card,\n red_card,\n wrestler_scrum_counterattack,\n scrum_ball_advantage_won,\n scrum_ball_advantage_lost,\n scrum_ball_advantage_tie,\n dunk_made,\n dunk_attempt,\n two_point_free_throw_made,\n two_point_free_throw_attempt,\n three_point_free_throw_made,\n three_point_free_throw_attempt\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n foul_on_game_user_id: 'foulOnGameUserId',\n wrestler_attempt_on_game_user_id: 'wrestlerAttemptOnGameUserId',\n is_coach: 'isCoach',\n is_bench: 'isBench',\n marked: 'marked',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(WrestballGameLogTypes),\n }\n})\nexport class WrestballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: WrestballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n foulOnGameUserId: number;\n foulOnGameUser: GameUser;\n wrestlerAttemptOnGameUserId: number;\n wrestlerAttemptOnGameUser: GameUser;\n isCoach: boolean;\n isBench: boolean;\n\n isPointsType() {\n return [\n WrestballGameLogTypes.two_point_made,\n WrestballGameLogTypes.three_point_made,\n WrestballGameLogTypes.free_throw_made,\n WrestballGameLogTypes.two_point_free_throw_made,\n WrestballGameLogTypes.three_point_free_throw_made,\n WrestballGameLogTypes.one_point_made,\n WrestballGameLogTypes.scrum_won,\n WrestballGameLogTypes.wrestler_scrum_won,\n WrestballGameLogTypes.wrestler_scrum_counterattack,\n WrestballGameLogTypes.dunk_made,\n ].indexOf(this.logType) > -1;\n }\n\n isReboundType() {\n return [\n WrestballGameLogTypes.rebound,\n WrestballGameLogTypes.offensive_rebound,\n WrestballGameLogTypes.defensive_rebound,\n WrestballGameLogTypes.team_rebound,\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType() {\n return [\n WrestballGameLogTypes.personal_foul,\n WrestballGameLogTypes.yellow_card,\n WrestballGameLogTypes.red_card,\n ].indexOf(this.logType) > -1;\n }\n\n isScrumType() {\n return [\n WrestballGameLogTypes.wrestler_scrum_won,\n WrestballGameLogTypes.wrestler_scrum_lost,\n WrestballGameLogTypes.wrestler_scrum_tie,\n WrestballGameLogTypes.scrum_won,\n WrestballGameLogTypes.scrum_lost,\n WrestballGameLogTypes.scrum_tie,\n WrestballGameLogTypes.scrum_ball_advantage_won,\n WrestballGameLogTypes.scrum_ball_advantage_lost,\n WrestballGameLogTypes.scrum_ball_advantage_tie\n ].indexOf(this.logType) > -1;\n }\n\n isRestlerScrumType() {\n return [\n WrestballGameLogTypes.wrestler_scrum_won,\n WrestballGameLogTypes.wrestler_scrum_lost,\n WrestballGameLogTypes.wrestler_scrum_tie\n ].indexOf(this.logType) > -1;\n }\n\n getScore() {\n const scoreMapping = {\n [WrestballGameLogTypes.one_point_made]: 1,\n [WrestballGameLogTypes.free_throw_made]: 1,\n [WrestballGameLogTypes.two_point_free_throw_made]: 2,\n [WrestballGameLogTypes.three_point_free_throw_made]: 3,\n [WrestballGameLogTypes.two_point_made]: 2,\n [WrestballGameLogTypes.three_point_made]: 3,\n [WrestballGameLogTypes.scrum_won]: 2,\n [WrestballGameLogTypes.wrestler_scrum_won]: 2,\n [WrestballGameLogTypes.wrestler_scrum_counterattack]: 2,\n [WrestballGameLogTypes.dunk_made]: 2,\n };\n return scoreMapping[this.logType] || 0;\n }\n\n compare(model: WrestballGameLog): number {\n const orderFields = ['period', 'time', 'datetime', 'id'];\n for (const field of orderFields) {\n if (this[field] < model[field]) {\n return 1;\n }\n if (this[field] > model[field]) {\n return -1;\n }\n }\n return 0;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { ConfigService } from '../services/config.service';\nimport { GameBaseApi } from './game-base-api';\nimport { WrestballGameTeamStatistic } from '../models/wrestball-game-team-statistic';\nimport { WrestballGameStatistic } from '../models/wrestball-game-statistic';\nimport { WrestballGameLog } from '../models/wrestball-game-log';\n\n@Injectable({providedIn: 'root'})\nexport class WrestballGameApi extends GameBaseApi {\n constructor(\n protected httpClient: HttpClient,\n protected configService: ConfigService\n ) {\n super(httpClient, configService);\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_wrestball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<WrestballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_wrestball_game/${gameId}/team_statistic/`).pipe(\n map(result => WrestballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<WrestballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_wrestball_game/${gameId}/user_statistic/`).pipe(\n map(result => WrestballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<WrestballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_wrestball_game/${gameId}/logs/`).pipe(\n map(result => WrestballGameLog.toFront(result))\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TeamUser } from '../models/team-user';\n\n@Injectable({providedIn: 'root'})\nexport class PublicTeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(teamId: number): Promise<Team> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/`).pipe(\n map(result => Team.toFront(result))\n ).toPromise();\n }\n\n getTournamentTeams(teamId: number, leagueId: number): Promise<TournamentTeam[]> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/tournament_teams/`, {params}).pipe(\n map(result => TournamentTeam.toFront(result))\n ).toPromise();\n }\n\n async getUsers(teamId: number): Promise<TeamUser[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/public_team/${teamId}/users/`)\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { User } from '../models/user';\nimport { map } from 'rxjs/operators';\nimport { Tournament } from '../models/tournament';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\nimport { LeaguePlayer } from '../models/league-player';\n\n@Injectable({providedIn: 'root'})\nexport class PublicUserApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n getById(userId: number): Promise<User> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/`).pipe(\n map(result => User.toFront(result))\n ).toPromise();\n }\n\n getTournaments(userId: number, leagueId: number): Promise<Tournament[]> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/tournaments/`, {params}).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n getTournamentUser(userId: number, seasonId: number): Promise<TournamentTeamUser> {\n const params = new HttpParams().set('season_id', seasonId.toString());\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/tournament_user/`, {params}).pipe(\n map(result => TournamentTeamUser.toFront(result))\n ).toPromise();\n }\n\n getLeaguePlayer(userId: number, leagueId: number): Promise<LeaguePlayer> {\n const params = new HttpParams().set('league_id', leagueId.toString());\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/public_user/${userId}/league_player/`, {params}).pipe(\n map(result => LeaguePlayer.toFront(result))\n ).toPromise();\n }\n}\n","import { BasketballGameLogTypes } from '../models/basketball-game-log';\nimport { Locales } from './locales';\n\nexport const BasketballGameLogTypeLocalization = {\n [Locales.ru]: {\n [BasketballGameLogTypes.enter_game]: 'Выход на площадку',\n [BasketballGameLogTypes.exit_game]: 'Ушел с площадки',\n [BasketballGameLogTypes.remove_game]: 'Удаление с площадки',\n [BasketballGameLogTypes.two_point_attempt]: 'Бросок 2 очка',\n [BasketballGameLogTypes.three_point_attempt]: 'Бросок 3 очка',\n [BasketballGameLogTypes.free_throw_attempt]: 'Штрафной бросок',\n [BasketballGameLogTypes.one_point_attempt]: 'Бросок 1 очко',\n [BasketballGameLogTypes.two_point_made]: '2 очка',\n [BasketballGameLogTypes.three_point_made]: '3 очка',\n [BasketballGameLogTypes.free_throw_made]: '1 очко, штрафной',\n [BasketballGameLogTypes.one_point_made]: '1 очко',\n [BasketballGameLogTypes.assist]: 'Передача',\n [BasketballGameLogTypes.block]: 'Блокшот',\n [BasketballGameLogTypes.rebound]: 'Подбор',\n [BasketballGameLogTypes.offensive_rebound]: 'Подбор в нападении',\n [BasketballGameLogTypes.defensive_rebound]: 'Подбор в защите',\n [BasketballGameLogTypes.steal]: 'Перехват',\n [BasketballGameLogTypes.turnover]: 'Потеря',\n [BasketballGameLogTypes.personal_foul]: 'Фол',\n [BasketballGameLogTypes.technical_foul]: 'Технический фол',\n [BasketballGameLogTypes.unsportsmanlike_foul]: 'Неспортиный фол',\n [BasketballGameLogTypes.timeout]: 'Таймаут',\n [BasketballGameLogTypes.team_rebound]: 'Командный подбор',\n [BasketballGameLogTypes.dunk_attempt]: 'Данк мимо',\n [BasketballGameLogTypes.dunk_made]: 'Данк',\n [BasketballGameLogTypes.four_point_attempt]: 'Бросок 4 очка',\n [BasketballGameLogTypes.four_point_made]: '4 очка',\n [BasketballGameLogTypes.shootout]: 'Буллит',\n [BasketballGameLogTypes.shootout_won]: 'Буллит выигран',\n [BasketballGameLogTypes.shootout_lost]: 'Буллит проигран',\n [BasketballGameLogTypes.moneyball_free_throw_attempt]: 'Штрафной бросок',\n [BasketballGameLogTypes.moneyball_free_throw_made]: '2 очка, штрафной',\n },\n [Locales.en]: {\n [BasketballGameLogTypes.enter_game]: 'Entering the court',\n [BasketballGameLogTypes.exit_game]: 'Exit the court',\n [BasketballGameLogTypes.remove_game]: 'Remove from the court',\n [BasketballGameLogTypes.two_point_attempt]: 'Two point attempt',\n [BasketballGameLogTypes.three_point_attempt]: 'Three point attempt',\n [BasketballGameLogTypes.free_throw_attempt]: 'Free throw attempt',\n [BasketballGameLogTypes.one_point_attempt]: 'One point attempt',\n [BasketballGameLogTypes.two_point_made]: '2 points',\n [BasketballGameLogTypes.three_point_made]: '3 points',\n [BasketballGameLogTypes.free_throw_made]: '1 point, free throw',\n [BasketballGameLogTypes.one_point_made]: '1 point',\n [BasketballGameLogTypes.assist]: 'Assist',\n [BasketballGameLogTypes.block]: 'Block',\n [BasketballGameLogTypes.rebound]: 'Rebound',\n [BasketballGameLogTypes.offensive_rebound]: 'Offensive rebound',\n [BasketballGameLogTypes.defensive_rebound]: 'Defensive rebound',\n [BasketballGameLogTypes.steal]: 'Steal',\n [BasketballGameLogTypes.turnover]: 'Turnover',\n [BasketballGameLogTypes.personal_foul]: 'Foul',\n [BasketballGameLogTypes.technical_foul]: 'Technical foul',\n [BasketballGameLogTypes.unsportsmanlike_foul]: 'Unsportsmanlike foul',\n [BasketballGameLogTypes.timeout]: 'Timeout',\n [BasketballGameLogTypes.team_rebound]: 'Team rebound',\n [BasketballGameLogTypes.four_point_attempt]: 'Four point attempt',\n [BasketballGameLogTypes.four_point_made]: '4 points',\n [BasketballGameLogTypes.dunk_attempt]: 'Dunk miss',\n [BasketballGameLogTypes.dunk_attempt]: 'Dunk',\n [BasketballGameLogTypes.shootout]: 'Shootout',\n [BasketballGameLogTypes.shootout_won]: 'Shootout won',\n [BasketballGameLogTypes.shootout_lost]: 'Shootout lost',\n [BasketballGameLogTypes.moneyball_free_throw_attempt]: 'Free throw attempt',\n [BasketballGameLogTypes.moneyball_free_throw_made]: '2 points, free throw',\n }\n};\n","import { BasketballSubLogTypes } from '../models/basketball-game-log';\nimport { Locales } from './locales';\n\nexport const BasketballGameSubLogTypesLocalization = {\n [Locales.ru]: {\n // Shots\n [BasketballSubLogTypes.jump_shot]: 'Джампшот',\n [BasketballSubLogTypes.step_back_jump_shot]: 'Степ-бэк',\n [BasketballSubLogTypes.floating_jump_shot]: 'Флоатинг',\n [BasketballSubLogTypes.fade_away_jump_shot]: 'Фэйдавэй',\n [BasketballSubLogTypes.pull_up_jump_shot]: 'Пуллап',\n [BasketballSubLogTypes.turnaround_jump_shot]: 'Турнэраунд',\n [BasketballSubLogTypes.dunk]: 'Данк',\n [BasketballSubLogTypes.layup]: 'Лэйап',\n [BasketballSubLogTypes.driving_layup]: 'Драйвинг лэйап',\n [BasketballSubLogTypes.alley_oop]: 'Алейуп',\n [BasketballSubLogTypes.hook_shot]: 'Хукшот',\n\n // foul\n [BasketballSubLogTypes.offensive_foul]: 'В нападении',\n [BasketballSubLogTypes.shot_foul]: 'При броксе',\n [BasketballSubLogTypes.mutual_foul]: 'Обоюдный фол',\n\n // Turnover\n [BasketballSubLogTypes.bad_pass]: 'Плохой пас',\n [BasketballSubLogTypes.ball_handling]: 'На ведении',\n [BasketballSubLogTypes.travel]: 'Пробежка',\n [BasketballSubLogTypes.double_dribble]: 'Двойное ведение',\n [BasketballSubLogTypes.out_of_bounds]: 'Заступ в аут',\n [BasketballSubLogTypes.three_seconds]: '3 секунды',\n [BasketballSubLogTypes.five_seconds]: '5 секунд',\n [BasketballSubLogTypes.eight_seconds]: '8 секунд',\n [BasketballSubLogTypes.twenty_four_seconds]: '24 секунды',\n [BasketballSubLogTypes.back_court]: 'Зона',\n [BasketballSubLogTypes.offensive_goal_tending]: 'Гоалтендинг',\n [BasketballSubLogTypes.other_turnover]: 'Другое',\n },\n [Locales.en]: {\n // Shots\n [BasketballSubLogTypes.jump_shot]: 'Jump shot',\n [BasketballSubLogTypes.step_back_jump_shot]: 'Step back',\n [BasketballSubLogTypes.floating_jump_shot]: 'Floating',\n [BasketballSubLogTypes.fade_away_jump_shot]: 'Fade-away',\n [BasketballSubLogTypes.pull_up_jump_shot]: 'Pull-up',\n [BasketballSubLogTypes.turnaround_jump_shot]: 'Turnaround',\n [BasketballSubLogTypes.dunk]: 'Dunk',\n [BasketballSubLogTypes.layup]: 'Layup',\n [BasketballSubLogTypes.driving_layup]: 'Driving layup',\n [BasketballSubLogTypes.alley_oop]: 'Alley-oop',\n [BasketballSubLogTypes.hook_shot]: 'Hook-shot',\n\n // foul\n [BasketballSubLogTypes.offensive_foul]: 'Offensive foul',\n [BasketballSubLogTypes.shot_foul]: 'Shot foul',\n [BasketballSubLogTypes.mutual_foul]: 'Mutual foul',\n\n // Turnover\n [BasketballSubLogTypes.bad_pass]: 'Bad pass',\n [BasketballSubLogTypes.ball_handling]: 'Ball handling',\n [BasketballSubLogTypes.travel]: 'Travel',\n [BasketballSubLogTypes.double_dribble]: 'Double dribble',\n [BasketballSubLogTypes.out_of_bounds]: 'Out of bounds',\n [BasketballSubLogTypes.three_seconds]: '3 second',\n [BasketballSubLogTypes.five_seconds]: '5 second',\n [BasketballSubLogTypes.eight_seconds]: '8 second',\n [BasketballSubLogTypes.twenty_four_seconds]: '24 second',\n [BasketballSubLogTypes.back_court]: 'Back court',\n [BasketballSubLogTypes.offensive_goal_tending]: 'Goal tending',\n [BasketballSubLogTypes.other_turnover]: 'Other',\n }\n};\n","import { Country } from '../models/city';\nimport { Locales } from './locales';\n\nexport const CountryLocalization = {\n [Locales.ru]: {\n [Country.RU]: 'Россия',\n [Country.BL]: 'Беларусь',\n [Country.AM]: 'Армения',\n [Country.KZ]: 'Казахстан',\n [Country.KG]: 'Кыргызстан',\n [Country.USA]: 'США',\n [Country.GE]: 'Грузия',\n [Country.AZ]: 'Азербайджан',\n [Country.CHN]: 'Китай',\n [Country.EGY]: 'Египет',\n [Country.IRN]: 'Иран',\n [Country.GRC]: 'Греция',\n },\n [Locales.en]: {\n [Country.RU]: 'Russia',\n [Country.BL]: 'Belarus',\n [Country.AM]: 'Armenia',\n [Country.KZ]: 'Kazakhstan',\n [Country.KG]: 'Kyrgyzstan',\n [Country.USA]: 'USA',\n [Country.GE]: 'Georgia',\n [Country.AZ]: 'Azerbaijan',\n [Country.CHN]: 'China',\n [Country.EGY]: 'Egypt',\n [Country.IRN]: 'Iran',\n [Country.GRC]: 'Greece',\n },\n};\n","import { HockeyGameLogTypes } from '../models/hockey-game-log';\nimport { Locales } from './locales';\n\nexport const HockeyGameLogTypeLocalization = {\n [Locales.ru]: {\n [HockeyGameLogTypes.enter_game]: 'Выход на площадку',\n [HockeyGameLogTypes.exit_game]: 'Ушел с площадки',\n [HockeyGameLogTypes.shot_miss]: 'Бросок мимо',\n [HockeyGameLogTypes.shot_on_goal]: 'Бросок по воротам',\n [HockeyGameLogTypes.shot_blocked]: 'Заблокированный бросок',\n [HockeyGameLogTypes.goal]: 'Гол',\n [HockeyGameLogTypes.shootout_attempt]: 'Буллит промах',\n [HockeyGameLogTypes.shootout_goal]: 'Буллит гол',\n [HockeyGameLogTypes.after_game_shootout_attempt]: 'Буллит промах',\n [HockeyGameLogTypes.after_game_shootout_goal]: 'Буллит гол',\n [HockeyGameLogTypes.assist]: 'Передача',\n [HockeyGameLogTypes.block_shot]: 'Блокировка броска',\n [HockeyGameLogTypes.minor_penalty]: 'Малый штраф',\n [HockeyGameLogTypes.major_penalty]: 'Большой штраф',\n [HockeyGameLogTypes.misconduct_penalty]: 'Дисциплинарный штраф',\n [HockeyGameLogTypes.game_misconduct_penalty]: 'Дисциплинарный штраф до конца игры',\n [HockeyGameLogTypes.match_penalty]: 'Матч-штраф',\n [HockeyGameLogTypes.penalty_shot]: 'Штрафной бросок',\n [HockeyGameLogTypes.face_off_lose]: 'Проигрыш в вбрасывании',\n [HockeyGameLogTypes.face_off_win]: 'Победа в вбрасывании',\n [HockeyGameLogTypes.save]: 'Отражен бросок',\n [HockeyGameLogTypes.shootout_save]: 'Отражен бросок',\n [HockeyGameLogTypes.after_game_shootout_save]: 'Отражен бросок',\n [HockeyGameLogTypes.timeout]: 'Таймаут',\n [HockeyGameLogTypes.penalty_start]: 'Начало штрафного времени',\n [HockeyGameLogTypes.penalty_end]: 'Конец штрафного времени',\n [HockeyGameLogTypes.steal]: 'Отбор',\n [HockeyGameLogTypes.loss]: 'Потеря',\n [HockeyGameLogTypes.sharp_pass]: 'Острая передача',\n },\n [Locales.en]: {\n [HockeyGameLogTypes.enter_game]: 'Entering the court',\n [HockeyGameLogTypes.exit_game]: 'Exit the court',\n [HockeyGameLogTypes.shot_miss]: 'Missing shot',\n [HockeyGameLogTypes.shot_on_goal]: 'Shot on a goal',\n [HockeyGameLogTypes.shot_blocked]: 'Blocked shot',\n [HockeyGameLogTypes.goal]: 'Goal',\n [HockeyGameLogTypes.shootout_attempt]: 'Shootout miss',\n [HockeyGameLogTypes.shootout_goal]: 'Shootout goal',\n [HockeyGameLogTypes.after_game_shootout_attempt]: 'Shootout miss',\n [HockeyGameLogTypes.after_game_shootout_goal]: 'Shootout goal',\n [HockeyGameLogTypes.assist]: 'Assist',\n [HockeyGameLogTypes.block_shot]: 'Shot is blocked',\n [HockeyGameLogTypes.minor_penalty]: 'Minor penalty',\n [HockeyGameLogTypes.major_penalty]: 'Major penalty',\n [HockeyGameLogTypes.misconduct_penalty]: 'Misconduct penalty',\n [HockeyGameLogTypes.game_misconduct_penalty]: 'Disciplinary penalty until the end of the game',\n [HockeyGameLogTypes.match_penalty]: 'Match penalty',\n [HockeyGameLogTypes.penalty_shot]: 'Penalty shot',\n [HockeyGameLogTypes.face_off_lose]: 'Face-off lose',\n [HockeyGameLogTypes.face_off_win]: 'Face-off win',\n [HockeyGameLogTypes.save]: 'Throw is reflected',\n [HockeyGameLogTypes.shootout_save]: 'Throw is reflected',\n [HockeyGameLogTypes.after_game_shootout_save]: 'Throw is reflected',\n [HockeyGameLogTypes.timeout]: 'Timeout',\n [HockeyGameLogTypes.penalty_start]: 'The beginning of the penalty time',\n [HockeyGameLogTypes.penalty_end]: 'End of penalty time',\n [HockeyGameLogTypes.steal]: 'Steal',\n [HockeyGameLogTypes.loss]: 'Loss',\n [HockeyGameLogTypes.sharp_pass]: 'Sharp pass',\n }\n};\n","import { FootballGameLogTypes } from '../models/football-game-log';\nimport { Locales } from './locales';\n\nexport const FootballGameLogTypeLocalization = {\n [Locales.ru]: {\n [FootballGameLogTypes.enter_game]: 'Выход на поле',\n [FootballGameLogTypes.exit_game]: 'Ушел с поля',\n [FootballGameLogTypes.shot_miss]: 'Удар мимо',\n [FootballGameLogTypes.shot_on_goal]: 'Удар в створ',\n [FootballGameLogTypes.shot_blocked]: 'Заблокированный удар',\n [FootballGameLogTypes.goal]: 'Гол',\n [FootballGameLogTypes.assist]: 'Передача',\n [FootballGameLogTypes.penalty_attempt]: 'Пенальти промах',\n [FootballGameLogTypes.penalty_goal]: 'Пенальти гол',\n [FootballGameLogTypes.small_penalty_attempt]: '10-метровый промах',\n [FootballGameLogTypes.small_penalty_goal]: '10-метровый гол',\n [FootballGameLogTypes.block_shot]: 'Блокировка удара',\n [FootballGameLogTypes.corner]: 'Угловой',\n [FootballGameLogTypes.free_kick]: 'Штрафной удар',\n [FootballGameLogTypes.save]: 'Отражен удар',\n [FootballGameLogTypes.penalty_save]: 'Отражен пенальти',\n [FootballGameLogTypes.small_penalty_save]: 'Отражен 10 метровый',\n [FootballGameLogTypes.foul]: 'Фол',\n [FootballGameLogTypes.yellow_card]: 'Желтая карточка',\n [FootballGameLogTypes.red_card]: 'Красная карточка',\n [FootballGameLogTypes.perfect_pass]: 'Пас',\n [FootballGameLogTypes.loss]: 'Потеря',\n [FootballGameLogTypes.steal]: 'Перехват',\n [FootballGameLogTypes.out]: 'Аут',\n [FootballGameLogTypes.timeout]: 'Таймаут',\n [FootballGameLogTypes.auto_goal]: 'Автогол',\n [FootballGameLogTypes.end_game_penalty_goal]: 'Пенальти гол',\n [FootballGameLogTypes.end_game_penalty_miss]: 'Пенальти промах',\n [FootballGameLogTypes.end_game_penalty_save]: 'Отражен пенальти',\n [FootballGameLogTypes.duel_won]: 'Дуэль выиграна',\n [FootballGameLogTypes.duel_lost]: 'Дуэль проиграна',\n [FootballGameLogTypes.double_goal]: 'Гол+2',\n [FootballGameLogTypes.super_game]: 'Супер игра',\n [FootballGameLogTypes.color_ball]: 'Цветной мяч',\n [FootballGameLogTypes.bonus]: 'Бонус',\n },\n [Locales.en]: {\n [FootballGameLogTypes.enter_game]: 'Entering the court',\n [FootballGameLogTypes.exit_game]: 'Exit the court',\n [FootballGameLogTypes.shot_miss]: 'Missing shot',\n [FootballGameLogTypes.shot_on_goal]: 'Shot on goal',\n [FootballGameLogTypes.shot_blocked]: 'Shot is blocked',\n [FootballGameLogTypes.goal]: 'Goal',\n [FootballGameLogTypes.assist]: 'Assist',\n [FootballGameLogTypes.penalty_attempt]: 'Penalty miss',\n [FootballGameLogTypes.penalty_goal]: 'Penalty goal',\n [FootballGameLogTypes.small_penalty_attempt]: '10-meters shot miss',\n [FootballGameLogTypes.small_penalty_goal]: '10-meters goal',\n [FootballGameLogTypes.block_shot]: 'Blocking shot',\n [FootballGameLogTypes.corner]: 'Corner',\n [FootballGameLogTypes.free_kick]: 'Free kick',\n [FootballGameLogTypes.save]: 'Save',\n [FootballGameLogTypes.penalty_save]: 'Penalty save',\n [FootballGameLogTypes.small_penalty_save]: '10-meters save',\n [FootballGameLogTypes.foul]: 'Foul',\n [FootballGameLogTypes.yellow_card]: 'Yellow card',\n [FootballGameLogTypes.red_card]: 'Red card',\n [FootballGameLogTypes.perfect_pass]: 'Pass',\n [FootballGameLogTypes.loss]: 'Loss',\n [FootballGameLogTypes.steal]: 'Steal',\n [FootballGameLogTypes.out]: 'Out',\n [FootballGameLogTypes.timeout]: 'Timeout',\n [FootballGameLogTypes.auto_goal]: 'Own goal',\n [FootballGameLogTypes.end_game_penalty_goal]: 'Penalty goal',\n [FootballGameLogTypes.end_game_penalty_miss]: 'Penalty miss',\n [FootballGameLogTypes.end_game_penalty_save]: 'Penalty save',\n [FootballGameLogTypes.duel_won]: 'Duel won',\n [FootballGameLogTypes.duel_lost]: 'Duel lost',\n [FootballGameLogTypes.double_goal]: 'Goal+2',\n [FootballGameLogTypes.super_game]: 'Super game',\n [FootballGameLogTypes.color_ball]: 'Color ball',\n [FootballGameLogTypes.bonus]: 'Bonus',\n }\n};\n","import { HandballGameLogTypes } from '../models/handball-game-log';\nimport { Locales } from './locales';\n\nexport const HandballGameLogTypeLocalization = {\n [Locales.ru]: {\n [HandballGameLogTypes.enter_game]: 'Выход на поле',\n [HandballGameLogTypes.exit_game]: 'Ушел с поля',\n [HandballGameLogTypes.shot_miss]: 'Бросок мимо',\n [HandballGameLogTypes.shot_on_goal]: 'Бросок в створ',\n [HandballGameLogTypes.shot_blocked]: 'Заблокированный бросок',\n [HandballGameLogTypes.goal]: 'Гол',\n [HandballGameLogTypes.assist]: 'Передача',\n [HandballGameLogTypes.penalty_miss]: '7м промах',\n [HandballGameLogTypes.penalty_shot_on_goal]: '7м в створ',\n [HandballGameLogTypes.penalty_goal]: '7м гол',\n [HandballGameLogTypes.save]: 'Сэйв',\n [HandballGameLogTypes.penalty_save]: 'Сэйв 7м',\n [HandballGameLogTypes.foul]: 'Фол',\n [HandballGameLogTypes.yellow_card]: 'Желлтая карточка',\n [HandballGameLogTypes.red_card]: 'Красная карточка',\n [HandballGameLogTypes.two_minute_foul]: '2х минутный штраф',\n [HandballGameLogTypes.turnover]: 'Потеря',\n [HandballGameLogTypes.steal]: 'Перехват',\n [HandballGameLogTypes.block_shot]: 'Блок броска',\n [HandballGameLogTypes.timeout]: 'Таймаут',\n },\n [Locales.en]: {\n [HandballGameLogTypes.enter_game]: 'Entering the court',\n [HandballGameLogTypes.exit_game]: 'Exit the court',\n [HandballGameLogTypes.shot_miss]: 'Missing shot',\n [HandballGameLogTypes.shot_on_goal]: 'Shot on goal',\n [HandballGameLogTypes.shot_blocked]: 'Blocking shot',\n [HandballGameLogTypes.goal]: 'Goal',\n [HandballGameLogTypes.assist]: 'Assist',\n [HandballGameLogTypes.penalty_miss]: 'Penalty miss',\n [HandballGameLogTypes.penalty_shot_on_goal]: 'Penalty on goal',\n [HandballGameLogTypes.penalty_goal]: 'Penalty goal',\n [HandballGameLogTypes.save]: 'Save',\n [HandballGameLogTypes.penalty_save]: 'Penalty save',\n [HandballGameLogTypes.foul]: 'Foul',\n [HandballGameLogTypes.yellow_card]: 'Yellow card',\n [HandballGameLogTypes.red_card]: 'Red card',\n [HandballGameLogTypes.two_minute_foul]: '2-minute penalty',\n [HandballGameLogTypes.turnover]: 'Turnover',\n [HandballGameLogTypes.steal]: 'Steal',\n [HandballGameLogTypes.block_shot]: 'Block shot',\n [HandballGameLogTypes.timeout]: 'Timeout',\n }\n};\n","import { WaterpoloGameLogTypes } from '../models/waterpolo-game-log';\nimport { Locales } from './locales';\n\nexport const WaterpoloGameLogTypeLocalization = {\n [Locales.ru]: {\n [WaterpoloGameLogTypes.enter_game]: 'Выход на площадку',\n [WaterpoloGameLogTypes.exit_game]: 'Ушел с площадки',\n [WaterpoloGameLogTypes.shot_miss]: 'Бросок мимо',\n [WaterpoloGameLogTypes.counterattack_miss]: 'Бросок мимо в контратаке',\n [WaterpoloGameLogTypes.maneuver_miss]: 'Бросок мимо с маневра',\n [WaterpoloGameLogTypes.center_forward_miss]: 'Бросок мимо со столба',\n [WaterpoloGameLogTypes.shot_on_goal]: 'Бросок по воротам',\n [WaterpoloGameLogTypes.counterattack_on_goal]: 'Бросок по воротам в контратаке',\n [WaterpoloGameLogTypes.maneuver_on_goal]: 'Бросок по воротам с маневра',\n [WaterpoloGameLogTypes.center_forward_on_goal]: 'Бросок по воротам со столба',\n [WaterpoloGameLogTypes.shot_blocked]: 'Заблокирован бросок',\n [WaterpoloGameLogTypes.counter_attack_shot_blocked]: 'Заблокирован бросок в контратаке',\n [WaterpoloGameLogTypes.maneuver_shot_blocked]: 'Заблокирован бросок с маневра',\n [WaterpoloGameLogTypes.center_forward_shot_blocked]: 'Заблокирован бросок со столба',\n [WaterpoloGameLogTypes.goal]: 'Гол',\n [WaterpoloGameLogTypes.maneuver_goal]: 'Гол с маневра',\n [WaterpoloGameLogTypes.counterattack_goal]: 'Гол в контратаке',\n [WaterpoloGameLogTypes.center_forward_goal]: 'Гол со столба',\n [WaterpoloGameLogTypes.shootout_attempt]: 'Пенальти промах',\n [WaterpoloGameLogTypes.shootout_goal]: 'Пенальти гол',\n [WaterpoloGameLogTypes.after_game_shootout_attempt]: 'Пенальти промах',\n [WaterpoloGameLogTypes.after_game_shootout_goal]: 'Пенальти гол',\n [WaterpoloGameLogTypes.assist]: 'Голевая передача',\n [WaterpoloGameLogTypes.block_shot]: 'Блокировка броска',\n [WaterpoloGameLogTypes.minor_penalty]: 'Удаление на 20 сек.',\n [WaterpoloGameLogTypes.major_penalty]: 'Удаление + 20 сек. штраф',\n [WaterpoloGameLogTypes.match_penalty]: 'Удаление + 4 мин. штраф',\n [WaterpoloGameLogTypes.foul]: 'Фол',\n [WaterpoloGameLogTypes.penalty_foul]: 'Фол пенальти',\n [WaterpoloGameLogTypes.attack_foul]: 'Фол в нападении',\n [WaterpoloGameLogTypes.personal_foul]: 'Персональный фол',\n [WaterpoloGameLogTypes.penalty_shot]: 'Штрафной бросок',\n [WaterpoloGameLogTypes.face_off_lose]: 'Проигрыш в спринте',\n [WaterpoloGameLogTypes.face_off_win]: 'Победа в спринте',\n [WaterpoloGameLogTypes.save]: 'Отражен бросок',\n [WaterpoloGameLogTypes.counterattack_save]: 'Отражен бросок в контратаке',\n [WaterpoloGameLogTypes.maneuver_save]: 'Отражен бросок с маневра',\n [WaterpoloGameLogTypes.center_forward_save]: 'Отражен бросок со столба',\n [WaterpoloGameLogTypes.free_kick_save]: 'Отражен бросок со свободного',\n [WaterpoloGameLogTypes.corner_save]: 'Отражен бросок с углового',\n [WaterpoloGameLogTypes.shootout_save]: 'Отражен бросок с пенальти',\n [WaterpoloGameLogTypes.after_game_shootout_save]: 'Отражен бросок с пенальти',\n [WaterpoloGameLogTypes.timeout]: 'Таймаут',\n [WaterpoloGameLogTypes.penalty_start]: 'Начало штрафного времени',\n [WaterpoloGameLogTypes.penalty_end]: 'Конец штрафного времени',\n [WaterpoloGameLogTypes.yellow_card]: 'Желтая карточка',\n [WaterpoloGameLogTypes.red_card]: 'Красная карточка',\n [WaterpoloGameLogTypes.turnover]: 'Переход владения',\n [WaterpoloGameLogTypes.loss]: 'Потеря',\n [WaterpoloGameLogTypes.steal]: 'Перехват',\n [WaterpoloGameLogTypes.tackle]: 'Отбор',\n [WaterpoloGameLogTypes.free_kick_goal]: 'Гол со свободного удара',\n [WaterpoloGameLogTypes.free_kick_on_goal]: 'Бросок со свободного удара в створ',\n [WaterpoloGameLogTypes.free_kick_miss]: 'Бросок мимо со свободного удара',\n [WaterpoloGameLogTypes.free_kick_shot_blocked]: 'Заблокирован бросок со свободного удара',\n [WaterpoloGameLogTypes.free_kick_pass]: 'Пас со свободного удара',\n [WaterpoloGameLogTypes.free_kick_self]: 'Розыгрыш свободного удара',\n [WaterpoloGameLogTypes.corner_goal]: 'Гол с углового',\n [WaterpoloGameLogTypes.corner_on_goal]: 'Бросок с углового в створ',\n [WaterpoloGameLogTypes.corner_miss]: 'Бросок мимо с углового',\n [WaterpoloGameLogTypes.corner_shot_blocked]: 'Заблокирован бросок с углового',\n [WaterpoloGameLogTypes.corner_pass]: 'Пас с углового',\n [WaterpoloGameLogTypes.corner_self]: 'Розыгрыш углового',\n [WaterpoloGameLogTypes.complete_penalty_time]: 'Досрочное завершение штрафа',\n\n [WaterpoloGameLogTypes.defense_select_position]: 'Защита: выбор позиции',\n [WaterpoloGameLogTypes.save_possession]: 'Сохранение владения',\n [WaterpoloGameLogTypes.perimetr_shot_goal]: 'Гол с периметра',\n [WaterpoloGameLogTypes.perimetr_shot_on_goal]: 'Бросок с периметра в створ',\n [WaterpoloGameLogTypes.perimetr_shot_miss]: 'Бросок мимо с периметра',\n [WaterpoloGameLogTypes.perimetr_shot_blocked]: 'Заблокирован бросок с периметра',\n [WaterpoloGameLogTypes.perimetr_shot_save]: 'Отражен бросок с периметра',\n [WaterpoloGameLogTypes.post_shot_goal]: 'Гол со штанги',\n [WaterpoloGameLogTypes.post_shot_on_goal]: 'Бросок со штанги в створ',\n [WaterpoloGameLogTypes.post_shot_miss]: 'Бросок мимо со штанги',\n [WaterpoloGameLogTypes.post_shot_blocked]: 'Заблокирован бросок со штанги',\n [WaterpoloGameLogTypes.post_shot_save]: 'Отражен бросок со штанги',\n [WaterpoloGameLogTypes.fast_shot_goal]: 'Быстрый гол',\n [WaterpoloGameLogTypes.fast_shot_on_goal]: 'Быстрый бросок в створ',\n [WaterpoloGameLogTypes.fast_shot_miss]: 'Быстрый бросок мимо',\n [WaterpoloGameLogTypes.fast_shot_blocked]: 'Заблокирован быстрый бросок',\n [WaterpoloGameLogTypes.fast_shot_save]: 'Отражен быстрый бросок',\n },\n [Locales.en]: {\n [WaterpoloGameLogTypes.enter_game]: 'Entering the court',\n [WaterpoloGameLogTypes.exit_game]: 'Exit the court',\n [WaterpoloGameLogTypes.shot_miss]: 'Missing shoot',\n [WaterpoloGameLogTypes.counterattack_miss]: 'Throw past on the counterattack',\n [WaterpoloGameLogTypes.maneuver_miss]: 'Throw past from the manoeuvre',\n [WaterpoloGameLogTypes.center_forward_miss]: 'Throw past from center forward',\n [WaterpoloGameLogTypes.shot_on_goal]: 'Shot at the goal',\n [WaterpoloGameLogTypes.counterattack_on_goal]: 'Shot at the goal in a counterattack',\n [WaterpoloGameLogTypes.maneuver_on_goal]: 'Shot at the goal from a maneuver',\n [WaterpoloGameLogTypes.center_forward_on_goal]: 'Shot at the goal from center forward',\n [WaterpoloGameLogTypes.shot_blocked]: 'The throw is blocked',\n [WaterpoloGameLogTypes.counter_attack_shot_blocked]: 'A counterattack throw is blocked',\n [WaterpoloGameLogTypes.maneuver_shot_blocked]: 'The maneuver throw is blocked',\n [WaterpoloGameLogTypes.center_forward_shot_blocked]: 'The shot from the center forward is blocked',\n [WaterpoloGameLogTypes.goal]: 'Goal',\n [WaterpoloGameLogTypes.maneuver_goal]: 'Goal from a maneuver',\n [WaterpoloGameLogTypes.counterattack_goal]: 'Goal in a counterattack',\n [WaterpoloGameLogTypes.center_forward_goal]: 'Goal from the center forward',\n [WaterpoloGameLogTypes.shootout_attempt]: 'Penalty miss',\n [WaterpoloGameLogTypes.shootout_goal]: 'Penalty goal',\n [WaterpoloGameLogTypes.after_game_shootout_attempt]: 'Penalty miss',\n [WaterpoloGameLogTypes.after_game_shootout_goal]: 'Penalty goal',\n [WaterpoloGameLogTypes.assist]: 'Assist',\n [WaterpoloGameLogTypes.block_shot]: 'Blocking a throw',\n [WaterpoloGameLogTypes.minor_penalty]: 'Exclusion for 20 sec.',\n [WaterpoloGameLogTypes.major_penalty]: 'Exclusion with substitution 20 sec.',\n [WaterpoloGameLogTypes.match_penalty]: 'Exclusion with substitution after 4 min.',\n [WaterpoloGameLogTypes.foul]: 'Foul',\n [WaterpoloGameLogTypes.penalty_foul]: 'Penalty foul',\n [WaterpoloGameLogTypes.attack_foul]: 'Attack foul',\n [WaterpoloGameLogTypes.personal_foul]: 'Personal foul',\n [WaterpoloGameLogTypes.penalty_shot]: 'Penalty shot',\n [WaterpoloGameLogTypes.face_off_lose]: 'Losing in the sprint',\n [WaterpoloGameLogTypes.face_off_win]: 'Winning the sprint',\n [WaterpoloGameLogTypes.save]: 'Throw is reflected',\n [WaterpoloGameLogTypes.counterattack_save]: 'Throw in the counterattack is reflected',\n [WaterpoloGameLogTypes.maneuver_save]: 'Throw from a maneuver is reflected',\n [WaterpoloGameLogTypes.center_forward_save]: 'Throw from the center forward is reflected',\n [WaterpoloGameLogTypes.free_kick_save]: 'Free throw is reflected',\n [WaterpoloGameLogTypes.corner_save]: 'Shot from a corner is reflected',\n [WaterpoloGameLogTypes.shootout_save]: 'Penalty kick was deflected',\n [WaterpoloGameLogTypes.after_game_shootout_save]: 'Penalty kick was deflected',\n [WaterpoloGameLogTypes.timeout]: 'Timeout',\n [WaterpoloGameLogTypes.penalty_start]: 'The beginning of the penalty time',\n [WaterpoloGameLogTypes.penalty_end]: 'End of penalty time',\n [WaterpoloGameLogTypes.yellow_card]: 'Yellow card',\n [WaterpoloGameLogTypes.red_card]: 'Red card',\n [WaterpoloGameLogTypes.turnover]: 'Change of possession',\n [WaterpoloGameLogTypes.loss]: 'Loss',\n [WaterpoloGameLogTypes.steal]: 'Steal',\n [WaterpoloGameLogTypes.tackle]: 'Tackle',\n [WaterpoloGameLogTypes.free_kick_goal]: 'Free kick goal',\n [WaterpoloGameLogTypes.free_kick_on_goal]: 'Free kick shot on target',\n [WaterpoloGameLogTypes.free_kick_miss]: 'A throw by with a free kick',\n [WaterpoloGameLogTypes.free_kick_shot_blocked]: 'A free kick shot is blocked',\n [WaterpoloGameLogTypes.free_kick_pass]: 'Free kick pass',\n [WaterpoloGameLogTypes.free_kick_self]: 'Free kick draw',\n [WaterpoloGameLogTypes.corner_goal]: 'Corner goal',\n [WaterpoloGameLogTypes.corner_on_goal]: 'Shot from a corner into the target',\n [WaterpoloGameLogTypes.corner_miss]: 'Shot past from a corner',\n [WaterpoloGameLogTypes.corner_shot_blocked]: 'Blocked a shot from a corner',\n [WaterpoloGameLogTypes.corner_pass]: 'Pass from the corner',\n [WaterpoloGameLogTypes.corner_self]: 'Drawing a corner',\n [WaterpoloGameLogTypes.complete_penalty_time]: 'Early completion of the fine',\n\n [WaterpoloGameLogTypes.defense_select_position]: 'Defense: position selection',\n [WaterpoloGameLogTypes.save_possession]: 'Maintaining possession',\n [WaterpoloGameLogTypes.perimetr_shot_goal]: 'Goal from the perimeter',\n [WaterpoloGameLogTypes.perimetr_shot_on_goal]: 'Throw from perimeter on target',\n [WaterpoloGameLogTypes.perimetr_shot_miss]: 'Throw past from the perimeter',\n [WaterpoloGameLogTypes.perimetr_shot_blocked]: 'A throw from perimeter is blocked',\n [WaterpoloGameLogTypes.perimetr_shot_save]: 'A throw from perimeter is saved',\n [WaterpoloGameLogTypes.post_shot_goal]: 'Goal from the post',\n [WaterpoloGameLogTypes.post_shot_on_goal]: 'Throw from post on target',\n [WaterpoloGameLogTypes.post_shot_miss]: 'Throw past from the post',\n [WaterpoloGameLogTypes.post_shot_blocked]: 'A throw from post is blocked',\n [WaterpoloGameLogTypes.post_shot_save]: 'A throw from post is saved',\n [WaterpoloGameLogTypes.fast_shot_goal]: 'Fast goal',\n [WaterpoloGameLogTypes.fast_shot_on_goal]: 'Fast throw on target',\n [WaterpoloGameLogTypes.fast_shot_miss]: 'Fast throw is missed',\n [WaterpoloGameLogTypes.fast_shot_blocked]: 'Fast throw is blocked',\n [WaterpoloGameLogTypes.fast_shot_save]: 'Fast throw is saved',\n }\n};\n","import { OvertimeTypes } from '../models/tournament';\nimport { Locales } from './locales';\n\nexport const OvertimeTypeLocalization = {\n [Locales.ru]: {\n [OvertimeTypes.to_score_diff]: 'До разницы в N мячей',\n [OvertimeTypes.to_score_total]: 'До N очков',\n [OvertimeTypes.time]: 'По времени',\n [OvertimeTypes.without_overtime]: 'Без овертайма',\n [OvertimeTypes.to_first_goal]: 'На N минут до первой шайбы',\n [OvertimeTypes.to_first_goal_and_bullitts]: 'На N минут до первой шайбы + буллиты',\n [OvertimeTypes.bullitts]: 'Буллиты',\n [OvertimeTypes.penalties]: 'Пенальти',\n [OvertimeTypes.time_and_penalties]: 'Дополнительное время + пенальти',\n },\n [Locales.en]: {\n [OvertimeTypes.to_score_diff]: 'Up to the difference of N balls',\n [OvertimeTypes.to_score_total]: 'Up to N points',\n [OvertimeTypes.time]: 'By time',\n [OvertimeTypes.without_overtime]: 'Without overtime',\n [OvertimeTypes.to_first_goal]: 'N minutes until the first goal',\n [OvertimeTypes.to_first_goal_and_bullitts]: 'N minutes until the first goal + shootout',\n [OvertimeTypes.bullitts]: 'Shootouts',\n [OvertimeTypes.penalties]: 'Penalty',\n [OvertimeTypes.time_and_penalties]: 'Extra time + penalty',\n }\n};\n","import { RugbyFoulSanctions } from '../models/rugby-foul-type';\nimport { Locales } from './locales';\n\nexport const RugbyFoulSanctionLocalization = {\n [Locales.ru]: {\n [RugbyFoulSanctions.scrum]: 'Схватка',\n [RugbyFoulSanctions.lineout]: 'Коридор',\n [RugbyFoulSanctions.start_kick]: 'Начальный удар',\n [RugbyFoulSanctions.free_kick]: 'Свободный удар',\n [RugbyFoulSanctions.penalty_shot]: 'Штрафной удар',\n [RugbyFoulSanctions.twenty_two_meters_kick]: 'Удар с 22 метров',\n [RugbyFoulSanctions.conversion_cancel]: 'Отмена удара',\n [RugbyFoulSanctions.yellow_card]: 'Желтая карточка',\n [RugbyFoulSanctions.red_card]: 'Красная карточка',\n },\n [Locales.en]: {\n [RugbyFoulSanctions.scrum]: 'Scrum',\n [RugbyFoulSanctions.lineout]: 'Lineout',\n [RugbyFoulSanctions.start_kick]: 'Start kick',\n [RugbyFoulSanctions.free_kick]: 'Free kick',\n [RugbyFoulSanctions.penalty_shot]: 'Penalty kick',\n [RugbyFoulSanctions.twenty_two_meters_kick]: 'Kick from 22 meters',\n [RugbyFoulSanctions.conversion_cancel]: 'Conversion cancel',\n [RugbyFoulSanctions.yellow_card]: 'Yellow card',\n [RugbyFoulSanctions.red_card]: 'Red card',\n }\n};\n","import { RugbyFoulGameStage } from '../models/rugby-foul-type';\nimport { Locales } from './locales';\n\nexport const RugbyFoulGameStageLocalization = {\n [Locales.ru]: {\n [RugbyFoulGameStage.start_kick]: 'Начальные удары',\n [RugbyFoulGameStage.open_game]: 'Открытая игра',\n [RugbyFoulGameStage.tackle]: 'Игроки на земле, Захват',\n [RugbyFoulGameStage.ruck_or_maul]: 'Рак, мол',\n [RugbyFoulGameStage.scrum]: 'Схватка',\n [RugbyFoulGameStage.out_and_lineout]: 'Аут и коридор',\n [RugbyFoulGameStage.scoring_field]: 'Зачетное поле',\n [RugbyFoulGameStage.kick_on_goal]: 'Удар по воротам',\n [RugbyFoulGameStage.free_kick]: 'Штрафной, свободный удар',\n [RugbyFoulGameStage.team]: 'Команда',\n },\n [Locales.en]: {\n [RugbyFoulGameStage.start_kick]: 'Initial kicks',\n [RugbyFoulGameStage.open_game]: 'Open game',\n [RugbyFoulGameStage.tackle]: 'Players on the ground, Capture',\n [RugbyFoulGameStage.ruck_or_maul]: 'Ruck, maul',\n [RugbyFoulGameStage.scrum]: 'Scrum',\n [RugbyFoulGameStage.out_and_lineout]: 'Out and lineout',\n [RugbyFoulGameStage.scoring_field]: 'Scoring field',\n [RugbyFoulGameStage.kick_on_goal]: 'Kick on goal',\n [RugbyFoulGameStage.free_kick]: 'Free kick',\n [RugbyFoulGameStage.team]: 'Team',\n }\n};\n","import { RugbyGameLogTypes } from '../models/rugby-game-log';\nimport { Locales } from './locales';\n\nexport const RugbyGameLogTypeLocalization = {\n [Locales.ru]: {\n [RugbyGameLogTypes.enter_game]: 'Вышел на поле',\n [RugbyGameLogTypes.exit_game]: 'Ушел с поля',\n [RugbyGameLogTypes.try]: 'Попытка',\n [RugbyGameLogTypes.penalty_try]: 'Штрафная попытка',\n [RugbyGameLogTypes.conversion_goal]: 'Реализация',\n [RugbyGameLogTypes.conversion_miss]: 'Реализация промах',\n [RugbyGameLogTypes.penalty_miss]: 'Штрафной промах',\n [RugbyGameLogTypes.penalty_goal]: 'Штрафной гол',\n [RugbyGameLogTypes.penalty_kick_to_touch]: 'Штрафной в аут',\n [RugbyGameLogTypes.tap_penalty]: 'Штрафной разыгран',\n [RugbyGameLogTypes.drop_goal]: 'Дроп-гол',\n [RugbyGameLogTypes.drop_goal_miss]: 'Дроп-гол промах',\n [RugbyGameLogTypes.free_kick]: 'Свободный удар',\n [RugbyGameLogTypes.foul]: 'Фол',\n [RugbyGameLogTypes.yellow_card]: 'Желтая карточка',\n [RugbyGameLogTypes.red_card]: 'Красная карточка',\n [RugbyGameLogTypes.red_card_20]: 'Красная карточка (20 мин.)',\n [RugbyGameLogTypes.offload]: 'Скидка при завхвате',\n [RugbyGameLogTypes.tackle]: 'Успешный захват',\n [RugbyGameLogTypes.handling_error]: 'Ошибка приема',\n [RugbyGameLogTypes.carries_over_gainline]: 'Прорыв линии',\n [RugbyGameLogTypes.bleeding_injury]: 'Кровоточащая травма',\n [RugbyGameLogTypes.head_injury]: 'Травма головы',\n [RugbyGameLogTypes.end_game_penalty_miss]: 'Штрафной промах',\n [RugbyGameLogTypes.end_game_penalty_goal]: 'Штрафной гол',\n [RugbyGameLogTypes.foot_field_shot]: 'Удар ногой в поле',\n [RugbyGameLogTypes.foot_out_shot]: 'Удар ногой в аут',\n [RugbyGameLogTypes.foot_kick_50_22]: 'Удар ногой 50/22',\n [RugbyGameLogTypes.run]: 'Забег',\n [RugbyGameLogTypes.timeout]: 'Таймаут',\n [RugbyGameLogTypes.scrum_won]: 'Схватка выиграна',\n [RugbyGameLogTypes.scrum_lost]: 'Схватка проиграна',\n [RugbyGameLogTypes.scrum_won_free]: 'Схватка выиграна без сопротивления',\n [RugbyGameLogTypes.lineout_won]: 'Коридор выигран',\n [RugbyGameLogTypes.lineout_lost]: 'Коридор проигран',\n [RugbyGameLogTypes.quick_throw]: 'Быстрый вброс',\n [RugbyGameLogTypes.ruck_won]: 'Рак выигран',\n [RugbyGameLogTypes.ruck_lost]: 'Рак проигран',\n [RugbyGameLogTypes.maul_won]: 'Мол выигран',\n [RugbyGameLogTypes.maul_lost]: 'Мол проигран',\n [RugbyGameLogTypes.team_foul]: 'Нарушение',\n [RugbyGameLogTypes.start_kick]: 'Начальный удар',\n [RugbyGameLogTypes.twenty_two_meters_kick]: 'Удар с 22 метров',\n [RugbyGameLogTypes.goal_kick]: 'Удар от ворот',\n [RugbyGameLogTypes.out]: 'Аут',\n },\n [Locales.en]: {\n [RugbyGameLogTypes.enter_game]: 'Entering the court',\n [RugbyGameLogTypes.exit_game]: 'Exit the court',\n [RugbyGameLogTypes.try]: 'Attempt',\n [RugbyGameLogTypes.penalty_try]: 'Penalty attempt',\n [RugbyGameLogTypes.conversion_goal]: 'Touchdown',\n [RugbyGameLogTypes.conversion_miss]: 'Touchdown miss',\n [RugbyGameLogTypes.penalty_miss]: 'Penalty kick miss',\n [RugbyGameLogTypes.penalty_goal]: 'Penalty goal',\n [RugbyGameLogTypes.penalty_kick_to_touch]: 'Penalty kick to out',\n [RugbyGameLogTypes.tap_penalty]: 'Penalty has been played',\n [RugbyGameLogTypes.drop_goal]: 'Drop goal',\n [RugbyGameLogTypes.drop_goal_miss]: 'Drop goal miss',\n [RugbyGameLogTypes.free_kick]: 'Free kick',\n [RugbyGameLogTypes.foul]: 'Foul',\n [RugbyGameLogTypes.yellow_card]: 'Yellow card',\n [RugbyGameLogTypes.red_card]: 'Red card',\n [RugbyGameLogTypes.red_card_20]: 'Red card (20 min.)',\n [RugbyGameLogTypes.offload]: 'Offload',\n [RugbyGameLogTypes.tackle]: 'Successful tackle',\n [RugbyGameLogTypes.handling_error]: 'Error receiving',\n [RugbyGameLogTypes.carries_over_gainline]: 'Line breakout',\n [RugbyGameLogTypes.bleeding_injury]: 'Bleeding injury',\n [RugbyGameLogTypes.head_injury]: 'Head injury',\n [RugbyGameLogTypes.end_game_penalty_miss]: 'Penalty miss',\n [RugbyGameLogTypes.end_game_penalty_goal]: 'Penalty goal',\n [RugbyGameLogTypes.foot_field_shot]: 'Foot field shot',\n [RugbyGameLogTypes.foot_out_shot]: 'Kick out of bounds',\n [RugbyGameLogTypes.foot_kick_50_22]: 'Foot kick 50/22',\n [RugbyGameLogTypes.run]: 'Run',\n [RugbyGameLogTypes.timeout]: 'Timeout',\n [RugbyGameLogTypes.scrum_won]: 'Scrum is won',\n [RugbyGameLogTypes.scrum_lost]: 'Scrum is lost',\n [RugbyGameLogTypes.scrum_won_free]: 'Scrum was won without resistance',\n [RugbyGameLogTypes.lineout_won]: 'Lineout was won',\n [RugbyGameLogTypes.lineout_lost]: 'Lineout was lost',\n [RugbyGameLogTypes.quick_throw]: 'Quick throw',\n [RugbyGameLogTypes.ruck_won]: 'Ruck won',\n [RugbyGameLogTypes.ruck_lost]: 'Ruck lost',\n [RugbyGameLogTypes.maul_won]: 'Maul won',\n [RugbyGameLogTypes.maul_lost]: 'Maul lost',\n [RugbyGameLogTypes.team_foul]: 'Foul',\n [RugbyGameLogTypes.start_kick]: 'Start kick',\n [RugbyGameLogTypes.twenty_two_meters_kick]: '22 metres kick',\n [RugbyGameLogTypes.goal_kick]: 'Удар от ворот',\n [RugbyGameLogTypes.out]: 'Out',\n }\n};\n","import { TeamUserRole } from '../models/team-user';\nimport { Locales } from './locales';\n\nexport const TeamUserRoleLocalization = {\n [Locales.ru]: {\n [TeamUserRole.member]: 'Игрок',\n [TeamUserRole.moderator]: 'Игрок',\n [TeamUserRole.admin]: 'Владелец',\n [TeamUserRole.coach]: 'Тренер',\n [TeamUserRole.head_coach]: 'Главный тренер',\n [TeamUserRole.playing_coach]: 'Играющий тренер',\n [TeamUserRole.manager]: 'Менеджер',\n [TeamUserRole.head_manager]: 'Генеральный менеджер',\n [TeamUserRole.captain]: 'Капитан',\n [TeamUserRole.assistant]: 'Ассистент',\n [TeamUserRole.president]: 'Президент',\n [TeamUserRole.vice_president]: 'Вице-президент',\n [TeamUserRole.press_attache]: 'Пресс-атташе',\n [TeamUserRole.executive]: 'Администратор',\n [TeamUserRole.senior_coach]: 'Старший тренер',\n [TeamUserRole.assistant_coach]: 'Помощник тренера',\n [TeamUserRole.serviceman]: 'Сервисмен',\n [TeamUserRole.game_application_manager]: 'Менеджер по заявкам на игры',\n },\n [Locales.en]: {\n [TeamUserRole.moderator]: 'Player',\n [TeamUserRole.member]: 'Player',\n [TeamUserRole.admin]: 'Owner',\n [TeamUserRole.coach]: 'Coach',\n [TeamUserRole.head_coach]: 'Head coach',\n [TeamUserRole.playing_coach]: 'Playing coach',\n [TeamUserRole.manager]: 'Manager',\n [TeamUserRole.head_manager]: 'General Manager',\n [TeamUserRole.captain]: 'Captain',\n [TeamUserRole.assistant]: 'Assistant',\n [TeamUserRole.president]: 'President',\n [TeamUserRole.vice_president]: 'Vice President',\n [TeamUserRole.press_attache]: 'Press Attache',\n [TeamUserRole.executive]: 'Administrator',\n [TeamUserRole.senior_coach]: 'Senior Coach',\n [TeamUserRole.assistant_coach]: 'Assistant Coach',\n [TeamUserRole.serviceman]: 'Serviceman',\n [TeamUserRole.game_application_manager]: 'Game Application Manager',\n }\n};\n","import { GameBasketballPosition, WorkHand } from '../models/basketball-profile';\nimport { GameVolleyballPosition, VolleyballWorkHand } from '../models/volleyball-profile';\nimport { GameHockeyPosition } from '../models/hockey-profile';\nimport { FootballWorkFoot, GameFootballPosition } from '../models/football-profile';\nimport { GameHandballPosition } from '../models/handball-profile';\nimport { GameRugbyPosition } from '../models/rugby-profile';\nimport { GameWaterpoloPosition, WaterpoloWorkHand } from '../models/waterpolo-profile';\nimport { Locales } from './locales';\nimport { WrestballWorkHand } from '../models/wrestball-profile';\n\nexport const GameBasketballPositionLocalization = {\n [Locales.ru]: {\n [GameBasketballPosition.point_guard]: 'Разыгрывающий защитник',\n [GameBasketballPosition.shooting_guard]: 'Атакующий защитник',\n [GameBasketballPosition.small_forward]: 'Легкий форвард',\n [GameBasketballPosition.power_forward]: 'Мощный форвард',\n [GameBasketballPosition.center]: 'Центровой',\n },\n [Locales.en]: {\n [GameBasketballPosition.point_guard]: 'Point guard',\n [GameBasketballPosition.shooting_guard]: 'Shooting guard',\n [GameBasketballPosition.small_forward]: 'Small forward',\n [GameBasketballPosition.power_forward]: 'Power forward',\n [GameBasketballPosition.center]: 'Center',\n }\n};\n\nexport const GameBasketballPositionShortLocalization = {\n [Locales.ru]: {\n [GameBasketballPosition.point_guard]: 'PG',\n [GameBasketballPosition.shooting_guard]: 'SG',\n [GameBasketballPosition.small_forward]: 'SF',\n [GameBasketballPosition.power_forward]: 'PF',\n [GameBasketballPosition.center]: 'C',\n },\n [Locales.en]: {\n [GameBasketballPosition.point_guard]: 'PG',\n [GameBasketballPosition.shooting_guard]: 'SG',\n [GameBasketballPosition.small_forward]: 'SF',\n [GameBasketballPosition.power_forward]: 'PF',\n [GameBasketballPosition.center]: 'C',\n }\n};\n\nexport const WorkHandLocalization = {\n [Locales.ru]: {\n [WorkHand.left]: 'Левая',\n [WorkHand.right]: 'Правая',\n },\n [Locales.en]: {\n [WorkHand.left]: 'Left',\n [WorkHand.right]: 'Right',\n }\n};\n\nexport const HockeyWorkHandLocalization = {\n [Locales.ru]: {\n [WorkHand.left]: 'Левый',\n [WorkHand.right]: 'Правый'\n },\n [Locales.en]: {\n [WorkHand.left]: 'Left',\n [WorkHand.right]: 'Right',\n }\n};\n\nexport const GameVolleyballPositionLocalization = {\n [Locales.ru]: {\n [GameVolleyballPosition.setter]: 'Связующий',\n [GameVolleyballPosition.libero]: 'Либеро',\n [GameVolleyballPosition.middle_player]: 'Центральный блокирующий',\n [GameVolleyballPosition.receiver_attacker]: 'Доигровщик',\n [GameVolleyballPosition.dioganal]: 'Диагональный',\n },\n [Locales.en]: {\n [GameVolleyballPosition.setter]: 'Setter',\n [GameVolleyballPosition.libero]: 'Libero',\n [GameVolleyballPosition.middle_player]: 'Middle blocker',\n [GameVolleyballPosition.receiver_attacker]: 'Outside hitter',\n [GameVolleyballPosition.dioganal]: 'Diagonal',\n }\n};\n\nexport const GameVolleyballPositionShortLocalization = {\n [Locales.ru]: {\n [GameVolleyballPosition.setter]: 'S',\n [GameVolleyballPosition.libero]: 'L',\n [GameVolleyballPosition.middle_player]: 'MP',\n [GameVolleyballPosition.receiver_attacker]: 'RA',\n [GameVolleyballPosition.dioganal]: 'D',\n },\n [Locales.en]: {\n [GameVolleyballPosition.setter]: 'S',\n [GameVolleyballPosition.libero]: 'L',\n [GameVolleyballPosition.middle_player]: 'MP',\n [GameVolleyballPosition.receiver_attacker]: 'RA',\n [GameVolleyballPosition.dioganal]: 'D',\n }\n};\n\nexport const GameVolleyballPositionShortRuLocalization = {\n [Locales.ru]: {\n [GameVolleyballPosition.setter]: 'связ.',\n [GameVolleyballPosition.libero]: 'либеро',\n [GameVolleyballPosition.middle_player]: 'блок.',\n [GameVolleyballPosition.receiver_attacker]: 'доигр.',\n [GameVolleyballPosition.dioganal]: 'диаг.',\n },\n [Locales.en]: {\n [GameVolleyballPosition.setter]: 'Setter',\n [GameVolleyballPosition.libero]: 'Libero',\n [GameVolleyballPosition.middle_player]: 'Middle blocker',\n [GameVolleyballPosition.receiver_attacker]: 'Outside hitter',\n [GameVolleyballPosition.dioganal]: 'Diagonal',\n }\n};\n\nexport const VolleyballWorkHandLocalization = {\n [Locales.ru]: {\n [VolleyballWorkHand.left]: 'Левая',\n [VolleyballWorkHand.right]: 'Правая'\n },\n [Locales.en]: {\n [WorkHand.left]: 'Left',\n [WorkHand.right]: 'Right',\n }\n};\n\nexport const GameHockeyPositionLocalization = {\n [Locales.ru]: {\n [GameHockeyPosition.goaltender]: 'Вратарь',\n [GameHockeyPosition.defensemen]: 'Защитник',\n [GameHockeyPosition.forward]: 'Нападающий',\n },\n [Locales.en]: {\n [GameHockeyPosition.defensemen]: 'Defender',\n [GameHockeyPosition.forward]: 'Forward',\n [GameHockeyPosition.goaltender]: 'Goalkeeper',\n }\n};\n\nexport const GameFootballPositionLocalization = {\n [Locales.ru]: {\n [GameFootballPosition.goalkeeper]: 'Вратарь',\n [GameFootballPosition.defensemen]: 'Защитник',\n [GameFootballPosition.midfielder]: 'Полузащитник',\n [GameFootballPosition.forward]: 'Нападающий',\n },\n [Locales.en]: {\n [GameFootballPosition.defensemen]: 'Defender',\n [GameFootballPosition.midfielder]: 'Midfielder',\n [GameFootballPosition.forward]: 'Forward',\n [GameFootballPosition.goalkeeper]: 'Goalkeeper',\n }\n};\n\nexport const FootballWorkFootLocalization = {\n [Locales.ru]: {\n [FootballWorkFoot.left]: 'Левая',\n [FootballWorkFoot.right]: 'Правая',\n [FootballWorkFoot.both]: 'Обе'\n },\n [Locales.en]: {\n [FootballWorkFoot.left]: 'Left',\n [FootballWorkFoot.right]: 'Right',\n [FootballWorkFoot.both]: 'Both',\n }\n};\n\nexport const GameHandballPositionLocalization = {\n [Locales.ru]: {\n [GameHandballPosition.goalkeeper]: 'Вратарь',\n [GameHandballPosition.winger]: 'Крайний',\n [GameHandballPosition.pivot]: 'Линейный',\n [GameHandballPosition.centre_back]: 'Центральный',\n [GameHandballPosition.fullback]: 'Полусредний',\n },\n [Locales.en]: {\n [GameHandballPosition.goalkeeper]: 'Goalkeeper',\n [GameHandballPosition.winger]: 'Wing',\n [GameHandballPosition.pivot]: 'Pivot',\n [GameHandballPosition.centre_back]: 'Centre back',\n [GameHandballPosition.fullback]: 'Back',\n }\n};\n\nexport const GameRugbyPositionLocalization = {\n [Locales.ru]: {\n [GameRugbyPosition.front_line]: 'Надающий первой линии',\n [GameRugbyPosition.second_line]: 'Нападающий второй линии',\n [GameRugbyPosition.back_line]: 'Нападающий задней линии',\n [GameRugbyPosition.halfback]: 'Полузащитник',\n [GameRugbyPosition.three_quarter]: 'Трехчетвертный',\n [GameRugbyPosition.fullback]: 'Замыкающий',\n },\n [Locales.en]: {\n [GameRugbyPosition.front_line]: 'The forward of the first line',\n [GameRugbyPosition.second_line]: 'The forward of the second line',\n [GameRugbyPosition.back_line]: 'The forward of the back line',\n [GameRugbyPosition.halfback]: 'Halfback',\n [GameRugbyPosition.three_quarter]: 'Three quarter',\n [GameRugbyPosition.fullback]: 'Fullback',\n }\n};\n\nexport const GameWaterpoloPositionLocalization = {\n [Locales.ru]: {\n [GameWaterpoloPosition.defensemen]: 'Защитник',\n [GameWaterpoloPosition.goalkeeper]: 'Вратарь',\n [GameWaterpoloPosition.center_forward]: 'Центральный нападающий',\n [GameWaterpoloPosition.mobile_forward]: 'Подвижный нападающий',\n [GameWaterpoloPosition.winger]: 'Крайний нападающий',\n },\n [Locales.en]: {\n [GameWaterpoloPosition.defensemen]: 'Defender',\n [GameWaterpoloPosition.goalkeeper]: 'Goalkeeper',\n [GameWaterpoloPosition.center_forward]: 'Center forward',\n [GameWaterpoloPosition.mobile_forward]: 'Mobile forward',\n [GameWaterpoloPosition.winger]: 'Winger',\n }\n};\n\nexport const GameWaterpoloPositionShortRuLocalization = {\n [Locales.ru]: {\n [GameWaterpoloPosition.defensemen]: 'З',\n [GameWaterpoloPosition.goalkeeper]: 'Вр',\n [GameWaterpoloPosition.center_forward]: 'ЦН',\n [GameWaterpoloPosition.mobile_forward]: 'ПН',\n [GameWaterpoloPosition.winger]: 'КН',\n },\n [Locales.en]: {\n [GameWaterpoloPosition.defensemen]: 'D',\n [GameWaterpoloPosition.goalkeeper]: 'G',\n [GameWaterpoloPosition.center_forward]: 'CF',\n [GameWaterpoloPosition.mobile_forward]: 'MF',\n [GameWaterpoloPosition.winger]: 'W',\n }\n};\n\nexport const WaterpoloWorkHandLocalization = {\n [Locales.ru]: {\n [WaterpoloWorkHand.left]: 'Левая',\n [WaterpoloWorkHand.right]: 'Правая',\n },\n [Locales.en]: {\n [WaterpoloWorkHand.left]: 'Left',\n [WaterpoloWorkHand.right]: 'Right'\n }\n};\nexport const WrestballWorkHandLocalization = {\n [Locales.ru]: {\n [WrestballWorkHand.left]: 'Левая',\n [WrestballWorkHand.right]: 'Правая'\n },\n [Locales.en]: {\n [WrestballWorkHand.left]: 'Left',\n [WrestballWorkHand.right]: 'Right'\n }\n};\n\n","import { VolleyballGameLogType } from '../models/volleyball-game-log';\nimport { Locales } from './locales';\n\nexport const VolleyballGameLogTypeLocalization = {\n [Locales.ru]: {\n [VolleyballGameLogType.enter_game]: 'Выход на площадку',\n [VolleyballGameLogType.exit_game]: 'Уход с площадки',\n [VolleyballGameLogType.remove_game]: 'Удаление с площадки',\n [VolleyballGameLogType.serve_ace]: 'Эйс',\n [VolleyballGameLogType.serve_hit]: 'Подача',\n [VolleyballGameLogType.serve_fault]: 'Ошибка на подаче',\n [VolleyballGameLogType.good_serve]: 'Усложнённая подача',\n [VolleyballGameLogType.attack_spike]: 'Результативная атака',\n [VolleyballGameLogType.attack_shot]: 'Атака',\n [VolleyballGameLogType.attack_fault]: 'Ошибка атаки',\n [VolleyballGameLogType.stuff_block]: 'Результативный блок',\n [VolleyballGameLogType.block_rebound]: 'Блок',\n [VolleyballGameLogType.block_fault]: 'Ошибка на блоке',\n [VolleyballGameLogType.excellent_receive]: 'Отличный прием',\n [VolleyballGameLogType.receive]: 'Прием',\n [VolleyballGameLogType.receive_fault]: 'Ошибка на приеме',\n [VolleyballGameLogType.serve_receive]: 'Прием подачи',\n [VolleyballGameLogType.excellent_serve_receive]: 'Отличный прием подачи',\n [VolleyballGameLogType.serve_receive_fault]: 'Ошибка приема подачи',\n [VolleyballGameLogType.point]: 'Очко',\n [VolleyballGameLogType.fault]: 'Ошибка',\n [VolleyballGameLogType.timeout]: 'Таймаут',\n [VolleyballGameLogType.yellow_card]: 'Замечание: желтая карточка',\n [VolleyballGameLogType.tie_ball]: 'Спорный мяч',\n },\n [Locales.en]: {\n [VolleyballGameLogType.enter_game]: 'Entering the court',\n [VolleyballGameLogType.exit_game]: 'Exit the court',\n [VolleyballGameLogType.remove_game]: 'Removed from the court',\n [VolleyballGameLogType.serve_ace]: 'Ace',\n [VolleyballGameLogType.serve_hit]: 'Serve',\n [VolleyballGameLogType.serve_fault]: 'Mistake on a serve',\n [VolleyballGameLogType.good_serve]: 'Good serve',\n [VolleyballGameLogType.attack_spike]: 'Resulting attack',\n [VolleyballGameLogType.attack_shot]: 'Attack',\n [VolleyballGameLogType.attack_fault]: 'Attack fault',\n [VolleyballGameLogType.stuff_block]: 'Resulting block',\n [VolleyballGameLogType.block_rebound]: 'Block',\n [VolleyballGameLogType.block_fault]: 'Block fault',\n [VolleyballGameLogType.excellent_receive]: 'Excellent receive',\n [VolleyballGameLogType.receive]: 'Receive',\n [VolleyballGameLogType.receive_fault]: 'Receive fault',\n [VolleyballGameLogType.serve_receive]: 'Serve receive',\n [VolleyballGameLogType.excellent_serve_receive]: 'Excellent serve receive',\n [VolleyballGameLogType.serve_receive_fault]: 'Serve receive fault',\n [VolleyballGameLogType.point]: 'Point',\n [VolleyballGameLogType.fault]: 'Fault',\n [VolleyballGameLogType.timeout]: 'Timeout',\n [VolleyballGameLogType.yellow_card]: 'Yellow card',\n [VolleyballGameLogType.tie_ball]: 'Tie ball',\n }\n};\n","import { OrganizationStatuses } from '../models/organization';\nimport { Locales } from './locales';\n\nexport const OrganizationStatusesLocalization = {\n [Locales.ru]: {\n [OrganizationStatuses.active]: 'Активен',\n [OrganizationStatuses.blocked]: 'Заблокирован',\n [OrganizationStatuses.not_confirmed]: 'Не подтвержден'\n },\n [Locales.en]: {\n [OrganizationStatuses.active]: 'Active',\n [OrganizationStatuses.blocked]: 'Blocked',\n [OrganizationStatuses.not_confirmed]: 'Not confirmed',\n }\n};\n","import { WrestballGameLogTypes } from '../models/wrestball-game-log';\nimport { Locales } from './locales';\n\nexport const WrestballGameLogTypeLocalization = {\n [Locales.ru]: {\n [WrestballGameLogTypes.enter_game]: 'Выход на площадку',\n [WrestballGameLogTypes.exit_game]: 'Ушел с площадки',\n [WrestballGameLogTypes.remove_game]: 'Удаление с площадки',\n [WrestballGameLogTypes.two_point_attempt]: 'Бросок 2 очка',\n [WrestballGameLogTypes.three_point_attempt]: 'Бросок 3 очка',\n [WrestballGameLogTypes.free_throw_attempt]: 'Штрафной бросок 1 очко',\n [WrestballGameLogTypes.two_point_free_throw_attempt]: 'Штрафной бросок 2 очка',\n [WrestballGameLogTypes.three_point_free_throw_attempt]: 'Штрафной бросок 3 очка',\n [WrestballGameLogTypes.one_point_attempt]: 'Бросок 1 очко',\n [WrestballGameLogTypes.two_point_made]: '2 очка',\n [WrestballGameLogTypes.three_point_made]: '3 очка',\n [WrestballGameLogTypes.free_throw_made]: '1 очко, штрафной',\n [WrestballGameLogTypes.two_point_free_throw_made]: '2 очка, штрафной',\n [WrestballGameLogTypes.three_point_free_throw_made]: '3 очка, штрафной',\n [WrestballGameLogTypes.one_point_made]: '1 очко',\n [WrestballGameLogTypes.dunk_made]: '2 очка, данк',\n [WrestballGameLogTypes.dunk_attempt]: 'Попытка данка',\n [WrestballGameLogTypes.assist]: 'Передача',\n [WrestballGameLogTypes.block]: 'Блокшот',\n [WrestballGameLogTypes.rebound]: 'Подбор',\n [WrestballGameLogTypes.offensive_rebound]: 'Подбор в нападении',\n [WrestballGameLogTypes.defensive_rebound]: 'Подбор в защите',\n [WrestballGameLogTypes.steal]: 'Перехват',\n [WrestballGameLogTypes.turnover]: 'Потеря',\n [WrestballGameLogTypes.personal_foul]: 'Фол',\n [WrestballGameLogTypes.timeout]: 'Таймаут',\n [WrestballGameLogTypes.team_rebound]: 'Командный подбор',\n [WrestballGameLogTypes.scrum]: 'Схватка',\n [WrestballGameLogTypes.scrum_won]: 'Схватка выиграна',\n [WrestballGameLogTypes.scrum_lost]: 'Схватка проиграна',\n [WrestballGameLogTypes.scrum_tie]: 'Схватка в ничью',\n [WrestballGameLogTypes.wrestler_scrum]: 'Атака рестлера',\n [WrestballGameLogTypes.wrestler_scrum_won]: 'Атака рестлера успешна',\n [WrestballGameLogTypes.wrestler_scrum_lost]: 'Атака рестлера неудачна',\n [WrestballGameLogTypes.wrestler_scrum_tie]: 'Атака рестлера в ничью',\n [WrestballGameLogTypes.wrestler_scrum_counterattack]: 'Контратака на рестлере',\n [WrestballGameLogTypes.scrum_ball_advantage_won]: 'Схватка за начало выиграна',\n [WrestballGameLogTypes.scrum_ball_advantage_lost]: 'Схватка за начало проиграна',\n [WrestballGameLogTypes.scrum_ball_advantage_tie]: 'Схватка за начало в ничью',\n [WrestballGameLogTypes.yellow_card]: 'Желтая карточка',\n [WrestballGameLogTypes.red_card]: 'Красная карточка',\n },\n [Locales.en]: {\n [WrestballGameLogTypes.enter_game]: 'Entering the court',\n [WrestballGameLogTypes.exit_game]: 'Exit the court',\n [WrestballGameLogTypes.remove_game]: 'Removal from the court',\n [WrestballGameLogTypes.two_point_attempt]: 'Throw 2 points',\n [WrestballGameLogTypes.three_point_attempt]: 'Throw 3 points',\n [WrestballGameLogTypes.free_throw_attempt]: 'Free throw 1 point',\n [WrestballGameLogTypes.two_point_free_throw_attempt]: 'Free throw 2 points',\n [WrestballGameLogTypes.three_point_free_throw_attempt]: 'Free throw 3 points',\n [WrestballGameLogTypes.one_point_attempt]: 'Throw 1 point',\n [WrestballGameLogTypes.two_point_made]: '2 points',\n [WrestballGameLogTypes.three_point_made]: '3 points',\n [WrestballGameLogTypes.free_throw_made]: '1 point, free throw',\n [WrestballGameLogTypes.two_point_free_throw_made]: '2 points, free throw',\n [WrestballGameLogTypes.three_point_free_throw_made]: '3 points, free throw',\n [WrestballGameLogTypes.one_point_made]: '1 point',\n [WrestballGameLogTypes.dunk_made]: '2 points, dunk',\n [WrestballGameLogTypes.dunk_attempt]: 'Dunk attempt',\n [WrestballGameLogTypes.assist]: 'Assist',\n [WrestballGameLogTypes.block]: 'Block',\n [WrestballGameLogTypes.rebound]: 'Rebound',\n [WrestballGameLogTypes.offensive_rebound]: 'Offensive rebound',\n [WrestballGameLogTypes.defensive_rebound]: 'Defensive rebound',\n [WrestballGameLogTypes.steal]: 'Steal',\n [WrestballGameLogTypes.turnover]: 'Turnover',\n [WrestballGameLogTypes.personal_foul]: 'Personal foul',\n [WrestballGameLogTypes.timeout]: 'Timeout',\n [WrestballGameLogTypes.team_rebound]: 'Team rebound',\n [WrestballGameLogTypes.scrum]: 'Scrum',\n [WrestballGameLogTypes.scrum_won]: 'Scrum is won',\n [WrestballGameLogTypes.scrum_lost]: 'Scrum is lost',\n [WrestballGameLogTypes.scrum_tie]: 'Scrum is in a draw',\n [WrestballGameLogTypes.wrestler_scrum]: 'Wrestler attack',\n [WrestballGameLogTypes.wrestler_scrum_won]: 'Successful Wrestler attack',\n [WrestballGameLogTypes.wrestler_scrum_lost]: 'Unsuccessful Wrestler attack',\n [WrestballGameLogTypes.wrestler_scrum_tie]: 'Wrestler\\'s attack in a draw',\n [WrestballGameLogTypes.wrestler_scrum_counterattack]: 'Counterattack on the wrestler',\n [WrestballGameLogTypes.scrum_ball_advantage_won]: 'Scrum for the beginning is won',\n [WrestballGameLogTypes.scrum_ball_advantage_lost]: 'Scrum for the beginning is lost',\n [WrestballGameLogTypes.scrum_ball_advantage_tie]: 'Scrum for the beginning is in draw',\n [WrestballGameLogTypes.yellow_card]: 'Yellow card',\n [WrestballGameLogTypes.red_card]: 'Red card',\n }\n};\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n camera_id: 'cameraId',\n recording_key: 'recordingKey',\n start_date: 'startDate',\n embed_url: 'embedUrl',\n is_live: 'isLive',\n },\n relation: {\n startDate: DateField,\n }\n})\nexport class Recording extends BaseModel {\n id: number;\n cameraId: number;\n recordingKey: string;\n startDate: Date;\n embedUrl: string;\n isLive: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Recording } from './recording';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n token: 'token',\n league_id: 'leagueId',\n live_recording: 'liveRecording',\n },\n relation: {\n liveRecording: Recording\n }\n})\nexport class Camera extends BaseModel {\n id: number;\n name: string;\n token: string;\n leagueId: number;\n liveRecording: Recording;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\nimport { Organization } from './organization';\nimport { Locales } from '../localization/locales';\n\n\nexport enum OrganizationBillStatuses {\n pending = 1,\n paid,\n canceled,\n}\n\nexport const OrganizationBillStatusLocalization = {\n [Locales.ru]: {\n [OrganizationBillStatuses.pending]: 'Новый',\n [OrganizationBillStatuses.paid]: 'Оплачен',\n [OrganizationBillStatuses.canceled]: 'Отменен',\n },\n [Locales.en]: {\n [OrganizationBillStatuses.pending]: 'New',\n [OrganizationBillStatuses.paid]: 'Paid',\n [OrganizationBillStatuses.canceled]: 'Canceled',\n }\n};\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n organization: 'organization',\n status: 'status',\n sum: 'sum',\n payment_date: 'paymentDate',\n pay_till_date: 'payTillDate',\n date_from: 'dateFrom',\n date_to: 'dateTo',\n created_at: 'createdAt',\n },\n relation: {\n organization: Organization,\n status: enumField(OrganizationBillStatuses),\n paymentDate: DateTimeField,\n payTillDate: DateTimeField,\n dateFrom: DateTimeField,\n dateTo: DateTimeField,\n createdAt: DateTimeField,\n }\n})\nexport class OrganizationBill extends BaseModel {\n id: number;\n organization: Organization;\n status: OrganizationBillStatuses;\n sum: number;\n paymentDate: Date;\n payTillDate: Date;\n dateFrom: Date;\n dateTo: Date;\n createdAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\nimport { Game } from './game';\nimport { OrganizationBill } from './organization-bill';\nimport { Locales } from '../localization/locales';\n\n\nexport enum GameBillStatuses {\n pending = 1,\n paid,\n canceled,\n}\n\nexport const GameBillStatusLocalization = {\n [Locales.ru]: {\n [GameBillStatuses.pending]: 'Новый',\n [GameBillStatuses.paid]: 'Оплачен',\n [GameBillStatuses.canceled]: 'Отменен',\n },\n [Locales.en]: {\n [GameBillStatuses.pending]: 'New',\n [GameBillStatuses.paid]: 'Paid',\n [GameBillStatuses.canceled]: 'Canceled',\n }\n};\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game: 'game',\n status: 'status',\n organization_bill: 'organizationBill',\n paid_date: 'paidDate',\n price: 'price',\n created_at: 'createdAt',\n },\n relation: {\n game: Game,\n organizationBill: OrganizationBill,\n status: enumField(GameBillStatuses),\n paidDate: DateTimeField,\n createdAt: DateTimeField,\n }\n})\nexport class GameBill extends BaseModel {\n id: number;\n game: Game;\n organizationBill: OrganizationBill;\n status: GameBillStatuses;\n price: number;\n paidDate: Date;\n createdAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n files: 'files',\n key_code: 'keyCode',\n },\n relation: {\n files: listField(File)\n }\n})\nexport class LeaguePlaylist extends BaseModel {\n id: number;\n name: string;\n files: File[];\n keyCode: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\nimport { Organization } from './organization';\nimport { Sport } from './sport';\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n organization: 'organization',\n price: 'price',\n sport: 'sport',\n },\n relation: {\n organization: Organization,\n sport: Sport,\n }\n})\nexport class OrganizationTariff extends BaseModel {\n id: number;\n organization: Organization;\n sport: Sport;\n price: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n players_count: 'playersCount',\n teams_count: 'teamsCount',\n games_count: 'gamesCount',\n paid_sum: 'paidSum',\n debt_sum: 'debtSum',\n },\n})\nexport class OrganizationStatistic extends BaseModel {\n id: number;\n playersCount: number;\n teamsCount: number;\n gamesCount: number;\n paidSum: number;\n debtSum: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { of, ReplaySubject, Subject } from 'rxjs';\n\nimport { Centrifuge } from 'centrifuge';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ConfigService } from './config.service';\nimport { Subscription } from 'centrifuge/build/subscription';\nimport { filter, take, tap } from 'rxjs/operators';\nimport { isPlatformBrowser } from '@angular/common';\n\ninterface CentrifugoConfig {\n token: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class CentrifugoService {\n private channels$: { [key: string]: Subject<any> } = {};\n private subscriptions: { [key: string]: Subscription } = {};\n private centrifuge: Centrifuge;\n private initializeEngineSubject: ReplaySubject<boolean>;\n private connectedSubject = new BehaviorSubject<boolean>(false);\n\n get connected$(): Observable<boolean> {\n return this.connectedSubject;\n }\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n @Inject(PLATFORM_ID) private platformId: string,\n ) { }\n\n listen<T = any>(channel): Observable<T> {\n if (!isPlatformBrowser(this.platformId)) {\n console.error('Centrifugo is not available in ssr mode')\n return new Observable(observer => {});\n }\n\n if (channel in this.channels$) {\n return this.channels$[channel];\n }\n\n this.channels$[channel] = new Subject<T>();\n this.connect().subscribe(connected => {\n this.subscriptions[channel] = this.addEngineSubscription(channel);\n });\n\n return this.channels$[channel];\n }\n\n unsubscribe(channel): void {\n if (this.subscriptions[channel]) {\n this.subscriptions[channel].unsubscribe();\n this.centrifuge.removeSubscription(this.subscriptions[channel]);\n delete this.subscriptions[channel];\n }\n if (this.channels$[channel]) {\n this.channels$[channel].complete();\n delete this.channels$[channel];\n }\n }\n\n connect(): Observable<boolean> {\n if (!isPlatformBrowser(this.platformId)) {\n console.error('Centrifugo is not available in ssr mode');\n return new Observable<boolean>(observer => {});\n }\n\n if (!this.initializeEngineSubject) {\n this.initializeEngineSubject = new ReplaySubject(1);\n\n this.httpClient.get<CentrifugoConfig>(`${this.configService.get('apiUrl')}/api/v1/centrifugo_v2/`)\n .subscribe(config => {\n this.initializeEngine({\n url: this.configService.get('centrifugoUrl'),\n token: config.token,\n transports: ['websocket']\n });\n this.centrifuge.on('connected', () => {\n this.initializeEngineSubject.next(true);\n this.connectedSubject.next(true);\n });\n this.centrifuge.on('disconnected', () => {\n this.connectedSubject.next(false);\n });\n this.centrifuge.connect();\n });\n }\n\n return this.initializeEngineSubject.pipe(\n filter(item => Boolean(item)),\n take(1),\n tap(() => {\n if (this.centrifuge && this.centrifuge.state === 'disconnected') {\n this.centrifuge.connect();\n }\n })\n );\n }\n\n publish(channel: string, message: any): Observable<any> {\n if (!isPlatformBrowser(this.platformId)) {\n console.error('Centrifugo is not available in ssr mode');\n return new Observable<any>(observer => {});\n }\n\n return this.connect().pipe(\n tap(() => this.centrifuge.publish(channel, message))\n );\n }\n\n disconnect(): void {\n if (this.centrifuge) {\n this.centrifuge.disconnect();\n }\n this.initializeEngineSubject = undefined;\n for (const channel of Object.keys(this.channels$)) {\n this.unsubscribe(channel);\n }\n this.channels$ = {};\n this.subscriptions = {};\n }\n\n private initializeEngine(config: {\n url: string,\n token: string,\n transports: string[]\n }): void {\n this.centrifuge = new Centrifuge(config.url, {\n token: config.token,\n maxReconnectDelay: 3000,\n maxServerPingDelay: 3000,\n timeout: 1000,\n });\n }\n\n private addEngineSubscription(channel: string): Subscription {\n let sub = this.centrifuge.getSubscription(channel);\n if (!sub) {\n sub = this.centrifuge.newSubscription(channel);\n sub.on('publication', ctx => {\n this.resolveMessage(channel, ctx.data);\n });\n }\n sub.subscribe();\n return sub;\n }\n\n private resolveMessage(channel: string, message: any): void {\n if (!this.channels$[channel]) {\n return;\n }\n\n this.channels$[channel].next(message);\n }\n}\n","import { ModelInterface } from '../models/util';\n\nexport class StorageEngineField {\n defaultValue: any;\n\n constructor(defaultValue?: any, protected modelClass?: ModelInterface) {\n this.defaultValue = defaultValue;\n }\n\n toFront(value: any): any {\n if (this.modelClass) {\n return this.modelClass.toFront(value);\n }\n return value;\n }\n\n toBack(value: any): any {\n if (this.modelClass) {\n return this.modelClass.toBack(value);\n }\n return value;\n }\n}\n\nexport abstract class StorageEngine {\n constructor(protected name: string, protected fields: {[key: string]: StorageEngineField}) {\n }\n\n addField(key: string, field: StorageEngineField): void {\n this.fields[key] = field;\n }\n\n save(key: string, value: any): void {\n if (!this.fields[key]) {\n return;\n }\n this.setItem(`${this.name}_${key}`, this.fields[key].toBack(value));\n }\n\n get(key: string): any {\n if (!this.fields[key]) {\n return;\n }\n let value = this.getItem(`${this.name}_${key}`);\n if (value === null) {\n value = this.fields[key].defaultValue;\n }\n if (value === null || value === undefined) {\n return value;\n }\n return this.fields[key].toFront(value);\n }\n\n clear(): void {\n for (const field of Object.keys(this.fields)) {\n this.removeItem(field);\n }\n }\n\n protected getItem(key: string): any {\n throw new Error(`Function getItem for store engine ${typeof this} not implemented`);\n }\n\n protected setItem(key: string, value: any): any {\n throw new Error(`Function setItem for store engine ${typeof this} not implemented`);\n }\n\n protected removeItem(key: string): void {\n throw new Error(`Function deleteItem for store engine ${typeof this} not implemented`);\n }\n}\n","import { StorageEngine } from './storage-engine';\n\nexport class LocalStorageEngine extends StorageEngine {\n protected setItem(key: string, value: any) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n protected getItem(key: string): any {\n try {\n return JSON.parse(localStorage.getItem(key));\n } catch (e) {\n return;\n }\n }\n\n protected removeItem(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","import {\n ɵComponentType as ComponentType,\n ɵDirectiveType as DirectiveType,\n ɵComponentDef as ComponentDef,\n ɵDirectiveDef as DirectiveDef\n} from '@angular/core';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Subject } from 'rxjs/internal/Subject';\n\nexport interface OnDestroyLike {\n ngOnDestroy(): void;\n [key: string]: any;\n}\n\nexport function componentDestroyed(component: OnDestroyLike): Observable<void> {\n if (!(component as any).__decoratorApplied) {\n throw new Error('Use @UntilDestroy decorator in class');\n }\n\n if (!(component as any).__componentDestroyed$) {\n (component as any).__componentDestroyed$ = new Subject();\n }\n return (component as any).__componentDestroyed$;\n}\n\nexport function UntilDestroy(cmpType: any) {\n const original = cmpType.prototype.ngOnDestroy;\n cmpType.prototype.__decoratorApplied = true;\n cmpType.prototype.ngOnDestroy = function(this: any) {\n original.call(this);\n if (this.__componentDestroyed$) {\n this.__componentDestroyed$.next();\n this.__componentDestroyed$.complete();\n delete this.__componentDestroyed$;\n }\n };\n}\n\nfunction getDef<T>(\n type: DirectiveType<T> | ComponentType<T>\n): DirectiveDef<T> | ComponentDef<T> | unknown {\n return (type as ComponentType<T>).ɵcmp || (type as DirectiveType<T>).ɵdir;\n}\n","export function getCookie(name: string): string {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop().split(';').shift();\n }\n return null;\n}\n","export function parseDate(input: string, format: string = 'yyyy-mm-dd'): Date {\n const parts = input.match(/(\\d+)/g);\n let i = 0;\n const result: {\n yyyy?: number,\n mm?: number,\n dd?: number,\n } = {};\n // extract date-part indexes from the format\n format.replace(/(yyyy|dd|mm)/g, (part: string) => {\n result[part] = +parts[i++];\n return '';\n });\n\n return new Date(result.yyyy, result.mm - 1, result.dd);\n}\n","export function isTouchDevice() {\n const prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\n const mq = (q) => {\n return window.matchMedia(q).matches;\n };\n\n if (('ontouchstart' in window) || (window as any).DocumentTouch && document instanceof (window as any).DocumentTouch) {\n return true;\n }\n\n // include the 'heartz' as a way to have a non matching MQ to help terminate the join\n // https://git.io/vznFH\n const query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\n return mq(query);\n}\n","export function getEnumOptions(enumClass): number[] {\n return Object.keys(enumClass)\n .map(v => enumClass[v])\n .filter(v => isNaN(+v) === false)\n .map(v => +v);\n}\n\n","import { captureException } from '@sentry/angular';\n\nexport function handleError(error, force = false, production = true) {\n if (!(error && (error.status === 0 || error.status === 404)) || (force && error.status !== 0)) {\n captureException(error);\n }\n\n if (!production) {\n console.error(error);\n }\n}\n","export interface LinkFavicon {\n rel: string;\n sizes?: string;\n href: string;\n type?: string;\n color?: string;\n}\n\nexport function getIconsData(folder: string): LinkFavicon[] {\n return [\n {rel: 'apple-touch-icon', sizes: '180x180', href: `/assets/favicon/${folder}apple-touch-icon.png`},\n {rel: 'icon', type: 'image/png', sizes: '32x32', href: `/assets/favicon/${folder}favicon-32x32.png`},\n {rel: 'icon', type: 'image/png', sizes: '16x16', href: `/assets/favicon/${folder}favicon-16x16.png`},\n {rel: 'shortcut icon', href: `/assets/favicon/${folder}favicon.ico`},\n {rel: 'manifest', href: `/assets/favicon/${folder}site.webmanifest`},\n {rel: 'mask-icon', href: `/assets/favicon/${folder}safari-pinned-tab.svg`, color: '#ff0000'}\n ];\n}\n\nexport function changeFavicons(document: Document, leagueAlias: string): void {\n let folder = '';\n if (leagueAlias === 'ablmoscow') {\n folder = 'abl/';\n }\n const data = getIconsData(folder);\n for (const item of data) {\n const link = document.createElement('link');\n for (const key of Object.keys(item)) {\n link.setAttribute(key, item[key]);\n }\n document.head.appendChild(link);\n }\n}\n","import { FormGroup } from '@angular/forms';\n\nexport function markFormGroupTouched(formGroup: FormGroup) {\n (Object as any).values(formGroup.controls).forEach(control => {\n control.markAsTouched();\n control.markAsDirty();\n\n if (control instanceof FormGroup) {\n markFormGroupTouched(control);\n } else if (control.controls) {\n control.controls.forEach(c => {\n if (c instanceof FormGroup) {\n markFormGroupTouched(c);\n } else {\n c.markAsTouched();\n c.markAsDirty();\n }\n });\n }\n });\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\nimport { debounceTime, delay, map, switchMap } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\nexport interface CheckEmailServiceInterface {\n checkEmail(value: string, selfCheck: boolean): Observable<boolean>;\n}\n\nexport const minLengthArrayValidator = (minLength: number) => {\n return (c: AbstractControl) => {\n return c.value.length < minLength\n ? {minLengthArray: {valid: false}}\n : null;\n };\n};\n\nexport const validatePhone = (control: AbstractControl) => {\n if (!control.value) {\n return null;\n }\n const value = `${control.value}`.replace(/\\D/gi, '');\n return value.length === 11 ? null : {invalidPhone: {valid: false}};\n};\n\nexport const validateDate = (control: AbstractControl) => {\n const re = /\\d{2}\\.\\d{2}\\.\\d{4}/gi;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidDate: {valid: false}};\n};\n\nexport const validateEmail = (authService: CheckEmailServiceInterface, selfCheck = true, ignore = []) => {\n const subject = of(null).pipe(\n delay(500)\n );\n return (control: AbstractControl) => {\n if (ignore.indexOf(control.value) > -1) {\n return of(null);\n }\n return subject.pipe(\n switchMap(() => authService.checkEmail(control.value, selfCheck).pipe(\n map(valid => valid ? null : {emailTaken: true})\n ))\n );\n };\n};\n\nexport const validateUrl = (control: AbstractControl) => {\n const re = /^(?:http(s)?:\\/\\/)[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidUrl: true};\n};\n\nexport function fileSizeValidator(maxFileSize: number): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n };\n}\n","import { Inject, Injectable, Injector, PLATFORM_ID } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { getCookie } from './utils/cookie';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ConfigService } from './services/config.service';\n\n@Injectable()\nexport class HttpCookieInterceptor implements HttpInterceptor {\n private isBrowser = isPlatformBrowser(this.platformId);\n\n constructor(\n private injector: Injector,\n private configService: ConfigService,\n @Inject(PLATFORM_ID) private platformId: string,\n ) {\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (!this.isBrowser) {\n return next.handle(req);\n }\n const apiUrl = this.configService.get('apiUrl');\n if (apiUrl === req.url.substr(0, apiUrl.length)) {\n req = req.clone({withCredentials: true});\n }\n const csrf = getCookie('csrftoken');\n if (csrf) {\n req = req.clone({\n setHeaders: {'X-CSRFToken': csrf}\n });\n }\n return next.handle(req);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Subject"],"mappings":"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"}