File: D:/HostingSpaces/SBogers10/cafe-de-bout.komma.pro/app/Components/Component/Component.php
<?php
namespace App\Components\Component;
use App\Buttons\Models\Button;
use App\Projects\Models\Project;
use App\References\Models\Reference;
use App\Servicepoints\Models\Servicepoint;
use Komma\KMS\Documents\DocumentsTrait;
use Komma\KMS\Documents\Kms\DocumentableInterface;
use App\Components\ComponentArea\ComponentArea;
use App\Pages\Models\Page;
use App\Services\Models\Service;
use App\Shop\Products\Product\Product;
use App\Users\Models\SiteUser;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphToMany;
/**
* App\Components\Component\Component
*
* @property int $id
* @property int $component_type_id
* @property int $component_area_id
* @property int $sort_order
* @property string $version
* @property string $data
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property-read \App\Components\ComponentArea\ComponentArea $componentArea
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component whereComponentAreaId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component whereComponentTypeId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component whereData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component whereSortOrder($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component whereVersion($value)
* @mixin \Eloquent
* @property int|null $linkable_id
* @property string|null $linkable_type
* @property-read \Illuminate\Database\Eloquent\Collection|\Komma\KMS\Documents\Models\Document[] $documents
* @property-read \Illuminate\Database\Eloquent\Collection|\Komma\KMS\Documents\Models\Document[] $images
* @property-read \Illuminate\Database\Eloquent\Model|\Eloquent $linkable
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component whereLinkableId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component whereLinkableType($value)
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Pages\Models\Page[] $pages
* @property-read \Illuminate\Database\Eloquent\Collection|\Komma\KMS\Users\Models\KmsUser[] $users
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Components\Component\Component query()
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Shop\Products\Product\Product[] $products
*/
class Component extends Model implements DocumentableInterface
{
use DocumentsTrait;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['component_area_id', 'component_type_id', 'sort_order', 'version', 'data'];
/**
* @return BelongsTo
*/
public function componentArea(): BelongsTo {
return $this->belongsTo(ComponentArea::class);
}
//Polymorphic relations below this line. Safety goggles on please.
public function users(): MorphToMany
{
return $this->morphedByMany(SiteUser::class, 'componentable');
}
public function pages(): MorphToMany
{
return $this->morphedByMany(Page::class, 'componentable');
}
public function services(): MorphToMany
{
return $this->morphedByMany(Service::class, 'componentable');
}
public function projects(): MorphToMany
{
return $this->morphedByMany(Project::class, 'componentable');
}
public function references(): MorphToMany
{
return $this->morphedByMany(Reference::class, 'componentable');
}
public function products(): MorphToMany
{
return $this->morphedByMany(Product::class, 'componentable');
}
public function buttons(): MorphToMany
{
return $this->morphedByMany(Button::class, 'componentable');
}
public function servicepoints(): MorphToMany
{
return $this->morphedByMany(Servicepoint::class, 'componentable');
}
}