Refatoracao geral: limpeza de logs, correcoes de fim de linha, animacoes framer-motion e automacao de deploy no package.json
This commit is contained in:
@@ -1,58 +1,58 @@
|
||||
-- Adicionar status 'arquivado' aos projetos
|
||||
ALTER TABLE projetos DROP CONSTRAINT IF EXISTS projetos_status_check;
|
||||
ALTER TABLE projetos ADD CONSTRAINT projetos_status_check
|
||||
CHECK (status IN ('rascunho', 'em_andamento', 'revisao', 'finalizado', 'cancelado', 'arquivado'));
|
||||
|
||||
-- Adicionar campo 'ativo' à tabela templates_topicos (soft delete)
|
||||
ALTER TABLE templates_topicos ADD COLUMN IF NOT EXISTS ativo BOOLEAN DEFAULT TRUE;
|
||||
CREATE INDEX IF NOT EXISTS idx_topicos_ativo ON templates_topicos(ativo);
|
||||
|
||||
-- Adicionar campo 'inativado_em' para rastreamento
|
||||
ALTER TABLE templates_topicos ADD COLUMN IF NOT EXISTS inativado_em TIMESTAMP;
|
||||
ALTER TABLE templates_customizados ADD COLUMN IF NOT EXISTS inativado_em TIMESTAMP;
|
||||
|
||||
-- Comentários explicativos
|
||||
COMMENT ON COLUMN templates_topicos.ativo IS 'Soft delete: FALSE oculta o tópico de novas criações mas mantém em databooks existentes';
|
||||
COMMENT ON COLUMN templates_customizados.ativo IS 'Soft delete: FALSE oculta o template de novas criações mas mantém em databooks existentes';
|
||||
|
||||
-- Criar função para "soft delete" de templates
|
||||
CREATE OR REPLACE FUNCTION soft_delete_template()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
-- Ao invés de deletar, marca como inativo
|
||||
UPDATE templates_customizados
|
||||
SET ativo = FALSE, inativado_em = NOW()
|
||||
WHERE id = OLD.id;
|
||||
|
||||
-- Impede a exclusão física
|
||||
RETURN NULL;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- Criar trigger para soft delete de templates
|
||||
DROP TRIGGER IF EXISTS prevent_template_hard_delete ON templates_customizados;
|
||||
CREATE TRIGGER prevent_template_hard_delete
|
||||
BEFORE DELETE ON templates_customizados
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION soft_delete_template();
|
||||
|
||||
-- Criar função para "soft delete" de tópicos
|
||||
CREATE OR REPLACE FUNCTION soft_delete_topico()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
-- Ao invés de deletar, marca como inativo
|
||||
UPDATE templates_topicos
|
||||
SET ativo = FALSE, inativado_em = NOW()
|
||||
WHERE id = OLD.id;
|
||||
|
||||
-- Impede a exclusão física
|
||||
RETURN NULL;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- Criar trigger para soft delete de tópicos
|
||||
DROP TRIGGER IF EXISTS prevent_topico_hard_delete ON templates_topicos;
|
||||
CREATE TRIGGER prevent_topico_hard_delete
|
||||
BEFORE DELETE ON templates_topicos
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION soft_delete_topico();
|
||||
-- Adicionar status 'arquivado' aos projetos
|
||||
ALTER TABLE projetos DROP CONSTRAINT IF EXISTS projetos_status_check;
|
||||
ALTER TABLE projetos ADD CONSTRAINT projetos_status_check
|
||||
CHECK (status IN ('rascunho', 'em_andamento', 'revisao', 'finalizado', 'cancelado', 'arquivado'));
|
||||
|
||||
-- Adicionar campo 'ativo' à tabela templates_topicos (soft delete)
|
||||
ALTER TABLE templates_topicos ADD COLUMN IF NOT EXISTS ativo BOOLEAN DEFAULT TRUE;
|
||||
CREATE INDEX IF NOT EXISTS idx_topicos_ativo ON templates_topicos(ativo);
|
||||
|
||||
-- Adicionar campo 'inativado_em' para rastreamento
|
||||
ALTER TABLE templates_topicos ADD COLUMN IF NOT EXISTS inativado_em TIMESTAMP;
|
||||
ALTER TABLE templates_customizados ADD COLUMN IF NOT EXISTS inativado_em TIMESTAMP;
|
||||
|
||||
-- Comentários explicativos
|
||||
COMMENT ON COLUMN templates_topicos.ativo IS 'Soft delete: FALSE oculta o tópico de novas criações mas mantém em databooks existentes';
|
||||
COMMENT ON COLUMN templates_customizados.ativo IS 'Soft delete: FALSE oculta o template de novas criações mas mantém em databooks existentes';
|
||||
|
||||
-- Criar função para "soft delete" de templates
|
||||
CREATE OR REPLACE FUNCTION soft_delete_template()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
-- Ao invés de deletar, marca como inativo
|
||||
UPDATE templates_customizados
|
||||
SET ativo = FALSE, inativado_em = NOW()
|
||||
WHERE id = OLD.id;
|
||||
|
||||
-- Impede a exclusão física
|
||||
RETURN NULL;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- Criar trigger para soft delete de templates
|
||||
DROP TRIGGER IF EXISTS prevent_template_hard_delete ON templates_customizados;
|
||||
CREATE TRIGGER prevent_template_hard_delete
|
||||
BEFORE DELETE ON templates_customizados
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION soft_delete_template();
|
||||
|
||||
-- Criar função para "soft delete" de tópicos
|
||||
CREATE OR REPLACE FUNCTION soft_delete_topico()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
-- Ao invés de deletar, marca como inativo
|
||||
UPDATE templates_topicos
|
||||
SET ativo = FALSE, inativado_em = NOW()
|
||||
WHERE id = OLD.id;
|
||||
|
||||
-- Impede a exclusão física
|
||||
RETURN NULL;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- Criar trigger para soft delete de tópicos
|
||||
DROP TRIGGER IF EXISTS prevent_topico_hard_delete ON templates_topicos;
|
||||
CREATE TRIGGER prevent_topico_hard_delete
|
||||
BEFORE DELETE ON templates_topicos
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION soft_delete_topico();
|
||||
|
||||
Reference in New Issue
Block a user