simulacion de estados y flujo de notificacion, modificacion de estilos en todas las vistas
This commit is contained in:
67
recolecta_app/lib/features/admin/models/admin_incident.dart
Normal file
67
recolecta_app/lib/features/admin/models/admin_incident.dart
Normal file
@@ -0,0 +1,67 @@
|
||||
// lib/features/admin/models/admin_incident.dart
|
||||
|
||||
class AdminIncidentModel {
|
||||
final String id;
|
||||
final int unitId;
|
||||
final String? routeId;
|
||||
// Mapea a `incidents.category` en la base de datos.
|
||||
final String type;
|
||||
final String? description;
|
||||
final String? driverName;
|
||||
final String status; // open | in_review | resolved
|
||||
final String? photoUrl;
|
||||
final DateTime createdAt;
|
||||
|
||||
const AdminIncidentModel({
|
||||
required this.id,
|
||||
required this.unitId,
|
||||
this.routeId,
|
||||
required this.type,
|
||||
this.description,
|
||||
this.driverName,
|
||||
this.status = 'open',
|
||||
this.photoUrl,
|
||||
required this.createdAt,
|
||||
});
|
||||
|
||||
factory AdminIncidentModel.fromJson(Map<String, dynamic> json) =>
|
||||
AdminIncidentModel(
|
||||
// El id en DB es BIGSERIAL; el backend lo serializa como string,
|
||||
// pero por defensa aceptamos number también.
|
||||
id: json['id'].toString(),
|
||||
unitId: (json['unit_id'] as num).toInt(),
|
||||
routeId: json['route_id'] as String?,
|
||||
type: (json['type'] as String?) ?? 'otro',
|
||||
description: json['description'] as String?,
|
||||
driverName: json['driver_name'] as String?,
|
||||
status: (json['status'] as String?) ?? 'open',
|
||||
photoUrl: json['photo_url'] as String?,
|
||||
createdAt: DateTime.parse(json['created_at'] as String),
|
||||
);
|
||||
|
||||
String get typeLabel {
|
||||
switch (type) {
|
||||
case 'derrame':
|
||||
return 'Derrame';
|
||||
case 'dano_propiedad':
|
||||
return 'Daño a propiedad';
|
||||
case 'conducta':
|
||||
return 'Conducta';
|
||||
case 'no_recoleccion':
|
||||
return 'No recolección';
|
||||
default:
|
||||
return 'Otro';
|
||||
}
|
||||
}
|
||||
|
||||
String get statusLabel {
|
||||
switch (status) {
|
||||
case 'in_review':
|
||||
return 'En revisión';
|
||||
case 'resolved':
|
||||
return 'Resuelta';
|
||||
default:
|
||||
return 'Abierta';
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user