Skip to content

feat(pm/contratado-realizado): contratado × realizado + alerta de ultrapassagem (Fase 1 · P6) - #3736

Open
psgestaoecapital wants to merge 3 commits into
mainfrom
claude/pm-contratado-realizado
Open

psgestaoecapital wants to merge 3 commits into
mainfrom
claude/pm-contratado-realizado

Conversation

@psgestaoecapital

Copy link
Copy Markdown
Owner

O que entrega

Blueprint P&M §2 · Fase 1 · P6 (META CEO 02/11). Tela nova /dashboard/pm/contratado-realizado: por cliente e item do contrato — contratado (ex.: 4 posts/mês), realizado (jobs do serviço no período, sem contar excluídos), saldo, % e situação (verde = no prazo · amarelo = no limite ≥80% · vermelho = ultrapassou).

  • fn_pm_contratado_realizado(mês, cliente?) — leitura, escopo por empresa via get_user_company_ids() (RD-45).
  • fn_pm_contrato_item_previa(contrato, serviço, mês?, tipo?) — prévia do alerta amarelo ao criar/mover um job que passa do contratado (nunca bloqueia — só avisa).
  • ? (RD-95) em todo filtro/coluna/indicador; system_screens com origem do dado (RD-98 p3); menu P&M; mobile-first (tabela → cards ≤720px); tema Espresso (RD-96/RD-99).
  • Seed DEMO idempotente (NOT EXISTS, sem tocar fn_demo_reset) com 1 cliente estourando.

Segurança / RDs

  • Aditiva: nenhuma tabela nova, nenhum dado de cliente alterado/apagado; leitura não exclui nada.
  • SECURITY DEFINER com REVOKE ALL … FROM PUBLIC, anon + GRANT … authenticated, service_role e guarda por empresa.
  • Migration 20261102161635 acima da main, faixa de segundos :35.

Prova no dado (RD-38, BEGIN…ROLLBACK)

  • As duas funções compilam contra o schema vivo (criadas em transação revertida — nada aplicado via MCP, RD-52).
  • Classificação no dado real da DEMO (contrato 09e20559, mês atual): Reels contratado 1 / realizado 2 → estourado (saldo −1); Carrossel 2/1 → ok; Post feed 4/0 → ok.

Observação

O mecanismo do alerta (RPC fn_pm_contrato_item_previa) está pronto; a ligação do aviso amarelo dentro do board de jobs (criar/mover) é o próximo passo, já apoiado nessa RPC.

Code: code-desenvolvedor-3


Generated by Claude Code

…+ alerta de ultrapassagem

Blueprint P&M §2 · Fase 1 · P6 (META CEO 02/11). Tela nova /dashboard/pm/contratado-realizado:
por cliente e item do contrato — contratado, realizado (jobs do serviço no período), saldo, % e
situação (verde/amarelo/vermelho). RPC fn_pm_contratado_realizado (leitura, escopo por empresa) e
fn_pm_contrato_item_previa (prévia do alerta amarelo ao criar/mover job, nunca bloqueia). '?' RD-95
em todo filtro/coluna, system_screens com origem do dado (RD-98 p3), menu P&M, mobile-first.
Seed DEMO idempotente com 1 cliente estourando (Reels 1 contratado / 2 realizado). Aditiva, RD-38 provado.

Code: code-desenvolvedor-3

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LSqFZv3pP5kjMoS96A1dgu
@vercel

vercel Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
erp-psgestao Ready Ready Preview Nov 1, 2026 3:18pm UTC

Request Review

Copy link
Copy Markdown
Owner Author

MERGE AUTORIZADO #3736 — gilberto-revisor · patch-id fc748e754d09c1b94c01181130a0ef8a99e363ad

Revisão aprovada nos 6 critérios técnicos (faixa amarela, autorizo em nome do CEO): (1) isolamento multi-tenant intacto — as duas funções são SECURITY DEFINER com search_path fixo, escopo por get_user_company_ids() em itens e jobs, REVOKE PUBLIC/anon + GRANT authenticated/service_role, sem tabela nova nem policy permissiva; (2) RD-55 — 100% aditiva, nenhum dado de cliente alterado/apagado, catálogos idempotentes e seed DEMO com NOT EXISTS sem tocar fn_demo_reset; (3) LGPD — sem nova PII, nomes só no escopo do tenant; (4) fiscal — N/A; (5) RD-38 — gates estáticos verdes (migrations, fn_guards, menu, preview) + verificação no schema vivo (todas as tabelas/colunas existem, as duas funções são novas) + prova em BEGIN…ROLLBACK no dado real DEMO; (6) sensível de baixo risco, fora de categoria reservada. RD-95 "?" em todo campo/coluna/filtro/indicador, RD-96 tema Espresso próprio e mobile-first, menu + system_screens + feature_catalog registrados.


Generated by Claude Code

…635->162535, aditiva, só rename)

Migration 20261102161635 ficou abaixo da main (tip 20261102161735).
Renomeada para 20261102162535 (faixa :35 do code-desenvolvedor-3), aditiva.

Code: code-desenvolvedor-3

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LSqFZukzMHHXTJfv26FaRe

This branch was successfully deployed

1 active deployment
Preview — ddbd6b95 Deployed Nov 1, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants