eigentliche Handwerksapp
This commit is contained in:
64
models/auftrag.dart
Normal file
64
models/auftrag.dart
Normal file
@@ -0,0 +1,64 @@
|
||||
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<String> fotoUrls;
|
||||
final String? unterschriftUrl;
|
||||
final DateTime? createdAt;
|
||||
|
||||
bool get hasUnterschrift =>
|
||||
unterschriftUrl != null && unterschriftUrl!.isNotEmpty;
|
||||
|
||||
factory Auftrag.fromDoc(DocumentSnapshot<Map<String, dynamic>> 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 <String>[],
|
||||
unterschriftUrl: d['unterschriftUrl'] as String?,
|
||||
createdAt: (d['createdAt'] as Timestamp?)?.toDate(),
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> toMap() {
|
||||
return {
|
||||
'titel': titel,
|
||||
'beschreibung': beschreibung,
|
||||
'kundenName': kundenName,
|
||||
'kundenEmail': kundenEmail,
|
||||
'rechnungsnummer': rechnungsnummer,
|
||||
'betragText': betragText,
|
||||
'fotoUrls': fotoUrls,
|
||||
'unterschriftUrl': unterschriftUrl,
|
||||
'updatedAt': FieldValue.serverTimestamp(),
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user