@extends('portal.layout') @section('title', 'Location Comparison') @section('content')
@include('portal.partials.report-sidebar', ['report' => $report])
Location Intelligence

Multi-Location Comparison

Compare up to 5 feasibility reports side-by-side across 20+ parameters with AI-powered analysis.

@if(session('success'))
{{ session('success') }}
@endif {{-- Compare Form --}}
Select Reports to Compare
@csrf
Current report is automatically included. Add 1–4 more report IDs.
@for($i = 0; $i < 4; $i++) @endfor
{{-- Comparison Results --}} @if($comparisons->count()) @foreach($comparisons as $comp)
Comparison #{{ $comp->id }}
{{ $comp->created_at->format('M j, Y H:i') }} · {{ count($comp->locations ?? []) }} locations
{{-- Location Headers --}} @if($comp->locations && is_array($comp->locations))
@foreach($comp->locations as $loc) @endforeach @if($comp->parameters && is_array($comp->parameters)) @php $paramLabels = [ 'zone_type' => 'Zone Type', 'max_far' => 'Max FAR / FSI', 'max_height_m' => 'Max Height (m)', 'ground_coverage_pct' => 'Ground Coverage %', 'connectivity_score' => 'Connectivity Score', 'amenity_score' => 'Amenity Score', 'metro_proximity' => 'Metro Proximity', 'hospital_proximity' => 'Hospital Proximity', 'school_proximity' => 'School Proximity', 'highway_proximity' => 'Highway Proximity', 'airport_proximity' => 'Airport Proximity', 'avg_feasibility_score' => 'Avg Feasibility', 'avg_sale_rate' => 'Avg Sale Rate (₹/sqft)', 'report_density' => 'Nearby Reports', 'flood_risk' => 'Flood Risk', 'development_potential' => 'Development Potential', 'investment_score' => 'Investment Score', ]; $higherIsBetter = ['max_far','max_height_m','ground_coverage_pct','connectivity_score','amenity_score', 'metro_proximity','hospital_proximity','school_proximity','highway_proximity','airport_proximity', 'avg_feasibility_score','avg_sale_rate','report_density','development_potential','investment_score']; $locCount = count($comp->locations ?? []); @endphp @foreach($paramLabels as $key => $label) @php $values = []; for ($li = 0; $li < $locCount; $li++) { $values[] = $comp->parameters[$li][$key] ?? null; } $bestIdx = -1; if (in_array($key, $higherIsBetter)) { $numericVals = array_map(fn($v) => is_numeric($v) ? (float)$v : -1, $values); $bestIdx = array_keys($numericVals, max($numericVals))[0] ?? -1; } @endphp @foreach($values as $vi => $val) @php $isBest = $bestIdx === $vi && $bestIdx >= 0; @endphp @endforeach @endforeach @endif
Parameter {{ Str::limit($loc['address'] ?? "Report #{$loc['report_id']}", 25) }}
{{ $label }} {{ is_numeric($val) ? number_format($val, 2) : ($val ?? '—') }} @if($isBest) ★ @endif
@endif {{-- AI Analysis --}} @if($comp->ai_analysis && is_array($comp->ai_analysis))
AI Recommendation
@if(!empty($comp->ai_analysis['recommendation']))
{{ $comp->ai_analysis['recommendation'] }}
@endif @if(!empty($comp->ai_analysis['overall_ranking']) && is_array($comp->ai_analysis['overall_ranking']))
Overall Ranking
@foreach($comp->ai_analysis['overall_ranking'] as $ri => $rank)
#{{ $ri + 1 }} {{ $rank['address'] ?? 'Location' }} @if(isset($rank['score'])) ({{ $rank['score'] }}) @endif
@endforeach
@endif @if(!empty($comp->ai_analysis['comparative_advantages']) && is_array($comp->ai_analysis['comparative_advantages']))
Comparative Advantages
    @foreach($comp->ai_analysis['comparative_advantages'] as $adv)
  • {{ is_array($adv) ? ($adv['location'] ?? '').': '.($adv['advantage'] ?? json_encode($adv)) : $adv }}
  • @endforeach
@endif @if(!empty($comp->ai_analysis['risks']) && is_array($comp->ai_analysis['risks']))
Risks
    @foreach($comp->ai_analysis['risks'] as $risk)
  • {{ is_array($risk) ? ($risk['location'] ?? '').': '.($risk['risk'] ?? json_encode($risk)) : $risk }}
  • @endforeach
@endif
@endif
@endforeach @else
No Comparisons Yet
Enter report IDs above to compare multiple locations.
@endif
@endsection