⚙️ Weather Data Management

Monitor and manage comprehensive weather data collection

@if(session('success'))
✅ {{ session('success') }}
@endif @if(session('error'))
❌ {{ session('error') }}
@endif

🌐 Open-Meteo API Status

{{ ucfirst($apiStatus['open_meteo']) }}

@if($apiStatus['open_meteo'] === 'connected') ✅ API is responding normally @else ❌ API connection failed @endif

📊 Database Statistics

Total Records: {{ number_format($dbStats['total_records']) }}

@if($dbStats['latest_record'])

Latest: {{ $dbStats['latest_record']->recorded_at->format('M j, Y g:i A') }}

@endif @if($dbStats['oldest_record'])

Oldest: {{ $dbStats['oldest_record']->recorded_at->format('M j, Y') }}

@endif

📈 Data Coverage

@if($apiStatus['last_collection'])

Last Collection:
{{ $apiStatus['last_collection']->diffForHumans() }}

@endif @if($dbStats['latest_record'])

Data Freshness:
{{ $dbStats['latest_record']->recorded_at->diffForHumans() }}

@endif

📋 Data Quality Breakdown

@foreach($dbStats['data_quality'] as $quality) @endforeach
Data Quality Record Count Percentage
{{ ucfirst($quality->data_quality) }} {{ number_format($quality->count) }} {{ round(($quality->count / $dbStats['total_records']) * 100, 1) }}%

🔗 Data Sources

@foreach($dbStats['sources'] as $source)
{{ ucfirst($source->source) }}
@endforeach

🔧 Manual Data Collection

Manually trigger weather data collection or backfill historical data.

@csrf

📖 Automated Collection Setup

For automated data collection, add these commands to your server's cron:

# Collect weather data every hour
0 * * * * cd /path/to/your/project && php artisan weather:collect
# Optional: Weekly historical gap filling
0 2 * * 0 cd /path/to/your/project && php artisan weather:backfill --years=1
💡 Tip: The system automatically prevents duplicate records, so it's safe to run collection commands frequently.
← Weather Dashboard 📊 Historical Analysis 🏠 Operations