89 lines
2.5 KiB
PHP
89 lines
2.5 KiB
PHP
<?php
|
|
require_once __DIR__ . '/../vendor/autoload.php';
|
|
|
|
use Dotenv\Dotenv;
|
|
use Ramsey\Uuid\Uuid;
|
|
use KrothiumAPI\Database\DBManager;
|
|
|
|
$dotenv = Dotenv::createImmutable(__DIR__ . '/..');
|
|
$dotenv->load();
|
|
|
|
$db = DBManager::getConnection();
|
|
|
|
$nome = $argv[1] ?? 'Administrador Workbloom';
|
|
$email = $argv[2] ?? 'admin@workbloom.com.br';
|
|
$usuario = $argv[3] ?? 'admin';
|
|
$senha = $argv[4] ?? 'Admin@123456';
|
|
|
|
echo "=== Criação de Usuário Administrador ===\n";
|
|
echo "Nome: {$nome}\n";
|
|
echo "Email: {$email}\n";
|
|
echo "Usuário: {$usuario}\n";
|
|
|
|
// Verifica se já existe por e-mail ou nome_usuario
|
|
$existente = $db->fetchOne(
|
|
"SELECT id, uuid, email, nome_usuario FROM usuario WHERE email = :email OR nome_usuario = :usuario LIMIT 1",
|
|
['email' => $email, 'usuario' => $usuario]
|
|
);
|
|
|
|
if ($existente !== null) {
|
|
echo "Erro: Usuário já cadastrado com este e-mail ou nome de usuário (ID: {$existente['id']}).\n";
|
|
exit(1);
|
|
}
|
|
|
|
$userUuid = Uuid::uuid7()->toString();
|
|
$senhaHash = password_hash($senha, PASSWORD_ARGON2ID);
|
|
|
|
// Cria o usuário
|
|
$db->insert('usuario', [
|
|
'uuid' => $userUuid,
|
|
'nome_completo' => $nome,
|
|
'email' => $email,
|
|
'nome_usuario' => $usuario,
|
|
'senha_hash' => $senhaHash,
|
|
'ativo' => 1,
|
|
]);
|
|
|
|
$userId = (int)$db->fetchColumn(
|
|
"SELECT id FROM usuario WHERE uuid = :uuid LIMIT 1",
|
|
['uuid' => $userUuid]
|
|
);
|
|
|
|
echo "Usuário criado com sucesso! ID: {$userId}, UUID: {$userUuid}\n";
|
|
|
|
// Verifica se existe ao menos uma empresa
|
|
$empresaId = $db->fetchColumn("SELECT id FROM empresa WHERE deleted_at IS NULL LIMIT 1");
|
|
|
|
if (!$empresaId) {
|
|
echo "Nenhuma empresa cadastrada. Criando Empresa Matriz de teste...\n";
|
|
$empresaUuid = Uuid::uuid7()->toString();
|
|
$db->insert('empresa', [
|
|
'uuid' => $empresaUuid,
|
|
'tipo_estabelecimento' => 'MATRIZ',
|
|
'status' => 'ATIVO',
|
|
'nome_empresarial' => 'WORKBLOOM SISTEMAS LTDA',
|
|
'nome_fantasia' => 'Workbloom Matriz',
|
|
'cnpj' => '12345678000195',
|
|
'regime_tributario' => 1,
|
|
]);
|
|
|
|
$empresaId = (int)$db->fetchColumn(
|
|
"SELECT id FROM empresa WHERE uuid = :uuid LIMIT 1",
|
|
['uuid' => $empresaUuid]
|
|
);
|
|
echo "Empresa criada! ID: {$empresaId}, UUID: {$empresaUuid}\n";
|
|
} else {
|
|
$empresaId = (int)$empresaId;
|
|
}
|
|
|
|
// Vincula usuário à empresa como ADMIN
|
|
$db->insert('usuario_empresa', [
|
|
'usuario_id' => $userId,
|
|
'empresa_id' => $empresaId,
|
|
'perfil' => 'ADMIN',
|
|
'acesso_todas_filiais' => 1,
|
|
]);
|
|
|
|
echo "Vínculo criado na empresa ID: {$empresaId} como ADMIN!\n";
|
|
echo "Concluído com sucesso!\n";
|