220 lines
6.1 KiB
PHP
220 lines
6.1 KiB
PHP
<?php
|
|
|
|
namespace App\Models\AtencaoBasica\CadastroDomiciliar;
|
|
|
|
use App\Models\AtencaoBasica\AtendimentoIndividual\EscalaCoelho;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\Abastecimento;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\Animal;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\CadastroDomiciliarAnimal;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\CadastroDomiciliarLazer;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\DestinoLixo;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\DomicilioTipo;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\DomicilioTipoAcesso;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\FormaEscoamento;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\HigieneResidencial;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\ImovelTipo;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\MaterialPredominante;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\SituacaoDomicilio;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\SituacaoRural;
|
|
use App\Models\AtencaoBasica\CadastroDomiciliar\Tratamento;
|
|
use App\Models\AtencaoBasica\Parametrizacao\Equipe;
|
|
use App\Models\AtencaoBasica\Parametrizacao\Microarea;
|
|
use App\Models\Cadastro\Localizacao\Domicilio;
|
|
use App\Models\Cadastro\Localizacao\Zona;
|
|
use App\Models\Cadastro\SujeitoAtencao\Usuario;
|
|
use App\Models\Model;
|
|
use App\Models\Sigtap\Ocupacao;
|
|
|
|
class CadastroDomiciliar extends Model
|
|
{
|
|
protected $table = 'atencao_basica_cadastro_domiciliar';
|
|
|
|
protected $casts = [
|
|
'instituicao_outros_profissionais' => 'boolean',
|
|
'possui_animais' => 'boolean',
|
|
'bolsa_familia' => 'boolean',
|
|
'vale_gas' => 'boolean',
|
|
'bolsa_escola' => 'boolean',
|
|
'recusa_cadastro' => 'boolean',
|
|
'fora_area' => 'boolean',
|
|
'energia_eletrica' => 'boolean',
|
|
'bpc' => 'boolean',
|
|
];
|
|
|
|
protected $fillable = [
|
|
'id',
|
|
'domicilio_id',
|
|
'microarea_id',
|
|
'exportacao_id',
|
|
'fora_area',
|
|
'instituicao_nome',
|
|
'instituicao_outros_profissionais',
|
|
'instituicao_nome_responsavel_tecnico',
|
|
'instituicao_cns_responsavel_tecnico',
|
|
'instituicao_cargo_responsavel_tecnico',
|
|
'instituicao_telefone_responsavel_tecnico',
|
|
'imovel_tipo_id',
|
|
'situacao_domicilio_id',
|
|
'domicilio_tipo_id',
|
|
'quantidade_comodos',
|
|
'situacao_rural_id',
|
|
'domicilio_zona_id',
|
|
'domicilio_tipo_acesso_id',
|
|
'material_predominante_id',
|
|
'abastecimento_id',
|
|
'tratamento_id',
|
|
'destino_lixo_id',
|
|
'forma_escoamento_id',
|
|
'possui_animais',
|
|
'quantidade_animais',
|
|
'energia_eletrica',
|
|
'usuario_id',
|
|
'equipe_id',
|
|
'usuario_ocupacao_id',
|
|
'data_usuario_responsavel',
|
|
'higiene_residencial_id',
|
|
'bolsa_familia',
|
|
'vale_gas',
|
|
'bolsa_escola',
|
|
'bpc',
|
|
'recusa_cadastro',
|
|
'escala_coelho_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',
|
|
];
|
|
public function usuarioExportacao()
|
|
{
|
|
return $this->belongsTo(Usuario::class);
|
|
}
|
|
|
|
public function domicilio()
|
|
{
|
|
return $this->belongsTo(Domicilio::class);
|
|
}
|
|
|
|
public function microarea()
|
|
{
|
|
return $this->belongsTo(Microarea::class);
|
|
}
|
|
|
|
public function imovelTipo()
|
|
{
|
|
return $this->belongsTo(ImovelTipo::class);
|
|
}
|
|
|
|
public function situacaoDomicilio()
|
|
{
|
|
return $this->belongsTo(SituacaoDomicilio::class);
|
|
}
|
|
|
|
public function domicilioTipo()
|
|
{
|
|
return $this->belongsTo(DomicilioTipo::class);
|
|
}
|
|
|
|
public function situacaoRural()
|
|
{
|
|
return $this->belongsTo(SituacaoRural::class);
|
|
}
|
|
|
|
public function domicilioZona()
|
|
{
|
|
return $this->belongsTo(Zona::class);
|
|
}
|
|
|
|
public function domicilioTipoAcesso()
|
|
{
|
|
return $this->belongsTo(DomicilioTipoAcesso::class);
|
|
}
|
|
|
|
public function materialPredominante()
|
|
{
|
|
return $this->belongsTo(MaterialPredominante::class);
|
|
}
|
|
|
|
public function abastecimento()
|
|
{
|
|
return $this->belongsTo(Abastecimento::class);
|
|
}
|
|
|
|
public function tratamento()
|
|
{
|
|
return $this->belongsTo(Tratamento::class);
|
|
}
|
|
|
|
public function destinoLixo()
|
|
{
|
|
return $this->belongsTo(DestinoLixo::class);
|
|
}
|
|
|
|
public function formaEscoamento()
|
|
{
|
|
return $this->belongsTo(FormaEscoamento::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');
|
|
}
|
|
|
|
public function higieneResidencial()
|
|
{
|
|
return $this->belongsTo(HigieneResidencial::class);
|
|
}
|
|
|
|
public function escalaCoelho()
|
|
{
|
|
return $this->belongsTo(EscalaCoelho::class);
|
|
}
|
|
|
|
public function lazer()
|
|
{
|
|
return $this->belongsToMany(Lazer::class, 'atencao_basica_cadastro_domiciliar_lazer')
|
|
->using(CadastroDomiciliarLazer::class)
|
|
->as('CadastroDomiciliarLazer')
|
|
->withPivot(
|
|
'created_lotacao_id',
|
|
'created_centro_custo_id',
|
|
'cadastro_domiciliar_id',
|
|
'lazer_id',
|
|
)
|
|
->select('atencao_basica_cadastro_lazer.id')
|
|
->withTimestamps();
|
|
}
|
|
|
|
public function animal()
|
|
{
|
|
return $this->belongsToMany(Animal::class, 'atencao_basica_cadastro_domiciliar_animal')
|
|
->using(CadastroDomiciliarAnimal::class)
|
|
->as('CadastroDomiciliarAnimal')
|
|
->withPivot(
|
|
'created_lotacao_id',
|
|
'created_centro_custo_id',
|
|
'cadastro_domiciliar_id',
|
|
'animal_id',
|
|
)
|
|
->select('atencao_basica_cadastro_animal.id')
|
|
->withTimestamps();
|
|
}
|
|
}
|