class UnitOption { final int id; final String? plate; final String? status; const UnitOption({required this.id, this.plate, this.status}); factory UnitOption.fromJson(Map json) => UnitOption( id: json['id'] as int, plate: json['plate'] as String?, status: json['status'] as String?, ); String get label => plate != null && plate!.isNotEmpty ? 'Unidad $id · $plate' : 'Unidad $id'; } class IncidentReport { final int id; final String userId; final int? unitId; final String category; final String description; final String? photoUrl; final String status; final String? createdAt; const IncidentReport({ required this.id, required this.userId, this.unitId, required this.category, required this.description, this.photoUrl, required this.status, this.createdAt, }); factory IncidentReport.fromJson(Map json) => IncidentReport( id: json['id'] as int, userId: json['user_id'] as String, unitId: json['unit_id'] as int?, category: json['category'] as String, description: json['description'] as String, photoUrl: json['photo_url'] as String?, status: (json['status'] as String?) ?? 'open', createdAt: json['created_at'] as String?, ); } const incidentCategories = { 'derrame': 'Derrame de residuos', 'dano_propiedad': 'Daño a propiedad', 'conducta': 'Conducta inadecuada', 'no_recoleccion': 'No pasó el camión', 'otro': 'Otro', };