58 lines
1.4 KiB
PHP
58 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Domains\Tenant\Models;
|
|
|
|
use App\Domains\Prop\Models\ModelPropValue;
|
|
use App\Domains\Prop\Models\Prop;
|
|
use App\Domains\Product\Models\Product;
|
|
use Illuminate\Database\Eloquent\Attributes\Fillable;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
|
|
|
#[Fillable([
|
|
'codigo',
|
|
'nombre',
|
|
'dominio',
|
|
])]
|
|
class Tenant extends Model
|
|
{
|
|
use HasFactory;
|
|
|
|
/**
|
|
* @return HasMany<Product, $this>
|
|
*/
|
|
public function productos(): HasMany
|
|
{
|
|
return $this->hasMany(Product::class, 'tenant_codigo', 'codigo');
|
|
}
|
|
|
|
/**
|
|
* @return BelongsToMany<TenantProp, $this>
|
|
*/
|
|
public function tenantProps(): BelongsToMany
|
|
{
|
|
return $this->belongsToMany(TenantProp::class, 'tenant_prop_definitions', 'tenant_codigo', 'prop_codigo', 'codigo', 'codigo')
|
|
->withPivot('valor')
|
|
->withTimestamps();
|
|
}
|
|
|
|
/**
|
|
* @return MorphMany<Prop, $this>
|
|
*/
|
|
public function props(): MorphMany
|
|
{
|
|
return $this->morphMany(Prop::class, 'propable');
|
|
}
|
|
|
|
/**
|
|
* @return MorphMany<ModelPropValue, $this>
|
|
*/
|
|
public function propValues(): MorphMany
|
|
{
|
|
return $this->morphMany(ModelPropValue::class, 'valuable');
|
|
}
|
|
}
|