Ajout du choix des utilisateurs sur un événement. Ajout de fichiers dans un événement. (dropzone cassée)
This commit is contained in:
		| @@ -12,8 +12,11 @@ class EventModel { | ||||
|   final int disassemblyTime; | ||||
|   final String eventTypeId; | ||||
|   final String customerId; | ||||
|   final LatLng address; | ||||
|   final List<String> workforce; | ||||
|   final String address; | ||||
|   final double latitude; | ||||
|   final double longitude; | ||||
|   final List<DocumentReference> workforce; | ||||
|   final List<Map<String, String>> documents; | ||||
|  | ||||
|   EventModel({ | ||||
|     required this.id, | ||||
| @@ -27,15 +30,31 @@ class EventModel { | ||||
|     required this.eventTypeId, | ||||
|     required this.customerId, | ||||
|     required this.address, | ||||
|     required this.latitude, | ||||
|     required this.longitude, | ||||
|     required this.workforce, | ||||
|     required this.documents, | ||||
|   }); | ||||
|  | ||||
|   factory EventModel.fromMap(Map<String, dynamic> map, String id) { | ||||
|     final GeoPoint? geoPoint = map['Address'] as GeoPoint?; | ||||
|     final List<dynamic> workforceRefs = map['workforce'] ?? []; | ||||
|     final Timestamp? startTimestamp = map['StartDateTime'] as Timestamp?; | ||||
|     final Timestamp? endTimestamp = map['EndDateTime'] as Timestamp?; | ||||
|  | ||||
|     final docsRaw = map['documents'] ?? []; | ||||
|     final docs = docsRaw is List | ||||
|         ? docsRaw.map<Map<String, String>>((e) { | ||||
|             if (e is Map) { | ||||
|               return Map<String, String>.from(e as Map); | ||||
|             } else if (e is String) { | ||||
|               final fileName = | ||||
|                   Uri.decodeComponent(e.split('/').last.split('?').first); | ||||
|               return {'name': fileName, 'url': e}; | ||||
|             } else { | ||||
|               return {}; | ||||
|             } | ||||
|           }).toList() | ||||
|         : <Map<String, String>>[]; | ||||
|     return EventModel( | ||||
|       id: id, | ||||
|       name: map['Name'] ?? '', | ||||
| @@ -52,15 +71,11 @@ class EventModel { | ||||
|       customerId: map['customer'] is DocumentReference | ||||
|           ? (map['customer'] as DocumentReference).id | ||||
|           : '', | ||||
|       address: geoPoint != null | ||||
|           ? LatLng(geoPoint.latitude, geoPoint.longitude) | ||||
|           : const LatLng(0, 0), | ||||
|       workforce: workforceRefs.map((ref) { | ||||
|         if (ref is DocumentReference) { | ||||
|           return ref.id; | ||||
|         } | ||||
|         return ref.toString(); | ||||
|       }).toList(), | ||||
|       address: map['Address'] ?? '', | ||||
|       latitude: (map['Latitude'] ?? 0.0).toDouble(), | ||||
|       longitude: (map['Longitude'] ?? 0.0).toDouble(), | ||||
|       workforce: workforceRefs.whereType<DocumentReference>().toList(), | ||||
|       documents: docs, | ||||
|     ); | ||||
|   } | ||||
|  | ||||
| @@ -75,8 +90,12 @@ class EventModel { | ||||
|       'DisassemblyTime': disassemblyTime, | ||||
|       'EventType': eventTypeId, | ||||
|       'customer': customerId, | ||||
|       'Address': GeoPoint(address.latitude, address.longitude), | ||||
|       'Address': address, | ||||
|       'Position': GeoPoint(latitude, longitude), | ||||
|       'Latitude': latitude, | ||||
|       'Longitude': longitude, | ||||
|       'workforce': workforce, | ||||
|       'documents': documents, | ||||
|     }; | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user