package mx.trackermap.TrackerMap.client.models import kotlinx.serialization.Serializable @Serializable data class EventInformation( val event: Event, val position: Position?, val geofence: Geofence? ) { enum class Type { ALL, DEVICE_ONLINE, DEVICE_UNKNOWN, DEVICE_OFFLINE, DEVICE_INACTIVE, DEVICE_MOVING, DEVICE_STOPPED, DEVICE_OVERSPEED, DEVICE_FUEL_DROP, COMMAND_RESULT, GEOFENCE_ENTER, GEOFENCE_EXIT, ALARM, IGNITION_ON, IGNITION_OFF, MAINTENANCE, TEXT_MESSAGE, DRIVER_CHANGED, UNKNOWN } companion object { fun reportTypeToString(t: Type) = when (t) { Type.ALL -> "%" Type.DEVICE_ONLINE -> "deviceOnline" Type.DEVICE_UNKNOWN -> "deviceUnknown" Type.DEVICE_OFFLINE -> "deviceOffline" Type.DEVICE_INACTIVE -> "deviceInactive" Type.DEVICE_MOVING -> "deviceMoving" Type.DEVICE_STOPPED -> "deviceStopped" Type.DEVICE_OVERSPEED -> "deviceOverspeed" Type.DEVICE_FUEL_DROP -> "deviceFuelDrop" Type.COMMAND_RESULT -> "commandResult" Type.GEOFENCE_ENTER -> "geofenceEnter" Type.GEOFENCE_EXIT -> "geofenceExit" Type.ALARM -> "alarm" Type.IGNITION_ON -> "ignitionOn" Type.IGNITION_OFF -> "ignitionOff" Type.MAINTENANCE -> "maintenance" Type.TEXT_MESSAGE -> "textMessage" Type.DRIVER_CHANGED -> "driverChanged" Type.UNKNOWN -> "unknown" } fun reportTypesToStrings(t: List) = if (t.isEmpty() || t.contains(Type.ALL)) { listOf(reportTypeToString(Type.ALL)) } else { t.map(this::reportTypeToString) } fun stringToReportType(s: String) = when (s) { "deviceOnline" -> Type.DEVICE_ONLINE "deviceUnknown" -> Type.DEVICE_UNKNOWN "deviceOffline" -> Type.DEVICE_OFFLINE "deviceInactive" -> Type.DEVICE_INACTIVE "deviceMoving" -> Type.DEVICE_MOVING "deviceStopped" -> Type.DEVICE_STOPPED "deviceOverspeed" -> Type.DEVICE_OVERSPEED "deviceFuelDrop" -> Type.DEVICE_FUEL_DROP "commandResult" -> Type.COMMAND_RESULT "geofenceEnter" -> Type.GEOFENCE_ENTER "geofenceExit" -> Type.GEOFENCE_EXIT "alarm" -> Type.ALARM "ignitionOn" -> Type.IGNITION_ON "ignitionOff" -> Type.IGNITION_OFF "maintenance" -> Type.MAINTENANCE "textMessage" -> Type.TEXT_MESSAGE "driverChanged" -> Type.DRIVER_CHANGED "unknown" -> Type.UNKNOWN else -> Type.UNKNOWN } } }