feat: implement comprehensive Firebase Functions backend for equipment management and migrate core repository services

This commit is contained in:
ElPoyo
2026-05-26 15:35:48 +02:00
parent 323df01afe
commit ea1e1335e3
37 changed files with 6315 additions and 6140 deletions
@@ -171,20 +171,37 @@ class EventAvailabilityService {
for (var conflictData in containerConflicts) {
final conflict = conflictData as Map<String, dynamic>;
final eventId = conflict['eventId'] as String;
final eventDoc = await _dataService.getEvents();
final eventData = (eventDoc['events'] as List<dynamic>).firstWhere((e) => e['id'] == eventId, orElse: () => null);
if (eventData != null) {
final event = EventModel.fromMap(eventData as Map<String, dynamic>, eventId);
conflicts.add(AvailabilityConflict(
equipmentId: container.id,
equipmentName: container.name,
conflictingEvent: event,
overlapDays: conflict['overlapDays'] as int? ?? 0,
type: ConflictType.containerFullyUsed,
containerId: container.id,
containerName: container.name,
));
}
final eventName = conflict['eventName'] as String? ?? '';
final startDateStr = conflict['startDate'] as String?;
final endDateStr = conflict['endDate'] as String?;
final event = EventModel(
id: eventId,
name: eventName,
description: '',
startDateTime: startDateStr != null ? DateTime.tryParse(startDateStr) ?? DateTime.now() : DateTime.now(),
endDateTime: endDateStr != null ? DateTime.tryParse(endDateStr) ?? DateTime.now() : DateTime.now(),
basePrice: 0.0,
installationTime: 0,
disassemblyTime: 0,
eventTypeId: '',
customerId: '',
address: '',
latitude: 0.0,
longitude: 0.0,
workforce: const [],
documents: const [],
);
conflicts.add(AvailabilityConflict(
equipmentId: container.id,
equipmentName: container.name,
conflictingEvent: event,
overlapDays: conflict['overlapDays'] as int? ?? 0,
type: ConflictType.containerFullyUsed,
containerId: container.id,
containerName: container.name,
));
}
}
}