Teren-app/app/Models/Client.php
Simon Pocrnjič 713bd9ffe3 fix 6
2024-11-19 21:29:53 +01:00

59 lines
1.4 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\HasMany;
use Illuminate\Database\Eloquent\Builder;
use Laravel\Scout\Searchable;
class Client extends Model
{
/** @use HasFactory<\Database\Factories\ClientFactory> */
use HasFactory;
use Uuid;
use Searchable;
protected $fillable = [
'person_id'
];
protected $hidden = [
'id',
'person_id',
];
protected function makeAllSearchableUsing(Builder $query): Builder
{
return $query->with('person');
}
public function toSearchableArray(): array
{
$array = $this->toArray();
$array['person'] = $this->person ? $this->person->only(['full_name', 'tax_number', 'social_security_number']): null;
$array['person_addresses'] = $this->person->addresses ? $this->person->addresses->only(['adddress'])->toArray() : [];
$array['person_phones'] = $this->person->phones ? $this->person->phones->only(['nu'])->toArray() : [];
return $array;
}
public function person(): BelongsTo
{
return $this->belongsTo(\App\Models\Person\Person::class);
}
public function clientCases(): HasMany
{
return $this->hasMany(\App\Models\ClientCase::class);
}
}