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

119 lines
3.9 KiB
PHP

<?php
namespace App\Models\Regulacao;
use App\Models\Cadastro\Especialidade;
use App\Models\Cadastro\Estabelecimento\Infraestrutura;
use App\Models\Cadastro\Grupo\Grupo;
use App\Models\Intranet\Estado;
use App\Models\Model;
use App\Models\Parametrizacao\ProcedimentoCirurgico;
class Parametrizacao extends Model
{
protected $table = 'regulacao_parametrizacao';
protected $casts = [
'numero_solicitacao_automatico' => 'boolean',
'solicitacao_automatica_ambulatorio' => 'boolean',
'permite_agendar_fora_ordem_posicao' => 'boolean',
'exibe_protocolo_cross' => 'boolean',
'obriga_protocolo_cross' => 'boolean',
'obriga_data_desejada' => 'boolean',
'encerra_solicitacao_automaticamente_ao_encerrar_protocolo_oci' => 'boolean',
'solicitacao_retroativa' => 'boolean',
'exames_nao_regulados' => 'boolean',
'sempre_alterar_unidade_solicitante' => 'boolean',
'exibe_assinatura_relatorio_solicitacao' => 'boolean',
];
protected $fillable = [
'numero_solicitacao_automatico',
'solicitacao_automatica_ambulatorio',
'permite_agendar_fora_ordem_posicao',
'opcao_retirada_protocolo_agendamento_id',
'mensagem_protocolo_solicitacao',
'mensagem_comprovante_agendamento',
'exibe_protocolo_cross',
'obriga_protocolo_cross',
'usuario_registro_estado_id',
'obriga_data_desejada',
'encerra_solicitacao_automaticamente_ao_encerrar_protocolo_oci',
'solicitacao_retroativa',
'exames_nao_regulados',
'sempre_alterar_unidade_solicitante',
'exibe_assinatura_relatorio_solicitacao',
];
protected $hidden = [
'created_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_at',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function opcaoRetiradaProtocoloAgendamento()
{
return $this->belongsTo(ParametrizacaoOpcaoRetiradaProtocoloAgendamento::class);
}
public function usuarioRegistroEstado()
{
return $this->belongsTo(Estado::class);
}
public function dataDesejadaGruposExames()
{
return $this->belongsToMany(
Grupo::class,
'regulacao_parametrizacao_data_desejada_grupo_exame',
'parametrizacao_id',
'grupo_id'
)
->using(ParametrizacaoDataDesejadaGrupoExame::class)
->as('dataDesejadaGrupoExame')
->withTimestamps();
}
public function dataDesejadaProcedimentosCirurgicos()
{
return $this->belongsToMany(
ProcedimentoCirurgico::class,
'regulacao_parametrizacao_data_desejada_procedimento_cirurgico',
'parametrizacao_id',
'procedimento_cirurgico_id'
)
->using(ParametrizacaoDataDesejadaProcedimentoCirurgico::class)
->as('dataDesejadaProcedimentoCirurgico')
->withTimestamps();
}
public function dataDesejadaEspecialidades()
{
return $this->belongsToMany(
Especialidade::class,
'regulacao_parametrizacao_data_desejada_especialidade',
'parametrizacao_id',
'especialidade_id'
)
->using(ParametrizacaoDataDesejadaEspecialidade::class)
->as('dataDesejadaEspecialidade')
->withTimestamps();
}
public function dataDesejadaInfraestruturas()
{
return $this->belongsToMany(
Infraestrutura::class,
'regulacao_parametrizacao_data_desejada_infraestrutura',
'parametrizacao_id',
'infraestrutura_id'
)
->using(ParametrizacaoDataDesejadaInfraestrutura::class)
->as('dataDesejadaInfraestrutura')
->withTimestamps();
}
}