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/ReturnIndustries/return-industries.nl/app/Komma/Sites/SiteService.php
<?php

namespace App\Komma\Sites;

use App\Komma\Kms\Core\Attributes\Models\SelectOption;
use App\Komma\Sites\Models\Site;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;

final class SiteService
{

    /**
     * This method will get a specific site
     *
     * @param integer $id
     * @return Site
     */
    public function getSite($id = 1): int
    {
        return Site::find($id);
    }

    /**
     * This method will get all the sites
     *
     * @return Collection|static[]
     */
    public function getSites()
    {
        return Site::all();
    }

    /**
     * Returns the site ids as a comma separated string for the HasSiteInterface implementation
     *
     * @param HasSitesInterface $model
     * @return string Site ids, comma separated
     */
    public function getSiteIdsForModel(HasSitesInterface $model): ?string
    {
        if(!$model->id) return null;

        $idsCollection = $model->sites()->get(['id'])->map(function(Site $site ) {
            return $site->id;
        });
        $idString = implode(',', $idsCollection->toArray());

        if($idString == "") return null;

        return $idString;
    }

    /**
     * Return a collection of selectOptionModels containing sites
     */
    public function getOptionsForSelect(): array
    {
        $optionModels = Site::all()->map(function(Site $site) {
           $optionModel = (new SelectOption())
               ->setHtmlContent($site->name)
               ->setContent($site->name)
               ->setValue($site->id);

           return $optionModel;
        })->toArray();

        return $optionModels;
    }
}