-- =============================================
-- ADICIONAR SISTEMA DE SENHAS PARA CLIENTES
-- =============================================

-- Adicionar coluna de senha na tabela clientes (opcional, para referência)
ALTER TABLE clientes 
ADD COLUMN IF NOT EXISTS senha_hash VARCHAR(255);

-- Criar índice para melhor performance nas consultas de autenticação
CREATE INDEX IF NOT EXISTS idx_clientes_whatsapp ON clientes(whatsapp);
CREATE INDEX IF NOT EXISTS idx_clientes_email ON clientes(email);

-- Comentários para documentação
COMMENT ON COLUMN clientes.senha_hash IS 'Hash da senha do cliente para autenticação no catálogo';

-- Habilitar RLS (Row Level Security) se ainda não estiver habilitado
ALTER TABLE clientes ENABLE ROW LEVEL SECURITY;

-- Remover políticas existentes se houver (para evitar conflitos)
DROP POLICY IF EXISTS "Clientes podem ver apenas seus próprios dados" ON clientes;
DROP POLICY IF EXISTS "Permitir inserção de novos clientes" ON clientes;
DROP POLICY IF EXISTS "Clientes podem atualizar seus próprios dados" ON clientes;

-- Política para permitir inserção de novos clientes (cadastro público)
CREATE POLICY "Permitir inserção de novos clientes" ON clientes
FOR INSERT WITH CHECK (true);

-- Política para permitir leitura pública de clientes (necessário para login)
CREATE POLICY "Permitir leitura de clientes" ON clientes
FOR SELECT USING (true);

-- Política para permitir que clientes atualizem seus próprios dados
CREATE POLICY "Clientes podem atualizar seus próprios dados" ON clientes
FOR UPDATE USING (auth.uid()::text = id::text);

-- Verificar se as políticas foram criadas corretamente
SELECT schemaname, tablename, policyname, permissive, roles, cmd, qual 
FROM pg_policies 
WHERE tablename = 'clientes';
