import 'package:cloud_firestore/cloud_firestore.dart'; /// Ein Datensatz = eine Rechnung / dokumentierter Auftrag (Fotos, Unterschrift, PDF). class Auftrag { Auftrag({ required this.id, required this.titel, required this.beschreibung, required this.kundenName, required this.kundenEmail, required this.rechnungsnummer, required this.betragText, required this.fotoUrls, required this.unterschriftUrl, required this.createdAt, }); final String id; final String titel; final String beschreibung; final String kundenName; final String kundenEmail; final String rechnungsnummer; final String betragText; final List fotoUrls; final String? unterschriftUrl; final DateTime? createdAt; bool get hasUnterschrift => unterschriftUrl != null && unterschriftUrl!.isNotEmpty; factory Auftrag.fromDoc(DocumentSnapshot> doc) { final d = doc.data() ?? {}; final fotos = d['fotoUrls']; return Auftrag( id: doc.id, titel: d['titel'] as String? ?? '', beschreibung: d['beschreibung'] as String? ?? '', kundenName: d['kundenName'] as String? ?? '', kundenEmail: d['kundenEmail'] as String? ?? '', rechnungsnummer: d['rechnungsnummer'] as String? ?? '', betragText: d['betragText'] as String? ?? '', fotoUrls: fotos is List ? fotos.map((e) => e.toString()).toList() : const [], unterschriftUrl: d['unterschriftUrl'] as String?, createdAt: (d['createdAt'] as Timestamp?)?.toDate(), ); } Map toMap() { return { 'titel': titel, 'beschreibung': beschreibung, 'kundenName': kundenName, 'kundenEmail': kundenEmail, 'rechnungsnummer': rechnungsnummer, 'betragText': betragText, 'fotoUrls': fotoUrls, 'unterschriftUrl': unterschriftUrl, 'updatedAt': FieldValue.serverTimestamp(), }; } }