Files
workbloomerp-api/bin/create-user.php
T

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";