67 lines
2.2 KiB
PHP
67 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Mobile\ConectaSusAb\AtencaoBasica\Parametrizacao;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\AtencaoBasica\Parametrizacao\Equipe;
|
|
use App\Models\AtencaoBasica\Parametrizacao\EquipeUsuario;
|
|
use Illuminate\Http\Response;
|
|
|
|
class ParametrizacaoController extends Controller
|
|
{
|
|
protected $modulo = 'atencao-basica';
|
|
protected $funcionalidade = 'parametrizacao';
|
|
|
|
public function obterEquipe($idUsuario)
|
|
{
|
|
|
|
$vinculos = [
|
|
'area',
|
|
'infraestrutura',
|
|
'microarea',
|
|
'unidade',
|
|
'usuarios',
|
|
];
|
|
|
|
$equipes = Equipe::with($vinculos)
|
|
->whereHas('usuarios', function ($query) use ($idUsuario) {
|
|
|
|
$query->where('usuario_id', $idUsuario);
|
|
})
|
|
->get()
|
|
->map(function ($equipe) {
|
|
|
|
return [
|
|
'id' => $equipe->id,
|
|
'area_id' => $equipe->area_id,
|
|
'descricao_area' => $equipe->area->descricao,
|
|
'microarea_id' => $equipe->microarea_id ?? null,
|
|
'microarea_descricao' => $equipe->microarea->descricao ?? null,
|
|
'numero_ine' => $equipe->area->numero_ine,
|
|
'area_tipo' => $equipe->area->tipo_id,
|
|
'unidade_id' => $equipe->unidade->id,
|
|
'unidade_descricao' => $equipe->unidade->nome_fantasia,
|
|
'infraestrutura_id' => $equipe->infraestrutura_id,
|
|
'infraestrutura_descricao' => $equipe->infraestrutura->nome
|
|
];
|
|
});
|
|
|
|
return response()->json($equipes, Response::HTTP_OK);
|
|
}
|
|
|
|
public function obterEquipeUsuario($idUnidade, $idUsuario)
|
|
{
|
|
|
|
$equipesUsuario = EquipeUsuario::where('usuario_id', $idUsuario)
|
|
->whereIn('equipe_id', function ($query) use ($idUnidade) {
|
|
|
|
$query->select('id')
|
|
->from('atencao_basica_parametrizacao_equipe')
|
|
->where('unidade_id', $idUnidade);
|
|
})
|
|
->get();
|
|
|
|
return response()->json($equipesUsuario, Response::HTTP_OK);
|
|
}
|
|
}
|