simulacion de estados y flujo de notificacion, modificacion de estilos en todas las vistas
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
import '../../../core/network/api_client.dart';
|
||||
import '../models/admin_driver.dart';
|
||||
import '../models/admin_incident.dart';
|
||||
import '../models/admin_route.dart';
|
||||
import '../models/admin_unit.dart';
|
||||
import '../models/admin_user.dart';
|
||||
@@ -188,4 +189,42 @@ class AdminService {
|
||||
Future<void> deleteDriver(String id) async {
|
||||
await _dio.delete<void>('/admin/drivers/$id');
|
||||
}
|
||||
|
||||
// ── Incidents ────────────────────────────────────────────────────────────────
|
||||
Future<List<AdminIncidentModel>> listIncidentsByUnit(int unitId) async {
|
||||
final res = await _dio.get<List<dynamic>>('/admin/units/$unitId/incidents');
|
||||
return (res.data ?? [])
|
||||
.whereType<Map>()
|
||||
.map((e) => AdminIncidentModel.fromJson(Map<String, dynamic>.from(e)))
|
||||
.toList();
|
||||
}
|
||||
|
||||
Future<AdminIncidentModel> createIncident({
|
||||
required int unitId,
|
||||
required String type,
|
||||
String? description,
|
||||
}) async {
|
||||
final res = await _dio.post<Map<String, dynamic>>(
|
||||
'/admin/units/$unitId/incidents',
|
||||
data: {
|
||||
'unit_id': unitId,
|
||||
'type': type,
|
||||
if (description != null && description.isNotEmpty)
|
||||
'description': description,
|
||||
},
|
||||
);
|
||||
return AdminIncidentModel.fromJson(res.data!);
|
||||
}
|
||||
|
||||
// ── Simulación ──────────────────────────────────────────────────────────────
|
||||
/// Avanza una vez la simulación (`positionId += 1` en todas las rutas) y
|
||||
/// dispara los push FCM correspondientes. Devuelve los eventos disparados.
|
||||
Future<List<Map<String, dynamic>>> simulationTick() async {
|
||||
final res = await _dio.post<Map<String, dynamic>>('/simulation/tick');
|
||||
final events = (res.data?['events'] as List?) ?? const [];
|
||||
return events
|
||||
.whereType<Map>()
|
||||
.map((e) => Map<String, dynamic>.from(e))
|
||||
.toList();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user