Files
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

115 lines
2.4 KiB
PHP

<?php
namespace App\Models\ProntoAtendimento\Atendimento;
use App\Models\Cadastro\SujeitoAtencao\Lotacao;
use App\Models\Cadastro\SujeitoAtencao\Paciente;
use App\Models\Cadastro\SujeitoAtencao\Usuario;
use App\Models\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\DB;
class Faa extends Model
{
use SoftDeletes;
protected $table = 'pronto_atendimento_faa';
protected $casts = [
'finalizado' => 'boolean',
];
protected $fillable = [
'id',
'numero',
'paciente_id',
'desfecho_id',
'finalizado',
'usuario_id',
'lotacao_id',
'data_hora_desfecho',
'motivo_cancelamento_evasao',
'motivo_cancelamento',
'cancelado',
'canceled_desfecho_lotacao_id'
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
'deleted_at',
'deleted_lotacao_id',
'deleted_centro_custo_id',
];
protected static function boot()
{
parent::boot();
static::creating(function ($model) {
$model->numero = DB::table('pronto_atendimento_faa')->max('numero') + 1;
});
static::updating(function ($model) {
if (!is_null($model->desfecho_id)) {
$model->motivo_cancelamento_evasao = null;
$model->finalizado = true;
}
});
}
public function paciente()
{
return $this->belongsTo(Paciente::class);
}
public function desfecho()
{
return $this->belongsTo(Desfecho::class);
}
public function usuario()
{
return $this->belongsTo(Usuario::class);
}
public function lotacao()
{
return $this->belongsTo(Lotacao::class);
}
public function raat()
{
return $this->hasOne(Raat::class);
}
public function cat()
{
return $this->hasOne(Cat::class);
}
public function atendimentos()
{
return $this->hasMany(Atendimento::class)->withTrashed();
}
public function getIsRaatAbertaAttribute()
{
return !is_null($this->raat);
}
public function getIsCatAbertaAttribute()
{
return !is_null($this->cat);
}
public function getIsAllowedToDeleteAttribute()
{
return true;
}
}