47 lines
1.9 KiB
PHP
47 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace Database\Factories;
|
|
|
|
use App\Models\City;
|
|
use App\Models\WeatherData;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
|
|
/**
|
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\WeatherData>
|
|
*/
|
|
class WeatherDataFactory extends Factory
|
|
{
|
|
/**
|
|
* Define the model's default state.
|
|
*
|
|
* @return array<string, mixed>
|
|
*/
|
|
|
|
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)
|
|
];
|
|
}
|
|
}
|