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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,197 @@
<?php
namespace Database\Seeders\Base;
use App\Models\Administracao\Modulo;
use Illuminate\Support\Facades\DB;
class FuncionalidadeSub
{
public static function run()
{
DB::table('administracao_funcionalidade_funcionalidade_sub')->truncate();
self::administracao();
self::cadastro();
self::prontoAtendimento();
self::almoxarifado();
self::farmacia();
}
public static function administracao()
{
$modulo = 'administracao';
$funcionalidades = [
'permissao' => [
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'usuario',
],
],
];
self::add($modulo, $funcionalidades);
}
public static function cadastro()
{
$modulo = 'cadastro';
$funcionalidades = [
'unidade' => [
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'setor',
],
],
'logradouro' => [
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'bairro',
],
],
'paciente' => [
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'convenio-medico',
],
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'logradouro',
],
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'loteamento',
],
],
'usuario' => [
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'convenio-medico',
],
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'logradouro',
],
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'loteamento',
],
],
];
self::add($modulo, $funcionalidades);
}
public static function prontoAtendimento()
{
$modulo = 'pronto-atendimento';
$funcionalidades = [
'atendimento-medico' => [
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'alergia',
],
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'medicamento',
],
],
'atendimento-recepcao' => [
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'unidade-externa',
],
],
'atendimento-triagem' => [
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'alergia',
],
],
];
self::add($modulo, $funcionalidades);
}
public static function almoxarifado()
{
$modulo = 'almoxarifado';
$funcionalidades = [
'entrada' => [
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'fabricante',
],
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'fornecedor',
],
],
'entrada-inicial' => [
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'fabricante',
],
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'fornecedor',
],
],
];
self::add($modulo, $funcionalidades);
}
public static function farmacia()
{
$modulo = 'farmacia';
$funcionalidades = [
'dispensacao' => [
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'usuario',
],
],
'alto-custo-gerenciamento-processo' => [
[
'identificador_modulo' => 'cadastro',
'identificador_funcionalidade' => 'usuario',
],
],
];
self::add($modulo, $funcionalidades);
}
public static function add($modulo, $funcionalidades)
{
$modulo = Modulo::where('identificador', $modulo)->firstOrFail();
foreach ($funcionalidades as $identificadorFuncionalidade => $funcionalidadesSub) {
$funcionalidade = $modulo->funcionalidades()
->where('identificador', $identificadorFuncionalidade)
->firstOrFail();
$idsFuncionalidadesSub = [];
foreach ($funcionalidadesSub as $funcionalidadeSub) {
$moduloSub = Modulo::where('identificador', $funcionalidadeSub['identificador_modulo'])
->firstOrFail();
$idsFuncionalidadesSub[] = ($moduloSub->funcionalidades()
->where('identificador', $funcionalidadeSub['identificador_funcionalidade'])
->firstOrFail()
)->id;
}
$funcionalidade->funcionalidadesSub()->sync($idsFuncionalidadesSub);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,97 @@
<?php
namespace Database\Seeders\Base;
use App\Models\Administracao\Modulo as Model;
use SeederUtil;
class Modulo
{
public static function run()
{
$modulos = [
[
'identificador' => 'administracao',
'nome' => 'Administração',
],
[
'identificador' => 'cadastro',
'nome' => 'Cadastro',
],
[
'identificador' => 'painel-senha',
'nome' => 'Painel de senha',
],
[
'identificador' => 'pronto-atendimento',
'nome' => 'Pronto atendimento',
],
[
'identificador' => 'parametrizacao',
'nome' => 'Parametrização',
],
[
'identificador' => 'bpa',
'nome' => 'BPA',
],
[
'identificador' => 'raas',
'nome' => 'RAAS',
],
[
'identificador' => 'apac',
'nome' => 'APAC',
],
[
'identificador' => 'exame-laboratorial',
'nome' => 'Exame laboratorial',
],
[
'identificador' => 'exame-imagem',
'nome' => 'Exame de imagem',
],
[
'identificador' => 'farmacia',
'nome' => 'Farmácia',
],
[
'identificador' => 'almoxarifado',
'nome' => 'Almoxarifado',
],
[
'identificador' => 'imunizacao',
'nome' => 'Imunização',
],
[
'identificador' => 'transporte-paciente',
'nome' => 'Transporte de paciente',
],
[
'identificador' => 'ambulatorio',
'nome' => 'Ambulatório',
],
[
'identificador' => 'atencao-basica',
'nome' => 'Atenção básica',
],
[
'identificador' => 'integracao',
'nome' => 'Integração',
],
[
'identificador' => 'regulacao',
'nome' => 'Regulação',
],
[
'identificador' => 'web-service',
'nome' => 'Web service',
],
[
'identificador' => 'manutencao',
'nome' => 'Manutenção',
]
];
SeederUtil::saveList(Model::class, $modulos, 'identificador');
}
}

File diff suppressed because it is too large Load Diff