tune documentation
Some checks failed
CI and deploy / migration-check (push) Failing after 18s
CI and deploy / deploy (push) Has been skipped

This commit is contained in:
Dusan Vojacek
2026-04-19 20:46:29 +02:00
parent 014c6f193b
commit e33207f3fa

View File

@@ -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