%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/management/app/Transformers/
Upload File :
Create Path :
Current File : /var/www/html/management/app/Transformers/ComputerTransformer.php

<?php

namespace App\Transformers;

use App\Models\Computer;
use App\Models\Order;

class ComputerTransformer extends BaseTransformer
{
    /**
     * @param Computer $computer
     * @return array
     */
    public function transform(Computer $computer)
    {
        $usageData = [];
        $hasActiveOrder = $computer->hasActiveOrder();
        if ($hasActiveOrder) {
            /** @var Order $order */
            $order = $computer->getCurrentOrder();
            if ($order) {
                $usageData['order_id'] = $order->id;
                $usageData['items'] = $order->getOtherProducts();
            }
            if ($usage = $computer->getCurrentUsage()) {
                $usageData['started_at'] = $usage->start_at;
                $usageData['price'] = $usage->item->price;
                if (!!$usage->user) {
                    $usageData['user'] = [
                        'id'        => $usage->user->id,
                        'full_name' => $usage->user->full_name,
                    ];
                    $usageData['has_user'] = true;
                    $usageData['gifts_used'] = $usage->item->order->gifts()->count();
                }
            }
        }
        return [
            'id'               => (int)$computer->id,
            'code'             => (string)$computer->code,
            'is_enabled'       => (boolean)$computer->is_enabled,
            'has_active_order' => $hasActiveOrder,
            'is_being_used'    => $computer->isBeingUsed(),
            'usage'            => $usageData
        ];
    }
}

Zerion Mini Shell 1.0