Files
shopit-back/app/Domains/Menu/Models/Menu.php

58 lines
1.3 KiB
PHP

<?php
namespace App\Domains\Menu\Models;
use App\Domains\Tenant\Models\Tenant;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Menu extends Model
{
use HasFactory;
protected $table = 'menues';
protected $fillable = [
'code',
'parent_menu_code',
'content_type',
'static_content_schema',
'route',
];
protected function casts(): array
{
return [
'static_content_schema' => 'array',
];
}
public function parent(): BelongsTo
{
return $this->belongsTo(self::class, 'parent_menu_code', 'code');
}
public function children(): HasMany
{
return $this->hasMany(self::class, 'parent_menu_code', 'code');
}
public function tenants(): BelongsToMany
{
return $this->belongsToMany(
Tenant::class,
'tenants_menues',
'menu_code',
'tenant_code',
'code',
'codigo'
)
->using(TenantMenu::class)
->withPivot('static_content')
->withTimestamps();
}
}