ein paar feature aber datenbank macht probleme wenn man aufträge speichern möchge
This commit is contained in:
2026-04-05 12:47:57 +02:00
parent e1d4bb7edf
commit 9ddce354c0
32 changed files with 3931 additions and 612 deletions

79
appwrite_config.dart Normal file
View File

@@ -0,0 +1,79 @@
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);