Сначала источник, потом интерпретация
Сообщение не превращается в карточку напрямую. Детерминированный импорт классифицирует его, извлекает поля, связывает повторные публикации и только затем создаёт конкретную тренировку.
Каталог строится из пользовательской авторизованной выгрузки. Он сохраняет происхождение каждого результата, ведёт к контакту через исходный пост и не подменяет отсутствующие поля предположениями.
Сообщение не превращается в карточку напрямую. Детерминированный импорт классифицирует его, извлекает поля, связывает повторные публикации и только затем создаёт конкретную тренировку.
Обычно в них не распознана цена или конфликтуют дата и день недели. Такие карточки помечаются, но значение не выдумывается.
Реестр объединяет 1 328 исходных вариантов названия и адреса в 111 площадок. Неоднозначные варианты не склеиваются автоматически и остаются в очереди проверки.
Открыть реестр площадок →Пробная, разовая и абонементная стоимость разделяются. Если тип цены неясен, карточка остаётся в выдаче с честной пометкой.
История объединяется по внутреннему контактному признаку и получает локальный непрозрачный ID. Для связи кнопка открывает исходный Telegram-пост. Username появится только после подтверждения профиля и согласия организатора.