import 'package:appwrite/appwrite.dart'; import 'appwrite_local.dart'; /// Zentraler Appwrite-Client (Session-Cookies werden vom SDK verwaltet). /// /// **Wenn `database_not_found` trotz angelegter DB:** /// 1. In der Console **dieselbe Project-ID** wie in der App (Profil → Appwrite). /// 2. Unter Databases die **Database ID** kopieren (nicht nur den Namen) und in /// [lib/appwrite_local.dart] bei `kAppwriteDatabaseIdOverride` eintragen. /// 3. Oder per Build: `--dart-define=APPWRITE_DATABASE_ID=deine_id` /// /// **Console-Setup (einmalig):** /// Optional: Collection/Bucket per Skript – im Projektroot `.appwrite_api_key` /// (eine Zeile = Server-API-Key, siehe `.appwrite_api_key.example`), dann /// `./tool/run_appwrite_setup.sh` ausführen. /// 1. **Auth:** E-Mail/Passwort aktivieren. /// 2. **Plattformen:** Bundle-ID `com.example.handwerksapp` (macOS/iOS/Android) /// unter Settings → Platforms eintragen (sonst „Invalid Origin“). /// 3. **Database** mit ID wie in [kAppwriteDatabaseId] (oder Override in /// `appwrite_local.dart`). /// 4. **Collection** mit ID wie [kAppwriteCollectionId] — wegen Appwrite-1.8-Limit /// nur **zwei** String-Attribute: `userId` (required, Index) und `extendedJson` /// (JSON mit `v: 2`, kompletter Datensatz inkl. Fotos/Unterschrift; siehe /// [Auftrag.toMap] / [Auftrag.fromAppwriteDoc]). /// 5. **Storage-Bucket** mit ID [kAppwriteBucketId]. const String kAppwriteEndpoint = String.fromEnvironment( 'APPWRITE_ENDPOINT', defaultValue: 'https://appwrite.webklar.com/v1', ); const String _projectIdEnv = String.fromEnvironment( 'APPWRITE_PROJECT_ID', defaultValue: '', ); const String _databaseIdEnv = String.fromEnvironment( 'APPWRITE_DATABASE_ID', defaultValue: '', ); const String _collectionIdEnv = String.fromEnvironment( 'APPWRITE_COLLECTION_ID', defaultValue: '', ); const String _bucketIdEnv = String.fromEnvironment( 'APPWRITE_BUCKET_ID', defaultValue: '', ); String get kAppwriteProjectId { final o = kAppwriteProjectIdOverride.trim(); if (o.isNotEmpty) return o; if (_projectIdEnv.isNotEmpty) return _projectIdEnv; return '69cd3e77002e40f90f00'; } String get kAppwriteDatabaseId { final o = kAppwriteDatabaseIdOverride.trim(); if (o.isNotEmpty) return o; if (_databaseIdEnv.isNotEmpty) return _databaseIdEnv; return 'handwerksapp_db'; } String get kAppwriteCollectionId { final o = kAppwriteCollectionIdOverride.trim(); if (o.isNotEmpty) return o; if (_collectionIdEnv.isNotEmpty) return _collectionIdEnv; return 'rechnungen'; } String get kAppwriteBucketId { final o = kAppwriteBucketIdOverride.trim(); if (o.isNotEmpty) return o; if (_bucketIdEnv.isNotEmpty) return _bucketIdEnv; return 'rechnung_dateien'; } final Client appwriteClient = Client() ..setEndpoint(kAppwriteEndpoint) ..setProject(kAppwriteProjectId);