HOME


Mini Shell 1.0
La Pieza.DO | Todo lo que buscas!

Bienvenido de nuevo!

Acceso Cuenta Delivery
DIR: /var/www/devs.lapieza.net/app/Http/Resources/Delivery/V1/
Upload File :
Current File : /var/www/devs.lapieza.net/app/Http/Resources/Delivery/V1/DeliveryOptionResource.php
<?php

namespace App\Http\Resources\Delivery\V1;

use Illuminate\Http\Resources\Json\JsonResource;
use App\Http\Controllers\Api\Delivery\V1\PedidosYaController;
use App\Http\Controllers\Api\Delivery\V1\TransporteBlancoController;
use Illuminate\Support\Carbon;

class DeliveryOptionResource extends JsonResource {
    public function toArray($request) {
        $cart = $this->resource;

        $pedidosYaAvailable = PedidosYaController::checkAvailable($cart);
        $transporteBlancoAvailable = TransporteBlancoController::checkAvailable($cart);

        $pedidosYaData = PedidosYaController::getDeliveryData($cart);
        $transporteBlanco = TransporteBlancoController::getDeliveryData($cart);
        $transporteBlancoWhitPedidosYaAvailable = PedidosYaController::checkAvailable($cart);

        return [
            'cart_id' => $cart->id,
            'product_id' => $cart->product->id,
            'deliveryOptions' => [
                'pedidosYa' => $pedidosYaAvailable ? [
                    'pricing' => $pedidosYaData['delivery']['starter_price'] ?? null,
                    'pricingRange' => $pedidosYaData['delivery']['ending_price'] ?? null,
                    'distance' => $pedidosYaData['route']['distance'] ?? null,
                    'routeDurationInMinutes' => $pedidosYaData['route']['duration'] ?? null,
                    'shopClosed' => isset($pedidosYaData['storeAvailability']) && !$pedidosYaData['storeAvailability']['delivery_now_available'],
                    'shopClosedMessage' => $pedidosYaData['storeAvailability']['delivery_now_not_available_message'] ?? null,
                    'shopOpenendAt' => isset($pedidosYaData['storeAvailability']) ? Carbon::parse($pedidosYaData['storeAvailability']['delivery_available_on']) : null,
                ] : $pedidosYaAvailable,
                'transporteBlanco' => $transporteBlancoAvailable ? [
                    'pricing' => $transporteBlanco['delivery']['starter_price'] ?? 0.0,
                    'pricingRange' => $transporteBlanco['delivery']['starter_price'] + ($transporteBlanco['delivery']['starter_price'] * 0.25),
                    'estimatePickupTime' => $transporteBlanco['delivery']['estimated_pickup_time'] ?? null,
                    'estimateDropOffTime' => $transporteBlanco['delivery']['estimated_dropoff_time'] ?? null
                ] : $transporteBlancoAvailable,
                'transporteBlancoWhitPedidosYa' => $transporteBlancoWhitPedidosYaAvailable,
            ],
        ];
    }
}