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

156 lines
4.4 KiB
PHP

<?php
namespace App\Models\AtencaoBasica\AtividadeColetiva;
use App\Models\AtencaoBasica\AtividadeColetiva\AtividadeTipo;
use App\Models\AtencaoBasica\AtividadeColetiva\Participante;
use App\Models\AtencaoBasica\AtividadeColetiva\ProcedimentoColetivo;
use App\Models\AtencaoBasica\AtividadeColetiva\Pse;
use App\Models\AtencaoBasica\AtividadeColetiva\PublicoAlvo;
use App\Models\AtencaoBasica\AtividadeColetiva\ReuniaoTema;
use App\Models\AtencaoBasica\AtividadeColetiva\SaudePratica;
use App\Models\AtencaoBasica\AtividadeColetiva\SaudeTema;
use App\Models\AtencaoBasica\AtividadeColetiva\Turno;
use App\Models\AtencaoBasica\Parametrizacao\Equipe;
use App\Models\AtencaoBasica\Parametrizacao\Microarea;
use App\Models\Cadastro\SujeitoAtencao\Usuario;
use App\Models\Model;
use App\Models\Sigtap\Ocupacao;
class AtividadeColetiva extends Model
{
protected $table = 'atencao_basica_atividade_coletiva';
protected $fillable = [
'id',
'data_cadastro',
'pse_id',
'inep',
'local_atividade',
'cnes',
'turno_id',
'procedimento_coletivo_id',
'atividade_tipo_id',
'total_participantes',
'avaliacoes_alteradas',
'usuario_id',
'equipe_id',
'usuario_ocupacao_id',
'data_usuario_responsavel',
];
protected $hidden = [
'created_at',
'updated_at',
'created_lotacao_id',
'created_centro_custo_id',
'updated_lotacao_id',
'updated_centro_custo_id',
];
public function atividadeTipo()
{
return $this->belongsTo(AtividadeTipo::class);
}
public function procedimentoColetivo()
{
return $this->belongsTo(ProcedimentoColetivo::class);
}
public function pse()
{
return $this->belongsTo(Pse::class);
}
public function participantes()
{
return $this->hasMany(Participante::class);
}
public function publicoAlvo()
{
return $this->belongsToMany(PublicoAlvo::class, 'atencao_basica_atividade_coletiva_publico_alvo')
->using(AtividadeColetivaPublicoAlvo::class)
->as('AtividadeColetivaPublicoAlvo')
->withPivot(
'created_lotacao_id',
'created_centro_custo_id',
'atividade_coletiva_id',
'publico_alvo_id',
)
->select('atencao_basica_cadastro_publico_alvo.id')
->withTimestamps();
}
public function reuniaoTemas()
{
return $this->belongsToMany(ReuniaoTema::class, 'atencao_basica_atividade_coletiva_reuniao_tema')
->using(AtividadeColetivaReuniaoTema::class)
->as('AtividadeColetivaReuniaoTema')
->withPivot(
'created_lotacao_id',
'created_centro_custo_id',
'atividade_coletiva_id',
'reuniao_tema_id',
)
->select('atencao_basica_cadastro_reuniao_tema.id')
->withTimestamps();
}
public function saudePratica()
{
return $this->belongsToMany(SaudePratica::class, 'atencao_basica_atividade_coletiva_saude_pratica')
->using(AtividadeColetivaSaudePratica::class)
->as('AtividadeColetivaSaudePratica')
->withPivot(
'created_lotacao_id',
'created_centro_custo_id',
'atividade_coletiva_id',
'saude_pratica_id',
)
->select('atencao_basica_cadastro_saude_pratica.id')
->withTimestamps();
}
public function saudeTemas()
{
return $this->belongsToMany(SaudeTema::class, 'atencao_basica_atividade_coletiva_saude_tema')
->using(AtividadeColetivaSaudeTema::class)
->as('AtividadeColetivaSaudeTema')
->withPivot(
'created_lotacao_id',
'created_centro_custo_id',
'atividade_coletiva_id',
'saude_tema_id',
)
->select('atencao_basica_cadastro_saude_tema.id')
->withTimestamps();
}
public function turno()
{
return $this->belongsTo(Turno::class);
}
public function microarea()
{
return $this->belongsTo(Microarea::class);
}
public function usuario()
{
return $this->belongsTo(Usuario::class);
}
public function equipe()
{
return $this->belongsTo(Equipe::class);
}
public function ocupacao()
{
return $this->belongsTo(Ocupacao::class, 'usuario_ocupacao_id');
}
}