File: D:/HostingSpaces/SBogers10/shop.komma.nl/app/Products/ProductComposite/ProductCompositeResource.php
<?php
namespace App\Products\ProductComposite;
use Illuminate\Http\Resources\Json\Resource;
use Komma\KMS\Globalization\RegionInfo;
use Komma\KMS\Globalization\RegionInfoInterface;
/**
* Class ProductCompositeResource
*
* @mixin ProductComposite
* @package App\Products\ProductComposite
*/
class ProductCompositeResource extends Resource
{
/**
* @var RegionInfo
*/
private $regionInfo;
public function __construct($resource)
{
$this->regionInfo = app(RegionInfoInterface::class);
parent::__construct($resource);
}
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'productableClass' => get_class($this->resource),
'id' => $this->id,
'active' => $this->active,
'translation' => $this->whenLoaded('translation', new ProductCompositeTranslationResource($this->translation)),
'translations' => ProductCompositeTranslationResource::collection($this->whenLoaded('translations')),
'displayName' => $this->resource->getDisplayName(),
'sidebarName' => $this->resource->getSidebarName(),
'price' => $this->getPrice(),
'priceInc' => $this->getPrice(),
'priceEx' => $this->getPriceEx(),
'vatAmount' => $this->getVatAmount(),
'priceFormatted' => $this->regionInfo->getNumberFormat()->centsToCurrency($this->price, true, true),
'priceIncFormatted' => $this->regionInfo->getNumberFormat()->centsToCurrency($this->getPriceInc(), true, true),
'priceExFormatted' => $this->regionInfo->getNumberFormat()->centsToCurrency($this->getPriceEx(), true, true),
'vatAmountFormatted' => $this->regionInfo->getNumberFormat()->centsToCurrency($this->getVatAmount(), true, true),
];
}
}