M0: scaffold solution, EF+Timescale schema, /healthz

Five-project Clean Architecture solution (Core/Infrastructure/App + Core.Tests/
Integration.Tests) on .NET 10 with central package management, snake_case EF mapping,
and shared build/style config.

- Full domain entity set + EF DbContext for the SDD §5.3 schema (singular table names).
- InitialSchema migration (relational) + TimescaleHypertables migration (raw SQL:
  create_hypertable + compression on reading, hypertable on consumption).
- App wiring: Serilog (actually wired, unlike MQTTower), DbContext, migrate-on-startup,
  /healthz. Serves plain HTTP behind a reverse proxy (no HTTPS redirect).
- deploy/Dockerfile (2-stage, ICU-capable) + docker-compose (app + timescaledb).
- Integration.Tests: shared TimescaleFixture (Testcontainers) — migrations, hypertables,
  compression policy, and /healthz all verified green (4/4).

Claude-Session: https://claude.ai/code/session_01WujdMtMJPbxDpDnMeK22rr
This commit is contained in:
2026-07-13 11:02:21 +02:00
commit 48a7f5a825
65 changed files with 5896 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
# .NET build output
bin/
obj/
[Dd]ebug/
[Rr]elease/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
artifacts/
publish/
*.user
*.userosscache
*.suo
*.dll
*.exe
*.pdb
# Rider / VS / VS Code
.idea/
.vs/
*.sln.iml
# Test / coverage
[Tt]est[Rr]esult*/
coverage*.json
coverage*.xml
coverage*.cobertura.xml
*.trx
# NuGet
*.nupkg
*.snupkg
.nuget/
packages/
# Environment / secrets (never commit)
.env
.env.*
*.env
appsettings.*.Local.json
secrets.json
# OS
.DS_Store
Thumbs.db