HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/shop.komma.nl/app/Products/ProductGroup/ProductGroupResource.php
<?php

namespace App\Products\ProductGroup;

use App\Products\Product\ProductResource;
use App\Properties\Resources\Key;
use Illuminate\Http\Resources\Json\Resource;
use Komma\KMS\Globalization\RegionInfo;
use Komma\KMS\Globalization\RegionInfoInterface;

/**
 * Class ProductGroupResource
 *
 * @mixin ProductGroup
 * @package App\Products\ProductGroup
 */
class ProductGroupResource 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
     * @see ProductGroup
     */
    public function toArray($request)
    {
        return [
            'productableClass' => get_class($this->resource),
            'id' => $this->id,
            'active' => $this->active,
            'translation' => $this->whenLoaded('translation', new ProductGroupTranslationResource($this->translation)),
            'translations' => $this->whenLoaded('translations', ProductGroupTranslationResource::collection($this->translations)),
            'filterPropertyKeys' => $this->whenLoaded('filterPropertyKeys', Key::collection($this->filterPropertyKeys)),
            'products' => $this->whenLoaded('products', ProductResource::collection($this->products)),
            'displayName' => $this->getDisplayName(),
            'sidebarName' => $this->getSidebarName(),
            'displayAs' => $this->display_as,
            'currencySymbol' => $this->regionInfo->getCurrencySymbol(),
            'price' => $this->getPrice(),
            'priceInc' => $this->getPriceInc(),
            'priceEx' => $this->getPriceEx(),
            'vatAmount' => $this->getVatAmount(),
            'priceFormatted' => $this->regionInfo->getNumberFormat()->centsToCurrency($this->getPriceEx(), 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),
            'imageUrl' => $this->whenLoaded('images', $this->images->where('medium_image_url', '!=', null)->first()->medium_image_url ?? url('/img/placeholders/productable_placeholder.svg'))
        ];
    }
}