<?php

namespace App\Livewire\Customers;

use App\Models\Customer;
use Livewire\Component;

class Show extends Component
{
    public Customer $customer;
    public $stats = [];

    public function mount(Customer $customer)
    {
        $this->customer = $customer->load([
            'user', 
            'vehicles.jobCards', 
            'serviceOrders.assignedTechnician', 
            'appointments'
        ]);

        $this->loadStats();
    }

    private function loadStats()
    {
        $this->stats = [
            'total_vehicles' => $this->customer->vehicles->count(),
            'total_service_orders' => $this->customer->serviceOrders->count(),
            'total_appointments' => $this->customer->appointments->count(),
            'active_job_cards' => $this->customer->vehicles->sum(function($vehicle) {
                return $vehicle->jobCards->where('status', '!=', 'completed')->count();
            }),
            'completed_services' => $this->customer->serviceOrders->where('status', 'completed')->count(),
            'total_spent' => $this->customer->serviceOrders->where('status', 'completed')->sum('total_amount'),
        ];
    }

    public function render()
    {
        return view('livewire.customers.show');
    }
}
