Files
EM2_ERP/em2rp/lib/models/depot_model.dart
T
ElPoyo e14b333a67 feat: calculateur de frais de déplacement - backend et modèles Flutter
- Cloud Function travel.js : autocomplete Google Places + calcul itinéraires
  via Google Routes API avec péages Ulys /legs (precision=6) + /rate
- Modèles : VehicleModel, DepotModel, RouteResultModel + FuelPrices
- Services : VehicleService, TravelService (Firestore CRUD + API calls)
- Gestion des données : 3 nouveaux onglets (Dépôts, Véhicules, Prix carburants)
- Autocomplétion adresse dans le formulaire événement
- Dialog calcul frais : config + carte flutter_map OSM + sélection itinéraire
- Injection option FRAIS_KM dans l'événement à la sélection
- flutter_map 7.0.2 + latlong2 0.9.1 ajoutés
- npm: csv-parser + @mapbox/polyline installés dans functions
2026-06-04 14:28:22 +02:00

50 lines
1.2 KiB
Dart

import 'package:cloud_firestore/cloud_firestore.dart';
class DepotModel {
final String id;
final String name;
final String address;
final DateTime? createdAt;
const DepotModel({
required this.id,
required this.name,
required this.address,
this.createdAt,
});
factory DepotModel.fromMap(Map<String, dynamic> map, String id) {
return DepotModel(
id: id,
name: (map['name'] ?? '').toString(),
address: (map['address'] ?? '').toString(),
createdAt: map['createdAt'] is Timestamp
? (map['createdAt'] as Timestamp).toDate()
: null,
);
}
factory DepotModel.fromFirestore(DocumentSnapshot doc) {
return DepotModel.fromMap(doc.data() as Map<String, dynamic>, doc.id);
}
Map<String, dynamic> toMap() {
return {
'name': name,
'address': address,
'createdAt': createdAt != null
? Timestamp.fromDate(createdAt!)
: FieldValue.serverTimestamp(),
};
}
DepotModel copyWith({String? id, String? name, String? address}) {
return DepotModel(
id: id ?? this.id,
name: name ?? this.name,
address: address ?? this.address,
createdAt: createdAt,
);
}
}