# Внешние API (токен в пути, без сессионной авторизации) Описание трёх эндпоинтов для внешних систем. Токены задаются через переменные окружения на VPS. --- ## 1. GET /api/remotebet/{token} Регистрация пользователя в текущий раунд комнаты с указанной ставкой (удалённая ставка). **Параметры пути** | Параметр | Тип | Описание | |----------|--------|----------| | token | string | Секретный токен (должен совпадать с `APP_REMOTE_BET_TOKEN`) | **Query-параметры** | Параметр | Тип | Обязательный | Описание | |----------|--------|--------------|----------| | user_id | integer| да | Внутренний ID пользователя (db_users_a.id) | | room | integer| да | Номер комнаты: 1, 2 или 3 | | amount | integer| да | Ставка в билетах (например, 5 = 5 билетов) | **Ответ 200** | Поле | Тип | Описание | |--------------|--------|----------| | success | boolean| Успешность операции | | roundId | integer| ID раунда (или null) | | room | integer| Номер комнаты | | betTickets | integer| Размер ставки в билетах | | error | string | Сообщение об ошибке (при success = false) | **Коды ответа:** 200, 400, 403, 503 --- ## 2. GET /api/check_user/{token}/{telegramId} Получение информации о пользователе по Telegram ID. **Параметры пути** | Параметр | Тип | Описание | |------------|--------|----------| | token | string | Секретный токен (должен совпадать с `APP_CHECK_USER_TOKEN`) | | telegramId | long | Telegram ID пользователя | **Тело запроса:** отсутствует **Ответ 200** При успешном вызове всегда возвращается 200. По полю `found` можно определить, найден ли пользователь. | Поле | Тип | Описание | |-------------|--------|----------| | found | boolean| true — пользователь найден, остальные поля заполнены; false — пользователь не найден, остальные поля null | | dateReg | integer| Дата регистрации (при found=true) | | tickets | number | Баланс в билетах (balance_a / 1_000_000) (при found=true) | | depositTotal| integer| Сумма stars_amount по завершённым платежам (Stars) (при found=true) | | refererId | integer| referer_id_1 из db_users_d (0 если нет) (при found=true) | | roundsPlayed| integer| Количество сыгранных раундов (при found=true) | **Коды ответа:** 200, 403, 500 --- ## 3. POST /api/deposit_webhook/{token} Уведомление об успешном пополнении пользователя (криптоплатёж). Создаётся платёж в статусе COMPLETED, начисляются билеты, обновляются баланс и статистика депозитов, создаётся транзакция типа DEPOSIT. **Параметры пути** | Параметр | Тип | Описание | |----------|--------|----------| | token | string | Секретный токен (должен совпадать с `APP_DEPOSIT_WEBHOOK_TOKEN`) | **Тело запроса (application/json)** | Поле | Тип | Обязательный | Описание | |-----------|--------|--------------|----------| | user_id | integer| да | Внутренний ID пользователя (db_users_a.id) | | usd_amount| number | да | Сумма в USD в виде числа (например, 1.45 или 50) | **Тело ответа:** пустое при успехе **Коды ответа:** 200, 400, 403, 500