Files
rkm-conectasus-ci-sandbox/api/app/Http/Controllers/Mobile/ConectaSusAb/AtencaoBasica/CadastroDomiciliar/CadastroDomiciliarController.php
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

121 lines
6.7 KiB
PHP

<?php
namespace App\Http\Controllers\Mobile\ConectaSusAb\AtencaoBasica\CadastroDomiciliar;
use App\Http\Controllers\Controller;
use App\Models\AtencaoBasica\CadastroDomiciliar\CadastroDomiciliar;
use Illuminate\Http\Response;
class CadastroDomiciliarController extends Controller
{
protected $modulo = 'atencao-basica';
protected $funcionalidade = 'cadastro-domiciliar';
public function index($idUnidade, $idEquipe, $idMicoarea, $exibirForaArea)
{
$vinculos = [
'domicilio',
'domicilio.endereco',
'equipe' => function ($query) use ($idUnidade) {
$query->where('unidade_id', $idUnidade);
},
'microarea:id,area_id',
'lazer:id',
'animal:id'
];
$cadastrosDomiciliares = CadastroDomiciliar::with($vinculos)
->where(function ($query) use ($idEquipe, $exibirForaArea) {
if ($exibirForaArea == 1) {
$query->whereNull('equipe_id');
$query->orWhere('equipe_id', $idEquipe);
} else {
$query->where('equipe_id', $idEquipe);
}
})
->where('microarea_id', $idMicoarea)
->get()
->map(function ($cadastroDomiciliar) {
$domicilioId = $cadastroDomiciliar->domicilio->id ?? null;
$domicilioEnderecoId = $cadastroDomiciliar->domicilio->endereco->id ?? null;
$domicilioEnderecoNumero = $cadastroDomiciliar->domicilio->endereco->numero ?? null;
$domicilioEnderecoComplemento = $cadastroDomiciliar->domicilio->endereco->complemento ?? null;
$domicilioEnderecoSemNumero = $cadastroDomiciliar->domicilio->endereco->sem_numero ?? null;
$loteamento = $cadastroDomiciliar->domicilio->loteamento->nome ?? null;
$loteamentoId = $cadastroDomiciliar->domicilio->loteamento->id ?? null;
$logradouroId = $cadastroDomiciliar->domicilio->endereco->logradouro->id ?? null;
$logradouroTipoId = $cadastroDomiciliar->domicilio->endereco->logradouro->tipo->id ?? null;
$bairroId = $cadastroDomiciliar->domicilio->endereco->logradouro->bairro->id ?? null;
$cep = $cadastroDomiciliar->domicilio->endereco->logradouro->cep ?? null;
$latitude = $cadastroDomiciliar->domicilio->endereco->latitude ?? null;
$longitude = $cadastroDomiciliar->domicilio->endereco->longitude ?? null;
$areaId = $cadastroDomiciliar->microarea->area_id ?? null;
unset($cadastroDomiciliar->microarea);
unset($cadastroDomiciliar->domicilio);
return [
'id' => $cadastroDomiciliar->id,
'area_id' => $areaId,
'microarea_id' => $cadastroDomiciliar->microarea_id,
'fora_area' => $cadastroDomiciliar->fora_area,
'instituicao_nome' => $cadastroDomiciliar->instituicao_nome,
'instituicao_nome_responsavel_tecnico' => $cadastroDomiciliar->instituicao_nome_responsavel_tecnico,
'instituicao_cns_responsavel_tecnico' => $cadastroDomiciliar->instituicao_cns_responsavel_tecnico,
'instituicao_cargo_responsavel_tecnico' => $cadastroDomiciliar->instituicao_cargo_responsavel_tecnico,
'instituicao_telefone_responsavel_tecnico' => $cadastroDomiciliar->instituicao_telefone_responsavel_tecnico,
'imovel_tipo_id' => $cadastroDomiciliar->imovel_tipo_id,
'situacao_domicilio_id' => $cadastroDomiciliar->situacao_domicilio_id,
'domicilio_tipo_id' => $cadastroDomiciliar->domicilio_tipo_id,
'quantidade_comodos' => $cadastroDomiciliar->quantidade_comodos,
'situacao_rural_id' => $cadastroDomiciliar->situacao_rural_id,
'domicilio_zona_id' => $cadastroDomiciliar->domicilio_zona_id,
'domicilio_tipo_acesso_id' => $cadastroDomiciliar->domicilio_tipo_acesso_id,
'material_predominante_id' => $cadastroDomiciliar->material_predominante_id,
'abastecimento_id' => $cadastroDomiciliar->abastecimento_id,
'tratamento_id' => $cadastroDomiciliar->tratamento_id,
'destino_lixo_id' => $cadastroDomiciliar->destino_lixo_id,
'forma_escoamento_id' => $cadastroDomiciliar->forma_escoamento_id,
'possui_animais' => $cadastroDomiciliar->possui_animais,
'energia_eletrica' => $cadastroDomiciliar->energia_eletrica,
'quantidade_animais' => $cadastroDomiciliar->quantidade_animais,
'usuario_id' => $cadastroDomiciliar->usuario_id,
'equipe_id' => $cadastroDomiciliar->equipe_id,
'usuario_ocupacao_id' => $cadastroDomiciliar->usuario_ocupacao_id,
'data_usuario_responsavel' => $cadastroDomiciliar->data_usuario_responsavel,
'escala_coelho_id' => $cadastroDomiciliar->escala_coelho_id,
'higiene_residencial_id' => $cadastroDomiciliar->higiene_residencial_id,
'bolsa_familia' => $cadastroDomiciliar->bolsa_familia,
'vale_gas' => $cadastroDomiciliar->vale_gas,
'bolsa_escola' => $cadastroDomiciliar->bolsa_escola,
'bpc' => $cadastroDomiciliar->bpc,
'recusa_cadastro' => $cadastroDomiciliar->recusa_cadastro,
'domicilio_id' => $domicilioId,
'domicilio_endereco_id' => $domicilioEnderecoId,
'domicilio_endereco_numero' => $domicilioEnderecoNumero,
'domicilio_endereco_complemento' => $domicilioEnderecoComplemento,
'domicilio_endereco_sem_numero' => $domicilioEnderecoSemNumero,
'loteamento' => $loteamento,
'loteamento_id' => $loteamentoId,
'lazer' => $cadastroDomiciliar->lazer->pluck('id'),
'animal' => $cadastroDomiciliar->animal->pluck('id'),
'unidade_id' => $cadastroDomiciliar->equipe->unidade_id,
'infraestrutura_id' => $cadastroDomiciliar->equipe->infraestrutura_id,
'logradouro_id' => $logradouroId,
'logradouro_tipo_id' => $logradouroTipoId,
'bairro_id' => $bairroId,
'cep' => $cep,
'latitude' => $latitude,
'longitude' => $longitude,
];
});
return response()->json($cadastrosDomiciliares, Response::HTTP_OK);
}
}