HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/dashboard.orbiwheels.com/app/Http/Resources/TransporterBookingDetailsResource.php
<?php

namespace App\Http\Resources;

use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;

class TransporterBookingDetailsResource extends JsonResource
{
    public function toArray($request)
    {
        $rides = $this->rides ?? collect([]);

        $totalRides = $rides->count();
        $uniqueDays = $rides->pluck('ride_date')->unique()->count();

        $baseFare   = (float) $rides->sum('fare'); 
        $commission = (float) $this->commission_per_km;
        $gst        = (float) $this->gst_on_commission;
        $taxes      = $commission + $gst;
        $total      = (float) $this->total_customer_amount;

        $firstRide = $rides->first();
        $lastRide  = $rides->last();

        $customerName = trim(($this->customer->first_name ?? '') . ' ' . ($this->customer->last_name ?? ''));

        return [
            'booking_id'        => $this->id,
            'request_id'        => "ORBI" . str_pad($this->id, 2, '0', STR_PAD_LEFT),
            'customer_name'     => $customerName ?: null,
            'pickup_location'   => $firstRide->pickup_location ?? null,
            'drop_location'     => $firstRide->drop_location ?? null,
            'pickup_time'       => $firstRide ? ($firstRide->ride_date . 'T' . $firstRide->pickup_time) : null,
            'pickup_time_return'=> $lastRide ? ($lastRide->ride_date . 'T' . $lastRide->pickup_time) : null,
            'distance'          => $firstRide ? ($firstRide->distance_km . ' km') : null,
            'ride_type'         => $this->ride_type,
            'ride_type_name'    => $this->ride_type_name ?? null,
            'vehicle_type'      => $this->vehicle_preferred,
            'no_of_passengers'  => (int) $this->no_of_passengers,
            'days'              => $uniqueDays,
            'rides'             => $totalRides,
            'base_fare'         => round($baseFare, 2),
            'taxes'             => round($taxes, 2),
            'total_amount'      => round($total, 2),
            'status'            => $this->status,
        ];
    }
}