Teren-app/app/Models/ClientCase.php
Simon Pocrnjič 7227c888d4 Mager updated
2025-09-27 17:45:55 +02:00

76 lines
1.7 KiB
PHP

<?php
namespace App\Models;
use App\Traits\Uuid;
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;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\Builder;
use Laravel\Scout\Searchable;
class ClientCase extends Model
{
/** @use HasFactory<\Database\Factories\ClientCaseFactory> */
use HasFactory;
use Uuid;
use Searchable;
protected $fillable = [
'client_id',
'person_id'
];
protected $hidden = [
'id',
'client_id',
'person_id'
];
protected function makeAllSearchableUsing(Builder $query): Builder
{
return $query->with('person');
}
public function toSearchableArray(): array
{
return [
'person.full_name' => ''
];
}
public function client(): BelongsTo
{
return $this->belongsTo(\App\Models\Client::class);
}
public function person(): BelongsTo
{
return $this->belongsTo(\App\Models\Person\Person::class)
->with(['phones', 'addresses']);
}
public function contracts(): HasMany
{
return $this->hasMany(\App\Models\Contract::class);
}
public function activities(): HasMany
{
return $this->hasMany(\App\Models\Activity::class);
}
public function segments(): BelongsToMany {
return $this->belongsToMany(\App\Models\Segment::class)->withTimestamps();
}
public function documents(): MorphMany
{
return $this->morphMany(\App\Models\Document::class, 'documentable');
}
}