diff --git a/docs/02-architecture.md b/docs/02-architecture.md index ed0c83f..5992357 100644 --- a/docs/02-architecture.md +++ b/docs/02-architecture.md @@ -50,6 +50,8 @@ FastAPI endpointy pro dashboard a konfiguraci preferují **jedno volání** `select ems.fn_*(…)` vracející **jsonb** (pole řádků, agregace, merge locků), aby v Pythonu nezůstávaly ad-hoc `SELECT`/`JOIN`/`WITH`. Pomocník `app.db_json.fetch_json` vrací `dict`/`list`. Telemetrie a IO zůstávají v Pythonu; čisté agregace a sjednocení TZ patří do SQL. Opakované migrace: `db/routines/R__NNN_fn_*.sql`, `db/views/R__NNN_vw_*.sql` (prefix `NNN` = pořadí závislostí pro Flyway). +**Health, joby po aktivních lokalitách a Loxone po změně režimu** jsou v repeatable [`db/routines/R__073_fn_health_site_jobs_mode_bundle.sql`](../db/routines/R__073_fn_health_site_jobs_mode_bundle.sql): `fn_health_summary`, `fn_health_detailed_db`, `fn_vw_site_directory_active`, `fn_site_economics_yesterday_notification`, `fn_site_mode_loxone_bundle`. FastAPI je rozdělené: [`backend/app/main.py`](../backend/app/main.py) (routery, CORS, WebSockety, health, `POST …/mode`) a [`backend/app/lifespan.py`](../backend/app/lifespan.py) (DB pool, APScheduler joby, telemetrická smyčka). + ## Komponenty | Komponenta | Technologie | Port | Popis | @@ -81,6 +83,7 @@ ems-platform/ R__005_fn_cop_estimate.sql R__011_fn_effective_price.sql R__019_fn_fill_audit_interval.sql + R__073_fn_health_site_jobs_mode_bundle.sql (historicky) R__fn_plan_day.sql – primární plánování je PuLP v Pythonu R__fn_create_planning_run.sql views/ @@ -96,9 +99,14 @@ ems-platform/ Dockerfile requirements.txt app/ - main.py ← FastAPI app + scheduler setup + main.py ← FastAPI app, routery, health, změna režimu + lifespan.py ← lifespan: pool, APScheduler, telemetry task + refresh_negative_prices.py ← sdílený hook po importu cen / forecastu + routers/ + sites.py ← /api/v1/sites (ceny, control, forecast) + me.py ← /api/v1/me/sites config.py ← settings z env - database.py ← asyncpg connection pool + database.py ← asyncpg (alternativní / legacy helper) services/ telemetry_collector.py price_importer.py