package com.rizoma.orbita.data /** Familias de cielo en las que agrupamos los códigos WMO de Open-Meteo. */ enum class Sky { CLEAR, CLOUDY, OVERCAST, FOG, RAIN, SNOW, STORM } /** * Estado del clima local en este instante. [code] es el código WMO * (https://open-meteo.com/en/docs) del que derivamos la familia de [sky]. */ data class Weather( val code: Int, val temperatureC: Float, val isDay: Boolean, ) { val sky: Sky get() = when (code) { 0, 1 -> Sky.CLEAR 2 -> Sky.CLOUDY 3 -> Sky.OVERCAST 45, 48 -> Sky.FOG 51, 53, 55, 56, 57, 61, 63, 65, 66, 67, 80, 81, 82 -> Sky.RAIN 71, 73, 75, 77, 85, 86 -> Sky.SNOW 95, 96, 99 -> Sky.STORM else -> Sky.CLOUDY } }