File: D:/HostingSpaces/SBogers10/netwerkbrabant.komma.pro/app/KommaApp/Sites/SiteService.php
<?php
namespace App\KommaApp\Sites;
use App\KommaApp\Kms\Core\Attributes\Models\SelectOption;
use App\KommaApp\Sites\Models\Site;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
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;
}
}