🏨 A-Hub — Hotel Aggregator

75% готовность
FastAPI-бэкенд агрегации цен на отели от 25+ DMC через 4 типа API (XMLGate, Unihotel, Sejour SOAP, Sedna REST). Нормализация данных, master-маппинг 10K отелей, единый поисковый API. PostgreSQL 16 с потоковой репликацией, 65M+ записей.
FastAPI SQLAlchemy AsyncPG PostgreSQL 16 React 19 Vite Sentry Nginx
44
Коммитов
45 500
Строк кода
25/27
DMC активных
115+
API endpoints
65M+
Записей в БД
CRITICAL: Пароли DMC захардкожены в config.py Все 25 DMC credentials в исходниках (329 строк). Необходимо вынести в .env
CRITICAL: M2 показывает цены на 10-40% ниже реальных Баг SPO discount calculator (24K строк). Фаза 1/5 fix plan завершена. Рекомендация: использовать Legacy v1
🎯 Радар EPICs
📊 Прогресс по EPICs
🔌 DMC Интеграции
25 активных / 2 отключены
# DMC Тип API Направления Статус
📋 Задачи A-Hub
⛔ CRITICAL
Вынести credentials из config.py в .envCRITICAL
🔶 HIGH
Docker / docker-composeHIGH
CI/CD pipelineHIGH
Unit тесты PriceSearchService + DMC клиентовHIGH
Индексация БД для M2 запросовHIGH
V2 Cleanup: верификация всех endpointsHIGH
🟡 MEDIUM
Активировать Replica 2 (10.10.0.6)
SQL optimization plan — реализовать все пункты
Удалить 11 legacy API роутеров
Удалить deprecated SAMO клиенты
Обновить фронтенд для API v2
Multi-room UI на фронтенде
Deployment guide
Запросить whitelist IP у Arri
⚪ LOW
Учёт валюты в SAMO ценах (hardcoded float)
Авторизация для стандартного SAMO API
README.md в корне проекта
🖥️ Серверы (GCP europe-west3)
СерверIPРоль
ahub-api10.10.0.4FastAPI backend, порт 8888
ahub-db10.10.0.3PostgreSQL Primary (write)
ahub-db-replica110.10.0.5Read Replica 1 ✅
ahub-db-replica210.10.0.6Read Replica 2 ⏸️ не активна
🗄️ База данных
ТаблицаОбъёмОписание
hotel_prices~37MЦены от XMLGate/Unihotel DMC
sedna_prices~470KЦены от Sedna DMC
sejour_pricesЦены от Sejour DMC
master_hotels~10KЕдиный справочник отелей
master_hotel_dmc_mapping~28KМаппинг DMC → master