/// Endpoint-Konfiguration für das Rust-Backend. /// /// Dies ist eine Übergangs-Konfiguration für Phase A der /// Backend-Migration. Sie wird in Phase D durch eine umfassendere /// `LocalDocuFrameConfiguration`-Ablösung ersetzt (oder die bestehende /// Konfiguration wird erweitert). /// /// **Werte für lokale Entwicklung:** /// * iOS-Simulator + macOS-Host: `http://127.0.0.1:3000` /// * Android-Emulator: `http://10.0.2.2:3000` /// * Echtes Gerät im LAN: `http://:3000` /// /// Default ist iOS-Simulator-tauglich. Für Android-Build vor dem /// Compile umstellen — eine Auto-Erkennung pro Platform kommt mit der /// Phase-D-Config. class BackendConfig { const BackendConfig({ required this.apiBaseUrl, required this.keycloakTokenEndpoint, required this.keycloakClientId, }); /// Basis-URL der Rust-API (kein abschließender Slash). final String apiBaseUrl; /// Vollständiger Token-Endpoint des Keycloak-Realms — Format: /// `{issuer}/protocol/openid-connect/token`. final String keycloakTokenEndpoint; /// Public-Client-Id, die das Backend als `audience` erwartet /// (aktuell `holzleitner-app`). final String keycloakClientId; /// Default-Konfiguration für lokale Entwicklung gegen das /// Docker-Compose-Setup (Postgres + Keycloak + Backend). /// /// **Achtung Hostname:** Keycloak prägt das `iss`-Claim des Tokens /// aus dem Hostnamen der Token-Endpoint-URL. Das Backend erwartet /// `iss = http://localhost:8080/realms/holzleitner`, deshalb hier /// `localhost` statt `127.0.0.1`. Auf Android-Emulator entsprechend /// `10.0.2.2` setzen. static const BackendConfig localDev = BackendConfig( apiBaseUrl: 'http://localhost:3000', keycloakTokenEndpoint: 'http://localhost:8080/realms/holzleitner/protocol/openid-connect/token', keycloakClientId: 'holzleitner-app', ); }