*/ class WeatherDataFactory extends Factory { /** * Define the model's default state. * * @return array */ protected $model = WeatherData::class; public function definition() { $weatherDescriptionIconCollection = collect([ 'Partly cloudy' => 'https://assets.weatherstack.com/images/wsymbols01_png_64/wsymbol_0002_sunny_intervals.png', 'Sunny' => 'https://assets.weatherstack.com/images/wsymbols01_png_64/wsymbol_0001_sunny.png', 'Light Rain' => 'https://assets.weatherstack.com/images/wsymbols01_png_64/wsymbol_0017_cloudy_with_light_rain.png', 'Mist' => 'https://assets.weatherstack.com/images/wsymbols01_png_64/wsymbol_0006_mist.png', 'Clear' => 'https://assets.weatherstack.com/images/wsymbols01_png_64/wsymbol_0008_clear_sky_night.png', 'Heavy Rain at Night' => 'https://assets.weatherstack.com/images/wsymbols01_png_64/wsymbol_0034_cloudy_with_heavy_rain_night.png' ]); $weatherDescription = fake()->randomElement($weatherDescriptionIconCollection->keys()); $weatherIcon = $weatherDescriptionIconCollection->get($weatherDescription); return [ 'city_id' => City::factory(), 'current_temperature' => fake()->numberBetween(-20, 40), 'weather_icon' => $weatherIcon, 'weather_description' => $weatherDescription, 'wind_speed' => fake()->numberBetween(0, 200), 'wind_dir' => fake()->randomElement(['N', 'E', 'S', 'W', 'NE', 'SE', 'SW', 'NW', 'NNE', 'ENE', 'ESE', 'SSE', 'SSW', 'WSW', 'WNW', 'NNW']), 'localtime_epoch' => fake()->numberBetween(1600000000, 1660972200) ]; } }