-- ============================================================
-- MIGRAÇÃO: Criação da Tabela de Usuários
-- Data: 2025-01
-- Sistema: Checkout Pro 2025
-- ============================================================

-- Criar tabela usuarios se não existir
CREATE TABLE IF NOT EXISTS `usuarios` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `nome` VARCHAR(191) NOT NULL,
  `email` VARCHAR(191) NOT NULL,
  `senha_hash` VARCHAR(255) NOT NULL,
  `tipo` ENUM('admin', 'usuario') NOT NULL DEFAULT 'usuario',
  `status` VARCHAR(50) NOT NULL DEFAULT 'ativo',
  `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`),
  KEY `idx_tipo` (`tipo`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- ============================================================
-- INSTRUÇÕES PARA CRIAR O PRIMEIRO ADMIN:
-- ============================================================
-- 
-- Execute o seguinte comando SQL substituindo:
-- - 'Admin Principal' pelo nome desejado
-- - 'admin@seuemail.com' pelo email do admin
-- - 'SuaSenhaSegura123!' pela senha desejada
--
-- IMPORTANTE: A senha será automaticamente convertida para hash
-- usando password_hash() do PHP. Use o script PHP abaixo ou
-- gere o hash manualmente.
--
-- ============================================================
-- OPÇÃO 1: Usar script PHP para criar admin (RECOMENDADO)
-- ============================================================
-- Crie um arquivo temporário create_admin.php na raiz do projeto:
--
-- <?php
-- require __DIR__ . '/config/config_db.php';
-- 
-- $nome = 'Admin Principal';
-- $email = 'admin@seuemail.com';
-- $senha_plana = 'SuaSenhaSegura123!';
-- $senha_hash = password_hash($senha_plana, PASSWORD_DEFAULT);
-- 
-- try {
--     $stmt = $pdo->prepare("INSERT INTO usuarios (nome, email, senha_hash, tipo, status) VALUES (?, ?, ?, 'admin', 'ativo')");
--     $stmt->execute([$nome, $email, $senha_hash]);
--     echo "Admin criado com sucesso! Email: $email\n";
--     echo "IMPORTANTE: Delete este arquivo após usar!\n";
-- } catch (PDOException $e) {
--     echo "Erro: " . $e->getMessage() . "\n";
-- }
-- ?>
--
-- Execute via linha de comando: php create_admin.php
-- OU acesse via navegador e depois DELETE o arquivo!
--
-- ============================================================
-- OPÇÃO 2: Inserir manualmente (substitua o hash abaixo)
-- ============================================================
-- Para gerar o hash, use este comando PHP:
-- php -r "echo password_hash('SuaSenhaSegura123!', PASSWORD_DEFAULT);"
--
-- Depois execute:
-- INSERT INTO usuarios (nome, email, senha_hash, tipo, status, created_at, updated_at)
-- VALUES (
--     'Admin Principal',
--     'admin@seuemail.com',
--     '{COLE_O_HASH_GERADO_AQUI}',
--     'admin',
--     'ativo',
--     NOW(),
--     NOW()
-- );
--
-- ============================================================
-- MIGRAÇÃO DE DADOS EXISTENTES (se houver)
-- ============================================================
-- Se você já tem uma tabela usuarios com senhas em texto puro,
-- execute este script para migrar:
--
-- <?php
-- require __DIR__ . '/config/config_db.php';
-- 
-- $stmt = $pdo->query("SELECT id, email, senha FROM usuarios WHERE senha_hash IS NULL OR senha_hash = ''");
-- $usuarios = $stmt->fetchAll(PDO::FETCH_ASSOC);
-- 
-- foreach ($usuarios as $usuario) {
--     // Se a senha já está em hash, pule
--     if (password_verify('', $usuario['senha']) || strlen($usuario['senha']) > 60) {
--         continue;
--     }
--     
--     // Converte senha em texto para hash
--     $senha_hash = password_hash($usuario['senha'], PASSWORD_DEFAULT);
--     
--     $update = $pdo->prepare("UPDATE usuarios SET senha_hash = ?, tipo = COALESCE(tipo, 'admin'), status = COALESCE(status, 'ativo') WHERE id = ?");
--     $update->execute([$senha_hash, $usuario['id']]);
--     
--     echo "Migrado: {$usuario['email']}\n";
-- }
-- ?>
--
-- ============================================================


