-- ============================================= -- 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';