Заявки и рейтинг
Заявки с сайта клуба или партнёра попадают в облако и в отчёт о привлечении клуба. Рейтинг AISOLUS — единое число игрока от 1,0 до 7,0 во всех клубах, где стоит AISOLUS.
Заявка с сайта
POST /v1/leads — публичный метод без авторизации: человек ещё не игрок. Вызывайте со своего сервера (форма на сайте → ваш сервер → облако).
curl -X POST "https://адрес-вашего-сервера/api/v1/leads" \
-H "Content-Type: application/json" \
-d '{"phone": "+79000000001", "name": "Мария", "club_id": "c1",
"source": "site", "utm": {"utm_source": "yandex", "utm_campaign": "autumn"},
"comment": "Хочу пробную тренировку"}'
# → {"ok": true, "id": "2c9e5a71-…", "duplicate": false}| Поле | Обязательно | Описание |
|---|---|---|
phone | да | Российский номер в любом привычном виде; неразборчивый — 400 bad_phone. |
name | нет | Имя, до 80 символов. |
club_id | нет | Клуб, куда заявка; неизвестный — 404 club_not_found. |
source | нет | Источник (сайт, реклама, стойка), до 60 символов. |
utm | нет | UTM-метки объектом. |
comment | нет | Комментарий, до 300 символов. |
- Повтор с тем же телефоном и клубом в течение 24 часов новую заявку не создаёт — возвращается прежняя с
duplicate: true. Двойное нажатие на форме не раздувает отчёт. - Если человек с этим телефоном уже зарегистрирован, заявка связывается с ним. Если зарегистрируется позже, облако учтёт источник заявки как источник привлечения игрока.
Рейтинг AISOLUS: шкала
Число от 1,0 до 7,0 двигают результаты игр: сила соперников и разница в счёте. Камеры корта подтверждают уровень по технике, тактике и стабильности. Показывается с округлением вниз до 0,05. Рейтинг может снижаться — он о текущем уровне.
| Значение | Ступень |
|---|---|
| 1,00–1,49 | Первые шаги |
| 1,50–1,99 | Новичок |
| 2,00–2,49 | Развивающийся |
| 2,50–2,99 | Любитель |
| 3,00–3,49 | Уверенный любитель |
| 3,50–3,99 | Опытный любитель |
| 4,00–4,74 | Продвинутый |
| 4,75–5,49 | Полупрофессионал |
| 5,50–7,00 | Профессионал |
Шкала с описаниями ступеней и правилами — публичный GET /v1/rating/scale; названия и описания приходят на русском.
curl "https://адрес-вашего-сервера/api/v1/rating/scale"
# → {"low": 1.0, "high": 7.0,
# "steps": [{"from": 1.0, "to": 1.49, "name": "Первые шаги", "text": "…"}, …],
# "rules": ["Число двигают результаты игр: сила соперников и разница в счёте.", …]}Рейтинг игрока
GET /v1/rating/me— свой рейтинг:value, ступеньstep, число игр, надёжность, статус, оценка камер по трём критериям (tech,tactics,stability) и история изменений.GET /v1/rating/user/{uid}— рейтинг другого игрока: значение, ступень, игры, надёжность — без истории.GET /v1/rating/leaderboard— лучшие: везде или среди сыгравших засчитанные матчи в клубе (club_id);limitдо 200.GET /v1/ingest/levels— уровни игроков состава для терминала корта (клубный токен).
Статус рядом с числом (status.code):
| Код | Что значит |
|---|---|
verified | Подтверждено камерами: оценка по разборам игр на кортах с камерами совпадает с числом |
adjusting | Камеры уточняют: по разборам выше или ниже, рейтинг подтягивается |
results | По результатам игр; для подтверждения нужны игры на корте с камерами |
provisional | Предварительный — уточнится за несколько игр |
Для подтверждения камерами нужно не меньше трёх разборов игр. Матч, счёт которого больше чем наполовину вёл человек, весит в рейтинге вдвое меньше; аннулированный матч (неявка, равный счёт, решение клуба) в рейтинг не идёт.
Рейтинг Эло и таблица лидеров
Кроме рейтинга AISOLUS, у игрока есть рейтинг Эло (старт 1000) и буквенный уровень по нему: A — от 1850, B — от 1600, C — от 1300, D — ниже. Матч с автосчётом камер весит полностью и отмечает рейтинг как подтверждённый (verified), ручной ввод — вполовину. Изменения по матчу приходят в ratingDeltas ответа на результат матча.
GET /v1/leaderboard — публичная таблица 50 лучших по Эло среди игроков с заполненным именем. Параметр scope возвращается в ответе, но сейчас на выборку не влияет.