-- Script completo de migração para VPS
-- Inclui todas as alterações feitas localmente
-- Execute: psql -h HOST -U USER -d DATABASE -f deploy/migrate-vps-completo.sql

-- ============================================
-- 1. MIGRAÇÃO: user_code na tabela users
-- ============================================
-- Adiciona campo user_code para identificar usuários com códigos únicos baseados no role

-- 1.1. Adicionar coluna user_code (única, pode ser NULL temporariamente)
ALTER TABLE users 
ADD COLUMN IF NOT EXISTS user_code VARCHAR(10) UNIQUE;

-- 1.2. Criar índice para melhorar performance em buscas por código
CREATE INDEX IF NOT EXISTS idx_users_user_code ON users(user_code);

-- 1.3. Comentário na coluna
COMMENT ON COLUMN users.user_code IS 'Código único do usuário baseado no role: MK01XX (admin), MK02XX (merchant), MK03XX (cliente)';

-- ============================================
-- 2. VERIFICAÇÕES E VALIDAÇÕES
-- ============================================

-- Verificar se a coluna foi criada
DO $$
BEGIN
    IF EXISTS (
        SELECT 1 FROM information_schema.columns 
        WHERE table_name = 'users' AND column_name = 'user_code'
    ) THEN
        RAISE NOTICE '✅ Coluna user_code criada com sucesso';
    ELSE
        RAISE WARNING '⚠️  Coluna user_code não foi criada';
    END IF;
END $$;

-- Verificar se o índice foi criado
DO $$
BEGIN
    IF EXISTS (
        SELECT 1 FROM pg_indexes 
        WHERE tablename = 'users' AND indexname = 'idx_users_user_code'
    ) THEN
        RAISE NOTICE '✅ Índice idx_users_user_code criado com sucesso';
    ELSE
        RAISE WARNING '⚠️  Índice idx_users_user_code não foi criado';
    END IF;
END $$;

-- Mostrar resumo
SELECT 
    'users' as tabela,
    column_name,
    data_type,
    character_maximum_length as max_length,
    is_nullable
FROM information_schema.columns
WHERE table_name = 'users' 
AND column_name = 'user_code';

