96 lines
3.0 KiB
PHP
96 lines
3.0 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Api;
|
|
|
|
Route::get('/', function () {
|
|
|
|
$regionPropertyCapacities = Api::regionPropertyCapacities(-1);
|
|
$propertiesGrowth = Api::propertiesGrowth();
|
|
$propsPerRegion = Api::propertiesPerRegion();
|
|
$propsPerRegionName = [];
|
|
$propsPerRegionCounts = [];
|
|
|
|
foreach ($propsPerRegion as $el) {
|
|
$propsPerRegionName[] = $el['name'];
|
|
$propsPerRegionCounts[] = $el['count_properties'];
|
|
}
|
|
|
|
$propertiesGeo = Api::propertiesGeo();
|
|
|
|
return view('overview', ["regionPropertiesCapacities" => $regionPropertyCapacities, "geo" => $propertiesGeo, "growth" => $propertiesGrowth, "propsPerRegion" => [json_encode($propsPerRegionName), json_encode($propsPerRegionCounts)]]);
|
|
});
|
|
|
|
Route::get('/prop/{id}', function (int $id) {
|
|
|
|
$propertyBase = Api::propertyBase($id);
|
|
$calendars = Api::propertyExtractions($id);
|
|
$propertyCapacities = Api::propertyCapacities($id);
|
|
$propertyNeighbours = Api::propertyNeighbours($id);
|
|
$regionCapacitiesRegion = Api::regionCapacities($propertyBase[0]['region_id']);
|
|
$regionCapacitiesAll = Api::regionCapacities(-1);
|
|
$regionCapacities = [[],[]];
|
|
|
|
$propertyCapacitiesMonthly = [];
|
|
$propertyCapacitiesDaily = [];
|
|
|
|
foreach ($propertyCapacities['dates'] as $date) {
|
|
$propertyCapacitiesMonthly[] = Api::propertyCapacitiesMonthly($id, $date);
|
|
$propertyCapacitiesDaily[] = Api::propertyCapacitiesDaily($id, $date);
|
|
}
|
|
|
|
// filter out all date, which were not scraped for the property
|
|
foreach ($regionCapacitiesAll['dates'] as $index => $date) {
|
|
if(in_array($date, $propertyCapacities['dates'])){
|
|
$regionCapacities[0][] = $regionCapacitiesAll['capacities'][$index];
|
|
}
|
|
}
|
|
|
|
foreach ($regionCapacitiesRegion['dates'] as $index => $date) {
|
|
if(in_array($date, $propertyCapacities['dates'])){
|
|
$regionCapacities[1][] = $regionCapacitiesRegion['capacities'][$index];
|
|
}
|
|
}
|
|
|
|
// prepare data for calendar chart
|
|
$data = [];
|
|
$dates = [];
|
|
|
|
foreach ($calendars as $el) {
|
|
|
|
$series = [];
|
|
$calendar = json_decode($el['calendar'], 1);
|
|
|
|
foreach ($calendar as $date => $status) {
|
|
$series[] = [$date, $status];
|
|
}
|
|
|
|
$data[] = $series;
|
|
|
|
}
|
|
|
|
return view('property', [
|
|
'base' => $propertyBase[0],
|
|
'extractiondates' => json_encode($propertyCapacities['dates']),
|
|
'calendar' => $data,
|
|
'propertyCapacities' => $propertyCapacities,
|
|
'capacitiesMonthly' => $propertyCapacitiesMonthly,
|
|
'capacitiesDaily' => $propertyCapacitiesDaily,
|
|
'regionCapacities' => $regionCapacities,
|
|
'neighbours' => $propertyNeighbours
|
|
]);
|
|
|
|
});
|
|
|
|
|
|
Route::get('/region/{id}', function (int $id) {
|
|
|
|
$regionCapacitiesRegion = Api::regionCapacities($id);
|
|
$regionCapacitiesAll = Api::regionCapacities(-1);
|
|
$regionCapacities = [$regionCapacitiesAll, $regionCapacitiesRegion];
|
|
|
|
return view('region', ['regionCapacities' => $regionCapacities]);
|
|
|
|
|
|
});
|