// API-эндпоинты плеера Рублокса.
//
// Все URL бэкенда настраиваются через Vite environment variables:
//   VITE_API_BASE       — базовый URL HTTP-API (дефолт: '' для localhost+vite-proxy)
//   VITE_REALTIME_HTTP  — Colyseus matchmaking HTTP-эндпоинт
//   VITE_REALTIME_WS    — Colyseus WebSocket-эндпоинт
//   VITE_RUBLOX_HOME    — главный сайт Рублокса (редирект если нет JWT)
//
// См. .env.example с готовыми дефолтами на публичный staging
// (https://dev-api.rublox.pro).
//
// В dev (vite на localhost) BASE пустой и запросы идут на относительные
// /api-* пути, которые vite.config.js проксирует на staging/prod.

const ENV = (typeof import.meta !== 'undefined' && import.meta.env) || {};

const IS_DEV = typeof window !== 'undefined'
    && (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');

// Пустой BASE в dev → vite-proxy роутит сам.
// В prod → либо env-настроенный бэкенд, либо текущий origin.
const BASE = ENV.VITE_API_BASE
    ?? (IS_DEV ? '' : (typeof window !== 'undefined' ? window.location.origin : ''));

export const USER_addres   = BASE + '/api-user';
export const STORYS_addres = BASE + '/api-storys';

// Эндпоинты realtime (Colyseus). По умолчанию используем HTTPS-relative
// для HTTPS-страницы (vite-proxy обрабатывает /api-game), иначе берём
// env-настроенные прямые URL.
const IS_HTTPS = typeof window !== 'undefined' && window.location.protocol === 'https:';

// 2026-06-05: realtime теперь прямо на game.rublox.pro (S1 NPM → S1 VM 110),
// не через minecraftia-school.ru/api-game (лишний hop S2 NPM → S1 NAT
// давал разрывы WebSocket каждую секунду).
export const REALTIME_HTTP = ENV.VITE_REALTIME_HTTP
    ?? (IS_HTTPS ? 'https://game.rublox.pro' : 'http://localhost:8685');
export const REALTIME_WS = ENV.VITE_REALTIME_WS
    ?? (IS_HTTPS ? 'wss://game.rublox.pro' : 'ws://localhost:8685');

// Главный сайт Рублокса — куда редиректить юзеров без ticket/JWT.
export const RUBLOX_HOME = ENV.VITE_RUBLOX_HOME ?? 'https://rublox.pro/app';

// Папки ассетов для фото профиля и скинов (раздают user/storys-микросервисы).
export const FOLDER_PROFILE = USER_addres + '/assets/profile/';
export const FOLDER_STORYS  = STORYS_addres + '/assets/skin/';
