init commit
All checks were successful
build-api-image / build (push) Successful in 51s

This commit is contained in:
Antonio Lopes dos Santos
2026-08-04 16:52:02 -03:00
commit afec302c3e
11594 changed files with 1636728 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
<?php
namespace App\Http\Controllers\PainelSenha;
use App\Http\Controllers\Controller;
use App\Http\Requests\PainelSenha\ParametrizacaoRequest;
use App\Models\Administracao\Modulo;
use App\Models\Cadastro\Estabelecimento\Infraestrutura;
use App\Models\Cadastro\Estabelecimento\Unidade;
use App\Models\PainelSenha\ParametrizacaoInfraestrutura;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
class ParametrizacaoController extends Controller
{
protected $modulo = 'painel-senha';
protected $funcionalidade = 'parametrizacao';
public function create()
{
$this->auth(__FUNCTION__);
return response()->json(
[
'form' => [
'unidades' => Unidade::orderBy('nome_fantasia')->get(['id', 'nome_fantasia']),
'infraestruturas' => [],
'modulos' => Modulo::orderBy('nome')->get(['id', 'nome']),
],
'model' => [
'infraestruturas' => ParametrizacaoInfraestrutura::get(['id', 'infraestrutura_id'])
->map(fn ($parametrizacao) => [
'id' => $parametrizacao->infraestrutura_id,
'nome' => $parametrizacao->infraestrutura->nome,
'unidade_id' => $parametrizacao->infraestrutura->unidade->id,
'unidade_nome_fantasia' => $parametrizacao->infraestrutura->unidade->nome_fantasia,
'modulos' => $parametrizacao->modulos->map(fn ($modulo) => [
'id' => $modulo->id,
'nome' => $modulo->nome,
]),
]),
]
],
Response::HTTP_OK
);
}
public function list()
{
$data = null;
switch (request()->listar) {
case 'infraestruturas': {
return Infraestrutura::setEagerLoads([])
->where('unidade_id', request()->unidade_id)
->get(['id', 'nome', 'principal', 'unidade_id'])
->map(fn ($infraestrutura) => [
'id' => $infraestrutura->id,
'nome' => $infraestrutura->nome,
])
->sortBy('nome')
->values();
}
}
return response()->json($data, Response::HTTP_OK);
}
public function store(ParametrizacaoRequest $request)
{
$this->auth(__FUNCTION__);
DB::transaction(function () use ($request) {
ParametrizacaoInfraestrutura::whereNotIn('id', collect($request->infraestruturas)->pluck('id'))->delete();
collect($request->infraestruturas)->each(function ($infraestrutura) {
$parametrizacao = ParametrizacaoInfraestrutura::updateOrCreate([
'infraestrutura_id' => $infraestrutura['id']
]);
$parametrizacao->modulos()->sync($infraestrutura['modulos']);
});
});
return response()->json(null, Response::HTTP_CREATED);
}
}