dba595fd2d
Migration 20260511000001 adiciona campo 'notes' (Observacao, textarea, sort_order=30) como campo extra default no commitment determinado 'Sessao'. Antes Sessao era a unica excecao entre os nativos — Leitura/Supervisao/ Aula/Analise ja tinham. Padroniza pra que a Observacao da sessao siga o mesmo mecanismo de extra_fields dos outros, e o frontend remova a textarea hardcoded do AgendaEventDialog (proximo commit). Backfill: insere 'notes' em TODOS os commitments Sessao ja existentes (idempotente). Forward-fix: substitui a funcao seed_determined_commitments incluindo o bloco de Sessao + 'notes' pra novos tenants. Schema regenerado via db.cjs schema-export pra refletir o estado pos- migration. agenciapsi-db-dashboard.html regenerado pelo generate-dashboard.cjs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
180 lines
8.8 KiB
SQL
180 lines
8.8 KiB
SQL
-- Tables: Dev / Tracking
|
|
-- Gerado automaticamente em 2026-05-11T16:53:50.930Z
|
|
-- Total: 10
|
|
|
|
CREATE TABLE public.dev_auditoria_items (
|
|
id bigint NOT NULL,
|
|
categoria character varying(120),
|
|
titulo text NOT NULL,
|
|
descricao_problema text,
|
|
solucao text,
|
|
severidade character varying(20),
|
|
status character varying(20) DEFAULT 'aberto'::character varying NOT NULL,
|
|
resolvido_em date,
|
|
sessao_resolucao character varying(160),
|
|
arquivo_afetado text,
|
|
tags text[] DEFAULT '{}'::text[],
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
ordem integer DEFAULT 0 NOT NULL,
|
|
CONSTRAINT dev_auditoria_items_severidade_check CHECK (((severidade IS NULL) OR ((severidade)::text = ANY ((ARRAY['critico'::character varying, 'alto'::character varying, 'medio'::character varying, 'baixo'::character varying])::text[])))),
|
|
CONSTRAINT dev_auditoria_items_status_check CHECK (((status)::text = ANY ((ARRAY['aberto'::character varying, 'em_analise'::character varying, 'resolvido'::character varying, 'wontfix'::character varying, 'duplicado'::character varying])::text[])))
|
|
);
|
|
|
|
CREATE TABLE public.dev_comparison_competitor_status (
|
|
id bigint NOT NULL,
|
|
comparison_id bigint NOT NULL,
|
|
competitor_id bigint NOT NULL,
|
|
status character varying(20) DEFAULT 'a_definir'::character varying NOT NULL,
|
|
nota text,
|
|
fonte character varying(20),
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
CONSTRAINT dev_comparison_competitor_status_fonte_check CHECK (((fonte IS NULL) OR ((fonte)::text = ANY ((ARRAY['fetched'::character varying, 'observacao'::character varying, 'publico'::character varying, 'hipotese'::character varying])::text[])))),
|
|
CONSTRAINT dev_comparison_competitor_status_status_check CHECK (((status)::text = ANY ((ARRAY['tem'::character varying, 'parcial'::character varying, 'gap'::character varying, 'na'::character varying, 'a_definir'::character varying])::text[])))
|
|
);
|
|
|
|
CREATE TABLE public.dev_comparison_matrix (
|
|
id bigint NOT NULL,
|
|
dominio character varying(120),
|
|
feature text NOT NULL,
|
|
nosso_status character varying(20) DEFAULT 'a_definir'::character varying NOT NULL,
|
|
nossa_nota text,
|
|
importancia character varying(20),
|
|
ordem integer DEFAULT 0 NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
CONSTRAINT dev_comparison_matrix_importancia_check CHECK (((importancia IS NULL) OR ((importancia)::text = ANY ((ARRAY['alta'::character varying, 'media'::character varying, 'baixa'::character varying])::text[])))),
|
|
CONSTRAINT dev_comparison_matrix_nosso_status_check CHECK (((nosso_status)::text = ANY ((ARRAY['tem'::character varying, 'parcial'::character varying, 'gap'::character varying, 'na'::character varying, 'a_definir'::character varying])::text[])))
|
|
);
|
|
|
|
CREATE TABLE public.dev_competitor_features (
|
|
id bigint NOT NULL,
|
|
competitor_id bigint NOT NULL,
|
|
categoria character varying(120),
|
|
nome text NOT NULL,
|
|
descricao text,
|
|
fonte character varying(20) DEFAULT 'publico'::character varying NOT NULL,
|
|
fonte_url text,
|
|
data_fonte date,
|
|
destaque boolean DEFAULT false NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
ordem integer DEFAULT 0 NOT NULL,
|
|
CONSTRAINT dev_competitor_features_fonte_check CHECK (((fonte)::text = ANY ((ARRAY['fetched'::character varying, 'observacao'::character varying, 'publico'::character varying, 'hipotese'::character varying])::text[])))
|
|
);
|
|
|
|
CREATE TABLE public.dev_competitors (
|
|
id bigint NOT NULL,
|
|
slug character varying(80) NOT NULL,
|
|
nome character varying(160) NOT NULL,
|
|
pais character varying(40),
|
|
foco character varying(160),
|
|
pricing text,
|
|
posicionamento text,
|
|
url text,
|
|
ultima_pesquisa date,
|
|
notas text,
|
|
ativo boolean DEFAULT true NOT NULL,
|
|
ordem integer DEFAULT 0 NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
|
|
CREATE TABLE public.dev_generation_log (
|
|
id bigint NOT NULL,
|
|
tipo character varying(40) NOT NULL,
|
|
comando text,
|
|
sucesso boolean DEFAULT false NOT NULL,
|
|
stdout text,
|
|
stderr text,
|
|
duration_ms integer,
|
|
metadata jsonb DEFAULT '{}'::jsonb,
|
|
trigger_user_id uuid,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
|
|
CREATE TABLE public.dev_roadmap_items (
|
|
id bigint NOT NULL,
|
|
phase_id bigint NOT NULL,
|
|
numero integer,
|
|
bloco character varying(160),
|
|
feature text NOT NULL,
|
|
descricao text,
|
|
esforco character varying(4),
|
|
prioridade character varying(20),
|
|
status character varying(20) DEFAULT 'pendente'::character varying NOT NULL,
|
|
notas text,
|
|
assignee character varying(120),
|
|
data_inicio date,
|
|
data_conclusao date,
|
|
ordem integer DEFAULT 0 NOT NULL,
|
|
tags text[] DEFAULT '{}'::text[],
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
CONSTRAINT dev_roadmap_items_esforco_check CHECK (((esforco IS NULL) OR ((esforco)::text = ANY ((ARRAY['S'::character varying, 'M'::character varying, 'L'::character varying, 'XL'::character varying])::text[])))),
|
|
CONSTRAINT dev_roadmap_items_prioridade_check CHECK (((prioridade IS NULL) OR ((prioridade)::text = ANY ((ARRAY['bloqueador'::character varying, 'alta'::character varying, 'media'::character varying, 'diferencial'::character varying])::text[])))),
|
|
CONSTRAINT dev_roadmap_items_status_check CHECK (((status)::text = ANY ((ARRAY['pendente'::character varying, 'em_andamento'::character varying, 'concluido'::character varying, 'cancelado'::character varying, 'bloqueado'::character varying])::text[])))
|
|
);
|
|
|
|
CREATE TABLE public.dev_roadmap_phases (
|
|
id bigint NOT NULL,
|
|
numero integer NOT NULL,
|
|
nome character varying(160) NOT NULL,
|
|
objetivo text,
|
|
timeline_sugerida character varying(160),
|
|
criterio_saida text,
|
|
status character varying(20) DEFAULT 'planejada'::character varying NOT NULL,
|
|
data_inicio date,
|
|
data_fim date,
|
|
ordem integer DEFAULT 0 NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
CONSTRAINT dev_roadmap_phases_status_check CHECK (((status)::text = ANY ((ARRAY['planejada'::character varying, 'em_andamento'::character varying, 'concluida'::character varying, 'arquivada'::character varying])::text[])))
|
|
);
|
|
|
|
CREATE TABLE public.dev_test_items (
|
|
id bigint NOT NULL,
|
|
area character varying(80) NOT NULL,
|
|
categoria character varying(120),
|
|
titulo text NOT NULL,
|
|
arquivo text,
|
|
descricao text,
|
|
total_tests integer DEFAULT 0,
|
|
passing integer DEFAULT 0,
|
|
failing integer DEFAULT 0,
|
|
skipped integer DEFAULT 0,
|
|
cobertura_pct numeric(5,2),
|
|
status character varying(20) DEFAULT 'ok'::character varying NOT NULL,
|
|
last_run_at timestamp with time zone,
|
|
sessao_criacao character varying(160),
|
|
notas text,
|
|
tags text[] DEFAULT '{}'::text[],
|
|
ordem integer DEFAULT 0 NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
CONSTRAINT dev_test_items_status_check CHECK (((status)::text = ANY ((ARRAY['ok'::character varying, 'falhando'::character varying, 'pendente'::character varying, 'obsoleto'::character varying, 'a_escrever'::character varying])::text[])))
|
|
);
|
|
|
|
CREATE TABLE public.dev_verificacoes_items (
|
|
id bigint NOT NULL,
|
|
area character varying(80) NOT NULL,
|
|
categoria character varying(120),
|
|
titulo text NOT NULL,
|
|
descricao text,
|
|
resultado text,
|
|
acao_sugerida text,
|
|
severidade character varying(20),
|
|
status character varying(20) DEFAULT 'pendente'::character varying NOT NULL,
|
|
verificado_em date,
|
|
sessao_verificacao character varying(160),
|
|
arquivo_afetado text,
|
|
auditoria_item_id bigint,
|
|
tags text[] DEFAULT '{}'::text[],
|
|
ordem integer DEFAULT 0 NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
updated_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
CONSTRAINT dev_verificacoes_items_severidade_check CHECK (((severidade IS NULL) OR ((severidade)::text = ANY ((ARRAY['critico'::character varying, 'alto'::character varying, 'medio'::character varying, 'baixo'::character varying])::text[])))),
|
|
CONSTRAINT dev_verificacoes_items_status_check CHECK (((status)::text = ANY ((ARRAY['pendente'::character varying, 'verificando'::character varying, 'ok'::character varying, 'problema'::character varying, 'corrigido'::character varying, 'wontfix'::character varying])::text[])))
|
|
);
|