Files
portal-api/app/Services/VirtualMachine/VmAddonResolver.php

48 lines
1.0 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Services\VirtualMachine;
use App\Models\OrderItem;
class VmAddonResolver
{
/**
* @return array{cpu:int,ram:int,disk:int}
*/
public function resolve(OrderItem $item): array
{
$totals = ['cpu' => 0, 'ram' => 0, 'disk' => 0];
if (!$item->addons) {
return $totals;
}
foreach ($item->addons as $orderAddon) {
$addon = $orderAddon->addonItems;
if (!$addon) {
continue;
}
$name = strtolower(trim((string) $addon->name));
$qty = (int) $orderAddon->qty;
switch ($name) {
case 'cpu':
$totals['cpu'] += $qty;
break;
case 'ram':
$totals['ram'] += $qty;
break;
case 'disk':
case 'ssd':
$totals['disk'] += $qty;
break;
}
}
return $totals;
}
}