80 lines
2.8 KiB
Dart
80 lines
2.8 KiB
Dart
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);
|