Instruction file imported from Sevochka/vibe-coding (
.cursor/rules/gql-schema.mdc). Copyright stays with the author.
type Query { statQueries: statQueries! type statQueries { // запросы по футболу football: statFootball! type statFootball { // метод сделанный для S&V. Список стран и вложенные турниры tournamentList( geo_code: geoCodePopular ): statTournamentList! type statTournamentList { // только популярные турниры popular: [statTournamentListItem!]! type statTournamentListItem { country: statCountry! // Страна type statCountry { // Название name: String! // 3-х буквенный код (формат ISO) code: String! // 2-х буквенный код, формат ISO 3166 (полное соответствие) iso2: String! // Существует ли страна actual: Boolean! // Турниры tournaments: [statTournament!]! // Турнир type statTournament { // Идентификатор id: ID! // Название name: String! // Страна, в которой проходит турнир (если он не международный) country: statCountry // Текущий сезон currentSeason: statSeason // Сезон type statSeason { // Идентификатор id: ID! // Название сезона в виде 2023/2024 или 2024 name: String! // Дата начала startDate: String! // Дата окончания endDate: String! // Финальный год проведения, например для сезона 2023/2024 будет 2024 year: String! // Турнир, в который входит сезон tournament: statTournament! // Этапы сезона stages( types: [stageType!] isActive: Boolean ): [statStage!]! // Этап сезона type statStage { // Турнирная таблица teamStanding( idTeams: [ID!] groupName: String ): statTeamStanding! // Турнирная таблица type statTeamStanding { // Сезон idSeason: String! // Общая таблица total: [statTeamStandingLine]! // Строка турнирной таблицы type statTeamStandingLine { // Позиция rank: Int! // Команда team: statTeam! // Команда type statTeam { // Идентификатор id: ID! // Название name: String! // Код (сокращение) abbreviation: String! // Страна country: statCountry! // Домашний стадион venue: statVenue // Стадион type statVenue { // Идентификатор id: ID! // Название name: String! // Город city: String! // Страна country: statCountry // Вместительность capacity: Int! // Координаты: lon lon: Float! // Координаты: lat lat: Float! // Год постройки buildYear: Int! // UberSetzer связи ubersetzer: statUbersetzer! // UberSetzer связи type statUbersetzer { // ID в международных проектах internationalId: String! // ID на Sports sportsId: Int // ID тега на Sports sportsTag: Int // ID Sportradar sportradarId: String // ID Perform performId: String // ID Opta optaId: Int // ID tag tagId: String // ID Omni omniId: String } // Ссылки на внешние ресурсы links: statLink! // Ссылки на внешние ресурсы type statLink { // Основная ссылка link: String! // Ссылка для sports.ru sportsRu: String! // Ссылка для by.tribuna.com byTribuna: String! // Ссылка для ua.tribuna.com uaTribuna: String! } } // Основной турнир homeTournament: statTournament // Текущий сезон currentTournaments: [statTournament] // Цвета команды colors( product: statProduct ): [statColor] // Цвета команды type statColor { // Первый цвет first: String! // Второй цвет second: String! } // Текущий тренер mainManager: statCareer // Карьера игрока type statCareer { // Команда team: statTeam // Команда, из которой ушёл игрок teamOut: statTeam // Команда, которая арендовала teamLoanIn: statTeam // Команда, из которой арендован teamLoanOut: statTeam // Игрок player: statPlayer // Игроки type statPlayer { // Идентификатор id: ID! // Полное имя name: String! // Имя (без фамилии) firstName: String! // Фамилия lastName: String! // Возвращает первое непустое поле. В names передаётся список полей (lineup_name, ...). // Также можно использовать стандартные поля (name, firstName, lastName). // Если все поля из списка пустые, то возвращает firstName и lastName. coalesceName( names: [String!] nameTypes: [CoalesceNameAttrType!] ): String! // Новое поле амплуа fieldPosition: Position! // Дата рождения dateOfBirth: String! // Дата смерти dateOfDeath: String // Статус игрока status: playerStatus! // Национальность nationality: [statCountry!] // Статистика за сезон/команду stat( teamSeason: String idTeam: String ): [statPlayerCareer] // Статистика за сезон type statPlayerCareer { team: statTeam season: statSeason player: statPlayer matchesPlayed: Int! cleanSheet: Int! substitutedIn: Int! goalsScored: Int! penaltyScored: Int! assists: Int! ownGoals: Int! yellowCards: Int! yellowRedCards: Int! redCards: Int! minutesPlayed: Int saves: Int } // Статистика по годам statByYearTeam: [statByYearTeam] // Статистика сгруппированная по сезону type statByYearTeam { year: String! teams: [statByTeam] // Статистика за команду type statByTeam { team: statTeam items: [statPlayerCareer] } } // Общая статистика за всю карьеру totalStat: statBaseStatistic! // Основная статистика type statBaseStatistic { matchesPlayed: Int! cleanSheet: Int! substitutedIn: Int! goalsScored: Int! goalsConceded: Int! penaltyScored: Int! assists: Int! ownGoals: Int! yellowCards: Int! yellowRedCards: Int! redCards: Int! avgGoalsConceded: Int! // Количество сыгранных минут minutesPlayed: Int // Количество фолов fouls: Int! minutesPlayedPerGoal: Float minutesPlayedPerAssist: Float minutesPlayedPerFoul: Float minutesPlayedPerConceded: Float } // Карьера (история команд) careers: [statCareer] // Активный клуб currentClub: statTeam // Статистика последних матчей lastMatches: [statLastMatch] // Статистика последних матчей type statLastMatch { // Матч match: statMatch // Матч type statMatch { // Идентификатор id: ID! // Идентификатор Perform idPerform: ID teamStandingForTeam: [statTeamStandingLine!]! matchStatus: matchStatus! hasAwarded: Boolean! hasDetailStat: Boolean! hasLineups: Boolean! hasEvents: Boolean! // Период periodId: statPeriodId // Стадион venue: statVenue // Домашняя команда home: statTeamMatch // Команда в матче type statTeamMatch { // Текущая расcтaновка currentFormation: statFormation // Расстановка type statFormation { // Код code: String! // Линии positionLine: [statPositionLine] // Линия в расстановке type statPositionLine { // Название lineName: String! // Игроки items: [statLineupLine] // Состав type statLineupLine { // Игрок player: statPlayer // Номер jerseyNumber: String! // Позиция на поле position: statRadarPositionPlayer // Положение в составе lineupOrder: Int! // Входит ли в стартовый состав lineupStarting: Boolean! // Вышел ли игрок на замену lineupCurrent: Boolean! // Тип позиции (вратарь, защитник, ...) type: statTypePlayer! // Статистика игрока в матче stat: statPlayerMatchStat // Статистика игрока в матче type statPlayerMatchStat { substitutedIn: Int substitutedOut: Int goalsScored: Int assists: Int ownGoals: Int yellowCards: Int yellowRedCards: Int redCards: Int penaltiesMissed: Int penaltiesPost: Int penaltiesTarget: Int penaltyGoalsScored: Int penaltyGoalsConceded: Int goalLineClearances: Int interceptions: Int chancesCreated: Int crossesSuccessful: Int crossesTotal: Int passesShortSuccessful: Int passesMediumSuccessful: Int passesLongSuccessful: Int passesShortTotal: Int passesMediumTotal: Int passesLongTotal: Int duelsHeaderSuccessful: Int duelsSprintSuccessful: Int duelsTackleSuccessful: Int duelsSprintTotal: Int duelsTackleTotal: Int duelsHeaderTotal: Int goalsConceded: Int shotsFacedSaved: Int shotsFacedTotal: Int foulsCommitted: Int wasFouled: Int offsides: Int shotsOnGoal: Int shotsOffGoal: Int shotsBlocked: Int minutesPlayed: Int performanceScore: Int goalsByHead: Int goalAttempts: Int penaltiesFaced: Int penaltiesSaved: Int goalsByPenalty: Int penaltyWon: Int } coordinates: statCoordinate type statCoordinate { horizontal: statPlayerPosition! type statPlayerPosition { x: Float! y: Float! } vertical: statPlayerPosition! application: statPlayerApplicationPosition! type statPlayerApplicationPosition { x: Int! y: Int! } } } } } // Расстановка стартового состава formation: statFormation // Команда team: statTeam // Голы score: Int! // Стартовый состав lineup( skipPreview: Boolean ): [statLineupLine] // Автоматический ли сгенерированный lineup isPreviewLineup: Boolean! // Текущий состав (после замен) current_lineup: [statLineupLine] // Запасные игроки reserve_players: [statLineupLine]! // Тренер manager: statManager // Тренер type statManager { // Идентификатор id: ID! // Полное имя name: String! // Имя firstName: String! // Фамилия lastName: String! // Дата рождения dateOfBirth: String! // Национальность nationality: [statCountry!] // Основное фото avatar: statPic! // Изображения type statPic { // Оригинал картинки main: String! // Ресайз картинки под нужные размеры resize( width: String height: String ): String! // Ресайз и конвертация для формата webp. Качество от 1 до 100, если не указать, то 80 по дефолту webp( width: String height: String quality: Int ): String! // метаинформация о картинке metaInfo: pictureMeta type pictureMeta { width: Int! height: Int! size: Int! } } // Фото для продукта picture( productType: productType! format: playerImageFormat! ): statPic! // Ссылки на внешние ресурсы links: statLink! // Ubersetzer связи ubersetzer: statUbersetzer! } // Послематчевые пенальти penaltyScore: Int! // Статистика команды в матче stat: statTeamMatchStat // Статистика команды в матче type statTeamMatchStat { freeKicks: Int offsides: Int shotsOffTarget: Int cornerKicks: Int injuries: Int shotsOnTarget: Int yellowCards: Int yellowRedCards: Int redCards: Int ballPossession: Int goalKicks: Int throwIns: Int shotsSaved: Int fouls: Int ownGoals: Int penaltiesMissed: Int shotsBlocked: Int penaltyScored: Int substitutions: Int shotsTotal: Int } // Результат (победа, ничья, поражение) result: statResult // Описание, собранное на основе фактоидов по игре и команде factoid: statTeamFactoid! // Фактоид команды в матче type statTeamFactoid { text: String! stats: statTeamSeasonStat // Статистика команды за сезон type statTeamSeasonStat { MatchesPlayed: Int! MatchesWon: Int! MatchesDrawn: Int! MatchesLost: Int! GoalsScored: Int! GoalsConceded: Int! CupRank: Int! GroupPosition: Int! GroupName: String! YellowCards: Int! RedCards: Int! } } // XG xG: Float // список травмированных, дисквалифицированных и уехавших в расположение сборных футболистов suspensionsPlayers: [statSuspensionItem!]! type statSuspensionItem { person: statPlayer! reasons: [StatSuspensionReason!]! } // Последние игры команды с пагинацией; В качестве курсора используем ID матча lastGames( cursorMatchID: ID limit: Int! ): statLastGames! type statLastGames { // Список матчей matches: [statMatch!]! // Курсор для итерации списка cursorId: ID // Есть ли следующая пачка игр hasNext: Boolean! } } // Гостевая команда away: statTeamMatch // Начало матча (строка) scheduledAt: String! // Флаг наличия только даты dateOnly: Boolean! // Победитель winner: statWinner // Победитель по сумме матчей aggregateWinner: statTeam // Текущая минута currentMinute: String! // Текущая минута для клиента, разделенная с дополнительным временем в формате: 90+7 currentTime: String! // Посещаемость attendance: Int! // Раунд турнира tournamentRound: TournamentRound // Раунд type TournamentRound { // Номер тура number: Int! // Этап (group, cup) type: String! // Название группы для группового этапа (A, B, C, ...) group: String! // Фаза для группового этапа (group_phase_1) phase: String! } // Начало матча (unixtime) scheduledAtStamp: Int! // Сезон season: statSeason! // Счёт по таймам periodScore: [statPeriod] // Периоды матча type statPeriod { // Тип type: statTypePeriodScore! // Номер number: Int! // Голы домашней команды homeScore: Int! // Голы гостевой команды awayScore: Int! } // Была ли в матче серия пенальти hadPenalties: Boolean! // События, radarType deprecated use eventType instead events( radarType: [String!] eventType: [statEnumTypeTimeline!] after: Int ): [statTimelineEvent] // Событие type statTimelineEvent { // Идентификатор id: String! // Реальное время time: String! // Реальное время (в формате timestamp) unix_time: Int! // Тип события type: statEnumTypeTimeline! // Команда team: statQualifierTeam // Период periodId: statPeriodId // Итог outcome: String // Параметры события value: TimeLineEventValue } // Судьи referees( refereeType: refereeTypeFilter ): [statReferee] // Судья type statReferee { // Идентификатор id: ID! // Полное имя name: String! // Тип, main - для главного type: String! // Тип enum role: String! // Национальность nationality: String! // Код страны (в формате ISO) countryCode: String! // Страна country: statCountry // UberSetzer связи ubersetzer: statUbersetzer! // Ссылки на внешние ресурсы links: statLink! // Среднее значение желтых карточек averageYellowCards: Float! // Среднее значение красных карточек averageRedCards: Float! } // Матчи против другой команды, last - лимит последних матчей, по дефолту = 10 versus( last: Int ): statHead2Head // Статистика личных встреч type statHead2Head { // Статистика stat: statAggrHead2Head // Статистика type statAggrHead2Head { // Сыгранные матчи matches: Int! // Победы win: Int! // Ничьи draw: Int! // Поражения loss: Int! } // Матчи matches: [statMatch] } // Матчи против другой команды с пагинацией head2Head( input: statHead2HeadInput! input statHead2HeadInput { teamID: String pageSize: Int! pageNum: Int! } ): statHead2HeadPage type statHead2HeadPage { // Статистика stat: statAggregateHead2HeadPage // Статистика type statAggregateHead2HeadPage { // Сыгранные матчи matches: Int! // Победы win: Int! // Ничьи draw: Int! // Поражения loss: Int! } // Матчи matches: [statMatch] // Пагинация pageInfo: statHead2HeadPageInfo! type statHead2HeadPageInfo { hasNextPage: Boolean! firstPage: Int! lastPage: Int! currentPage: Int! totalCount: Int! } } // UberSetzer связи ubersetzer: statUbersetzer! // Ссылки на внешние ресурсы links: statLink! // Матчи одного тура tourMatches: [statMatch] inFavorites: Boolean // Описание, собранное на основе фактоидов по игре factoid: statFactoid! // Фактоид матча type statFactoid { // Текст для матча text: String! // Фактоиды ставок bettingFactoid: statBettingFactoidList // Список фактидов ставок type statBettingFactoidList { list: [statBettingFactoid!]! type statBettingFactoid { type: statBettingFactoidType! text: String! logo: statFactoidLogo! side: statBettingFactoidSide! } listWithFilter( factoidType: String bookmakerID: Int factoidTextLimit: Int factoidOddsTypeTextLimit: Int ): [statBettingFactoid!]! } } // Ccылка на второй матч серии relatedMatch: statMatch // Название этапа roundName: String! // Популярность матча popularity: Int // Список вкладок tabs: statMatchTabs type statMatchTabs { // Наличие онлайна online: Boolean! // Наличие чата chat: Boolean! // Наличие расстановки команды arrangement: Boolean! // Наличие видео по матчу video: Boolean! // Наличие турнирной таблицы table: Boolean! // Наличие данных по результатам игры stat: Boolean! } // Наличие коэффициентов hasXG: Boolean! // Тип раунда для поиска roundTypeName: String! // ML прогноз для матча prediction: statMLMatchPrediction // Предсказание по голам и зрелищности матча (Спортс-метр) type statMLMatchPrediction { match: statMatch! yellowCards: Int! goals: Int! spectacularity: Float! } } // Состав lineup: statLineupLine // Статистика игроков stat: statPlayerMatchStat // Команда team: statTeam } // UberSetzer связи ubersetzer: statUbersetzer! // SEO-покрытие coverage: statPlayerCoverage! // SEO-покрытие игроков type statPlayerCoverage { // Покрыта ли карьера career: Int! } // Ссылки на внешние ресурсы links: statLink! // Номер игрока jerseyNumber( teamId: ID source: statSourceList type: clubType ): Int // Виджет статистики по сезонам seasonList: statPlayerSeasonWidget! type statPlayerSeasonWidget { items: [statItemTournament]! type statItemTournament { tournament: statTournament! items: [statItemSeason!]! type statItemSeason { season: statSeason! } } // Матчи игрока с фильтром по сезону matches( input: SeasonMatchesInput input SeasonMatchesInput { seasonId: ID } ): [statMatch!]! } // Травмирован ли сейчас игрок activeInjury: StatPlayerInjury type StatPlayerInjury { startDate: String! endDate: String injuryType: statInjuryType! } // Bio bio: statPlayerBio! type statPlayerBio { height: Int weight: Int foot: playerFoot! gender: playerGender! } // Агрегированная статистика по сезону statBySeason: competitionPlayerStats! type competitionPlayerStats { national: CompetitionPlayerStat! type CompetitionPlayerStat { items: [SeasonPlayerStatItem!]! type SeasonPlayerStatItem { season: statSeason! team: statTeam! stat: statBaseStatistic } total: statBaseStatistic! } cup: CompetitionPlayerStat! internationalClubs: CompetitionPlayerStat! internationalTeams: CompetitionPlayerStat! } // Ближайшие/следующие матчи. Duration - в минутах, сколько матч после старта должен провисеть в current. // Если не указано, то 24 часа teaser( last: Int next: Int duration: Int ): statTeaser // Тизер матчей type statTeaser { // Последние матчи last: [statMatch!]! // Следующие матчи next: [statMatch!]! // Текущий матч (если есть) current: statMatch } } // Активен ли active: Int! // Тип контракта type: contractType! // Начало карьеры startDate: String! // Окончание карьеры endDate: String // Игровой номер jerseyNumber: String! // Роль в команде, возможные значения: // player, team_captain, on_loan, career_ended, // general_manager, manager, assistant_coach, coach_for_technique, fitness_coach, // director_of_football, club_official_fr, vice_president, // unemployed, other occupation: String! // Общая статистика игрока в этой команде stat: statBaseStatistic // Статистика по годам в этой команде statByYear: [statCareerByYear] // Статистика за год type statCareerByYear { year: String! stat: statBaseStatistic items: [statPlayerCareer] } // Тип трансфера, возможные значния: // Loan, Unknown, Back from Loan, Transfer, Free Transfer, Free Agent, Trial, Player Swap transferType: transferType! // Стоимость трансфера transferValue: String! // Валюта трансфера transferCurrency: String! // Дата объявления трансфера announcedDate: String } // Текущий тренерский состав без главного тренера coaches: [statCareer!]! // Состав (сезон в формате 17/18) roster( season: ID achievements: [statAchievementList!] occupation: statOccupationList playerIds: [ID!] ): [statPlayerTeam]! // Карьера игрока type statPlayerTeam { // Команда team: statTeam // Сезон idSeason: ID // Карьера career: statCareer // Статистика stat: statBaseStatistic // Достижения achievements: [statAchievement]! // Достижения игрока type statAchievement { // Тип type: statAchievementList! // Значение value: statAchievementValue } } // Тип в виде enum typeTeam: clubType! // Год основания клуба founded: String! // Матчи сезона (id - сезона) matches( id: ID ): [statMatch] // Последние 5 матчей lastFive: [statLastForm] // Форма команды (последние матчи) type statLastForm { // Матч match: statMatch! result: statResult // Разница мячей, с которой закончился матч для этой команды pointsDiff: Int! // Высота визуального элемента для отображения результата. Вычисляется на основе разницы мячей barHeight: Int! } // Статистика по голам в последних 5 матчах goalsStat: statTeamGoalsStat // Статистика по голам команды в последних матчах type statTeamGoalsStat { scoredOver( goals: Float! ): statGoalsOver // Число матчей с выполненным тоталом голов в основное время type statGoalsOver { // Общее число матчей matches: Int! // Матчи где забито больше переданного числа голов goalsOver: Int! } } // Сезоны турниров teamSeasons( idTeamSeason: ID ): [statTeamSeason] // Сезон команды type statTeamSeason { // Название name: String! // Год year: String! // Дата начала startDate: String! // Дата окончания endDate: String! // Сезоны турниров (можно фильтровать по id турнира idTournament, а можно по домашнему home) seasons( idTournament: [ID!] home: Boolean ): [statSeason] // Матчи matches: [statMatch] } // Матчи против другой команды, last - лимит последних матчей, по дефолту = 10 versus( idTeam: String! last: Int ): statHead2Head // Матчи против другой команды с пагинацией head2Head( input: statHead2HeadInput! ): statHead2HeadPage // Ближайшие/следующие матчи. Duration - в минутах, сколько матч после старта должен провисеть в current. // Если не указано, то 24 часа teaser( last: Int! next: Int! seasonId: ID duration: Int ): statTeaser // UberSetzer связи ubersetzer: statUbersetzer! // SEO-покрытие coverage: statTeamCoverage! // SEO-покрытие команды type statTeamCoverage { // Покрыты ли матчи matches: Int! // Покрыт ли состав roster: Int! } // Ссылки на внешние ресурсы links: statLink! // Находится ли турнир в избранном пользователя делающего запрос inFavorites: Boolean // Игроки, ушедшие в аренду loanPlayers: [statCareer!]! // Популярность popularity: Int! // Onboarding популярность onboardingPopularity: Int! // Ближайший турнир с турнирной таблицей nextTournamentWithStandings: statTournament } // Перспектива команды на этой позиции (выход в следующий этап или вылет) current_outcome: String! // Цвет, соответствующий перспективам команды colorOutcome: String! // Название группы groupName: String! // Название группы со словом (группа) name: String! // Сыграно матчей played: Int! // Победы win: Int! // Ничьи draw: Int! // Поражения loss: Int! // Забитые голы goalsFor: Int! // Пропущенные голы goalsAgainst: Int! // Разница голов goalDiff: Int! // Очки points: Int! // Изменение позиции относительно прошлого тура rankChange: Int! } // Таблица, посчитанная по домашним матчам home: [statTeamStandingLine]! // Таблица, посчитанная по выездным матчам away: [statTeamStandingLine]! // Таблица лайв live: [statTeamStandingLine]! } // Дата начала startDate: String! // Дата окончания endDate: String! // Тип этапа type: stageType! // Дерево сезонов для изображения турнирной сетки tree: graphTree // Дерево игр type graphTree { layers: [graphLayer!]! // Слои. Разбиваем по вертикали, обычно всегда один type graphLayer { id: ID! name: String! // значение для сортировки. меньше - выше position: Int! } pairs: [graphPair!]! // Пара противостояния type graphPair { id: ID! title: String! placeNumber: Int! layer: graphLayer! round: graphRound! // Раунды. Разбиваем по горизонтали. Слева - направо type graphRound { id: ID! name: String! enumName: graphStageName! // значение для сортировки. меньше - левее position: Int! // есть ли активные игры в раунде active: Boolean! } // input - из каких пар пришли. Кол-во эллементов в массиве от 0 до 2 input: [ID!]! // Пометка для объединения слоев. Сделано для грандфиналов в киберспорте mergingLayers: Boolean! // Пометка для отображения связи с другим layout inputOtherLayout: Boolean! // output - куда выходит победитель. В финалах null output: ID // значение для сортировки position: Int! value: graphEnumPair! // финальная позиция в турнире tournamentPosition: graphTournamentPosition // Финальная позиция в турнире type graphTournamentPosition { home: Int! away: Int! } // призовая медаль medal: graphTeamMedal // Призовая медаль type graphTeamMedal { home: graphMedal away: graphMedal } } // колличество раундов, чтобы понять, на сколько разбивать сетку countRounds: Int! } // Название этапа name: String! // Активность этапа active: Boolean! // Раунды в этапах rounds: [statRound!]! type statRound { vertical: Int! name: String! teamStanding: statTeamStanding! // Название типа раунда. Нужно для фильтра в season.matches typeName: String! } } // Туры сезона tours: [statTour!]! // Тур в сезоне type statTour { // Номер тура number: Int! } // Матчи в сезоне с фильтром по команде matches( idTeam: ID round: statTournamentRoundInput // Раунды для статистики input statTournamentRoundInput { // Номера туров numbers: [Int!] // Этапы (group, cup) types: [String!] // Группы (A, B, ...) groups: [String!] // Фазы для групповых этапов (group_phase_1) phases: [String!] // Фильтр по названию раунда roundTypeName: String } ): [statMatch] // Матчи в сезоне с фильтром по команде + пагинатор // по дефолту сортировка ASC - по id, DESC обратная по id // ASC_SCHEDULED_AT, DESC_SCHEDULED_AT pageListMatches( idTeam: ID source: statSourceList round: statTournamentRoundInput currentPage: Int sort: statMatchListSort! limit: Int! status: statMatchStatusSort month: Int ): statMatchList // Список матчей type statMatchList { // Матчи list: [statMatch] // Пагинация pageInfo: statPageInfo // Пагинация type statPageInfo { // Общее количество totalCount: Int! // Есть ли следующая страница hasNextPage: Boolean! // Номер текущей страницы currentPage: Int! // Первая страница firstPage: Int! // Последняя страница lastPage: Int! } } // Статистика команды в сезоне, id - id команды stats( id: ID! source: statSourceList ): statTeamSeasonStat // Статистика игроков - deprecated, используйте rankingPlayerStat statPlayers( sort: statPlayerStatSort limit: Int teams: [String!] source: statSourceList ): [statPlayerBySeasonStat] // Статистика по сезону type statPlayerBySeasonStat { // Игрок player: statPlayer // Команда team: statTeam // Статистика stat: statBaseStatistic } // Тизер сезона // next n - будущих матчей, // last - n - предыдущих матчей // на выходе поле current всегда будет заполнятся когда идет online матча, оно не зависит от входных параметров next и last teaser( next: Int last: Int ): statSeasonTeaser // Тизер матчей сезона type statSeasonTeaser { // Последние матчи last: [statMatch!] // Следующие матчи next: [statMatch!] // Текущие матчи
Truncated - read the full file at https://github.com/Sevochka/vibe-coding/blob/e80167ccca6deb409bcaa243e5fd48eb8aed9148/.cursor/rules/gql-schema.mdc.