| Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior |
| pres:gerti:gestao_de_ativos:portal:er_011 [28/07/2026 15:36] – pramorim | pres:gerti:gestao_de_ativos:portal:er_011 [28/08/2026 19:41] (atual) – pramorim |
|---|
| |Badge de Sessão|Indicador Visual|Condicional|Texto descritivo da sessão (ex.: "Tribunal Pleno — Ordinária")|–|Cor definida conforme o tipo de plataforma (RN06). Quando há múltiplas sessões no dia, um badge por sessão é exibido.| | |Badge de Sessão|Indicador Visual|Condicional|Texto descritivo da sessão (ex.: "Tribunal Pleno — Ordinária")|–|Cor definida conforme o tipo de plataforma (RN06). Quando há múltiplas sessões no dia, um badge por sessão é exibido.| |
| |Legenda|Componente de Legenda|Sim|Azul = Sessão Presencial; Verde = Videoconferência; Laranja = Votação Simultânea|–|Exibição obrigatória e persistente na tela (RN06).| | |Legenda|Componente de Legenda|Sim|Azul = Sessão Presencial; Verde = Videoconferência; Laranja = Votação Simultânea|–|Exibição obrigatória e persistente na tela (RN06).| |
| |Estado "Sem sessões no mês"|Mensagem Informativa|Condicional|Mensagem informativa|–|Exibido quando nenhuma sessão existe no mês consultado.| | |Estado "Sem sessões no mês"|Mensagem Informativa|Condicional|"Nenhuma sessão agendada para {mês} de {ano} em exibição."|–|Exibido quando nenhuma sessão existe no mês consultado.| |
| |Estado de Carregamento|Skeleton animado|Condicional|–|–|Exibido durante a chamada à API.| | |Estado de Carregamento|Skeleton animado|Condicional|–|–|Exibido durante a chamada à API.| |
| |
| |Colegiado|Catálogo (`/api/pauta/sessao`)|`nomeCamara`|Sim|"Primeira Câmara" / "Segunda Câmara" / "Tribunal Pleno".| | |Colegiado|Catálogo (`/api/pauta/sessao`)|`nomeCamara`|Sim|"Primeira Câmara" / "Segunda Câmara" / "Tribunal Pleno".| |
| |Tipo da Sessão|Catálogo (`/api/pauta/sessao`)|`tipoSessao`|Sim|"Ordinária" / "Extraordinária Adm." / "Extraordinária".| | |Tipo da Sessão|Catálogo (`/api/pauta/sessao`)|`tipoSessao`|Sim|"Ordinária" / "Extraordinária Adm." / "Extraordinária".| |
| |Plataforma|Catálogo (`/api/pauta/sessao`)|Derivado de `tipoSessao` + `informacaoSessao`|Sim|"Presencial" / "Videoconferência" / "Virtual (Votação Simultânea — Plenário Virtual)".| | |Plataforma|Oracle|`PLD_SESSAO.INDR_VIRTUAL_A`|Sim|"Presencial = 'N'" / "Videoconferência = 'V'" / "Virtual = 'S' ".| |
| |Situação|Oracle|`PLD_SESSAO.INDR_STATUS_A`|Sim|"Ativa" / "Encerrada" / "Cancelada" / "Inativa". Sessão Cancelada exibe banner de aviso (RN08).| | |Situação|Oracle|`PLD_SESSAO.INDR_STATUS_A`|Sim|"Ativa" / "Encerrada". Sessões Cancelada e Inativa não são retornadas pela API e não chegam a esta tela (RN03, RN08).| |
| |Número da Sessão|Oracle|`PLD_SESSAO.NUMR_SESSAO_N`|Sim|–| | |Número da Sessão|Oracle|`PLD_SESSAO.NUMR_SESSAO_N`|Sim|–| |
| |Data da Sessão|Catálogo (`/api/pauta/sessao`)|`dataSessao` + `horarioSessao` → formato `dd/MM/yyyy HH:mm`|Sim|–| | |Data da Sessão|Catálogo (`/api/pauta/sessao`)|`dataSessao` + `horarioSessao` → formato `dd/MM/yyyy HH:mm`|Sim|–| |
| |Membros|Catálogo (`/api/pauta/sessao`)|`Membro.nomeMembro` + `Membro.tituloMembro`|Sim|Link "ver membros" abre modal/painel lateral (RN12).| | |Membros|Catálogo (`/api/pauta/sessao`)|`Membro.nomeMembro` + `Membro.tituloMembro`|Sim|Link "ver membros" abre modal/painel lateral (RN12).| |
| |Fundamentação Legal|Catálogo (`/api/pauta/sessao`)|`definicaoPauta`|Sim|Texto fixo: **"PAUTA (art. 150, Incisos I a VI, RI-TCE)"** (RN11).| | |Fundamentação Legal|Catálogo (`/api/pauta/sessao`)|`definicaoPauta`|Sim|Texto fixo: **"PAUTA (art. 150, Incisos I a VI, RI-TCE)"** (RN11).| |
| |Alerta de Sessão|Catálogo (`/api/pauta/sessao`)|`alertaSessao`|Condicional|Exibido quando `alertaSessao` estiver preenchido (ex.: sessão cancelada) (RN08).| | |Alerta de Sessão|Catálogo (`/api/pauta/sessao`)|`alertaSessao`|Condicional|Exibido quando `alertaSessao` estiver preenchido, para avisos da sessão em curso. Não se aplica a sessão cancelada, que não é retornada pela API (RN03).| |
| |Link "Assistir transmissão"|Oracle|Campo de link de transmissão em `PLD_SESSAO`|Condicional|Exibido quando sessão é Videoconferência e link estiver disponível (RN15).| | |Link "Assistir transmissão"|Oracle|Campo de link de transmissão em `PLD_SESSAO`|Condicional|Exibido quando sessão é Videoconferência e link estiver disponível (RN15).| |
| |Chips "Outras Sessões do Dia"|–|Sessões do mesmo dia retornadas pela API|Condicional|Exibidos quando há mais de uma sessão no dia. Troca sem alteração de URL (RN14).| | |Chips "Outras Sessões do Dia"|–|Sessões do mesmo dia retornadas pela API|Condicional|Exibidos quando há mais de uma sessão no dia. Troca sem alteração de URL (RN14).| |
| |Ata — Aguardando Sessão|`AGUARDANDO_SESSAO`|Data da sessão ainda não chegou|Azul claro (`blue-50`)|Nenhuma.| | |Ata — Aguardando Sessão|`AGUARDANDO_SESSAO`|Data da sessão ainda não chegou|Azul claro (`blue-50`)|Nenhuma.| |
| |Ata — Em Elaboração|`EM_ELABORACAO`|Sessão encerrada, ata em preparo|Amarelo (`amber-50`)|Nenhuma.| | |Ata — Em Elaboração|`EM_ELABORACAO`|Sessão encerrada, ata em preparo|Amarelo (`amber-50`)|Nenhuma.| |
| |Ata — Elaborada|`ELABORADA`|Ata finalizada com URL disponível|Verde (`green-50`)|Botão "Baixar Ata" (link para PDF) (RN13).| | |Ata — Elaborada|`ELABORADA`|Ata finalizada, com arquivo e data de elaboração retornados na consulta|Verde (`green-50`)|Botão "Baixar Ata" — download direto do arquivo. O banner exibe também a data de elaboração (RN13).| |
| |
| **Barra de Filtros (client-side):** | **Barra de Filtros (client-side):** |
| ^Filtro^Tipo^Campo Filtrado^Observação| | ^Filtro^Tipo^Campo Filtrado^Observação| |
| |Relator|Seleção (`<select>`)|`relator`|Lista de relatores únicos da sessão corrente.| | |Relator|Seleção (`<select>`)|`relator`|Lista de relatores únicos da sessão corrente.| |
| |Procurador|Seleção (`<select>`)|`procurador`|Lista de procuradores únicos da sessão corrente.| | |Colegiado / Plenário|Campo fixo, não alterável|–|Exibe o colegiado da sessão exibida (ex.: "Tribunal Pleno — Ordinária"). Bloqueado: uma sessão pertence a um único colegiado (RN10).| |
| |Colegiado / Plenário|Seleção (`<select>`)|`colegiado`|Opções: Primeira Câmara / Segunda Câmara / Tribunal Pleno.| | |
| |Texto livre|Campo Texto (`<input>`)|`numeroProcesso` + `assunto` + `ementa`|Busca parcial, case-insensitive (RN10).| | |Texto livre|Campo Texto (`<input>`)|`numeroProcesso` + `assunto` + `ementa`|Busca parcial, case-insensitive (RN10).| |
| |Contador de resultados|Texto informativo|–|"Exibindo X de Y processos" — exibido quando algum filtro estiver ativo (RN10).| | |Contador de resultados|Texto informativo|–|"Exibindo X de Y processos" — exibido quando algum filtro estiver ativo (RN10).| |
| |
| ^Campo^Fonte^Campo / Origem^Obrigatório^Fallback| | ^Campo^Fonte^Campo / Origem^Obrigatório^Fallback| |
| |N° Processo (link)|Oracle|`CODG_PROCESSO_N` — exibido; `PROAUTU_ID` — usado no link para RF-002 (RN01)|Sim|"Não informado" (RN04).| | |N° Processo (link)|Oracle|`CODG_PROCESSO_N` — exibido; `PROAUTU_ID` — usado no link para RF-002 (RN01)|Sim|"Não informado" (RN04). Em processo sigiloso, exibido sem link (RN16).| |
| |Assunto|Catálogo (`/api/pauta/sessao`)|`Processo.assunto`|Sim|"Não informado" (RN04).| | |Assunto|Catálogo (`/api/pauta/sessao`)|`Processo.assunto`|Sim|"Não informado" (RN04).| |
| |Ementa|Catálogo (`/api/pauta/sessao`)|`Processo.ementa`|Sim|"Não informado" (RN04).| | |Ementa|Catálogo (`/api/pauta/sessao`)|`Processo.ementa`|Sim|"Não informado" (RN04). Em processo sigiloso, omitida (RN16).| |
| |Relator|Catálogo (`/api/pauta/sessao`)|`Membro.nomeMembro` com função Relator|Sim|"Não informado" (RN04).| | |Relator|Catálogo (`/api/pauta/sessao`)|`Membro.nomeMembro` com função Relator|Sim|"Não informado" (RN04).| |
| |Procurador|Catálogo (`/api/pauta/sessao`)|`Membro.nomeMembro` com função Procurador|Sim|"Não informado" (RN04).| | |
| |Badge "Julgado"|Catálogo (`/api/pauta/sessao`)|`Processo.julgado` (boolean)|Condicional|Badge omitido quando `julgado = false` (RN05).| | |Badge "Julgado"|Catálogo (`/api/pauta/sessao`)|`Processo.julgado` (boolean)|Condicional|Badge omitido quando `julgado = false` (RN05).| |
| |Botão "Assistir gravação"|Catálogo (`/api/pauta/videos`)|Vínculo por `Processo.id`; campo de vídeo a confirmar com equipe do catálogo|Condicional|Botão omitido quando processo não constar na resposta de vídeos (RN09).| | |Botão "Assistir gravação"|Catálogo (`/api/pauta/videos`)|Vínculo por `Processo.id`; a API retorna o link da gravação|Condicional|Botão omitido quando processo não constar na resposta de vídeos (RN09).| |
| | |Badge "Sigiloso"|Catálogo (`/api/pauta/sessao`)|`Processo.ehProcessoSigiloso` (boolean)|Condicional|Exibido quando `ehProcessoSigiloso = true`. Sinaliza que a ausência de ementa e de interessados é restrição legal, e não falta de cadastro (RN16).| |
| |Paginação|–|Componente de paginação|Sim|Padrão: 20 itens/página; seletor: 10 / 20 / 50. Total reflete conjunto filtrado (RN02).| | |Paginação|–|Componente de paginação|Sim|Padrão: 20 itens/página; seletor: 10 / 20 / 50. Total reflete conjunto filtrado (RN02).| |
| |
| |01|O sistema recebe a lista de sessões do mês retornada pela API.| | | | |01|O sistema recebe a lista de sessões do mês retornada pela API.| | | |
| |02|O sistema verifica se há sessões no mês consultado.| | | | |02|O sistema verifica se há sessões no mês consultado.| | | |
| |02.1|Caso não haja sessões, o sistema exibe mensagem informativa de mês sem sessões.| |Tela 01| | |02.1|Caso não haja sessões, o sistema exibe a mensagem "Nenhuma sessão agendada para {mês} de {ano} em exibição.".| |Tela 01| |
| |03|O sistema renderiza a grade do calendário com os dias do mês.|RN03, RN06|Tela 01| | |03|O sistema renderiza a grade do calendário com os dias do mês.|RN03, RN06|Tela 01| |
| |04|Para cada sessão retornada, o sistema exibe um badge no dia correspondente, com cor determinada pelo tipo de plataforma.|RN06|Tela 01| | |04|Para cada sessão retornada, o sistema exibe um badge no dia correspondente, com cor determinada pelo tipo de plataforma.|RN06|Tela 01| |
| ^Passo^Ação^Regra^Tela| | ^Passo^Ação^Regra^Tela| |
| |01|O usuário clica em um badge de sessão em um dia do calendário.| |Tela 01| | |01|O usuário clica em um badge de sessão em um dia do calendário.| |Tela 01| |
| |02|O sistema navega para `/pautas/[DATA]`. Quando há múltiplas sessões no dia, todos os badges do mesmo dia usam a mesma URL base.| |Tela 02| | |02|O sistema navega para `/pautas/[DATA]?sessaoId={id}`, com o identificador da sessão do badge acionado. Quando a sessão não é informada, o sistema abre a **primeira sessão do dia**.|RN14|Tela 02| |
| |03|O sistema exibe o estado de carregamento (skeleton animado).| |Tela 02| | |03|O sistema exibe o estado de carregamento (skeleton animado).| |Tela 02| |
| |04|O sistema executa `GET /api/pautas/[DATA]`.| | | | |04|O sistema executa `GET /api/pautas/[DATA]`.| | | |
| |04.1|Caso a chamada retorne sucesso, o sistema executa o **[[#fluxo_05_-_renderizar_detalhe_da_sessao|Fluxo 05]]**.| | | | |04.1|Caso a chamada retorne sucesso, o sistema executa o **[[#fluxo_05_-_renderizar_detalhe_da_sessao|Fluxo 05]]**.| | | |
| |04.2|Caso a DATA seja inválida ou não possua sessão, o sistema retorna 404 (`notFound()`).| |Tela 02| | |04.2|Caso a DATA não possua sessão disponível, o sistema exibe a mensagem "Nenhuma sessão encontrada para esta data".|RN08|Tela 02| |
| | |04.3|Caso a DATA esteja em formato inválido, o sistema exibe a página de erro padrão.| |Tela 02| |
| |
| ==== Fluxo 05 - Renderizar Detalhe da Sessão ==== | ==== Fluxo 05 - Renderizar Detalhe da Sessão ==== |
| ^Passo^Ação^Regra^Tela| | ^Passo^Ação^Regra^Tela| |
| |01|O sistema exibe o cabeçalho da sessão com os campos: Colegiado, Tipo, Plataforma, Situação, Número da Sessão, Datas, Total de Processos, Membros e Fundamentação Legal.|RN11, RN12|Tela 02| | |01|O sistema exibe o cabeçalho da sessão com os campos: Colegiado, Tipo, Plataforma, Situação, Número da Sessão, Datas, Total de Processos, Membros e Fundamentação Legal.|RN11, RN12|Tela 02| |
| |01.1|Caso a sessão possua status Cancelada, o sistema exibe banner de aviso "Sessão Cancelada".|RN08|Tela 02| | |01.1|Sessão com status Cancelada não é retornada pela API e, portanto, não chega a ser renderizada — a data recai no **[[#fluxo_04_-_acessar_detalhe_de_sessao|Fluxo 04]]**, passo 04.2.|RN03, RN08|Tela 02| |
| |01.2|Caso a sessão seja do tipo Videoconferência e possua `linkTransmissao` preenchido, o sistema exibe o link "Assistir transmissão" no cabeçalho.|RN15|Tela 02| | |01.2|Caso a sessão seja do tipo Videoconferência e possua `linkTransmissao` preenchido, o sistema exibe o link "Assistir transmissão" no cabeçalho.|RN15|Tela 02| |
| |02|O sistema verifica a existência de múltiplas sessões no mesmo dia e exibe chips "Outras Sessões do Dia" quando aplicável.|RN14|Tela 02| | |02|O sistema verifica a existência de múltiplas sessões no mesmo dia e exibe chips "Outras Sessões do Dia" quando aplicável.|RN14|Tela 02| |
| ^Passo^Ação^Regra^Tela| | ^Passo^Ação^Regra^Tela| |
| |01|O sistema recupera a lista completa de processos da sessão retornada pela API.| |Tela 02| | |01|O sistema recupera a lista completa de processos da sessão retornada pela API.| |Tela 02| |
| |02|O sistema aplica os filtros ativos (relator, procurador, colegiado, texto livre) de forma cumulativa.|RN10|Tela 02| | |02|O sistema aplica os filtros ativos (relator da pauta, texto livre) de forma cumulativa.|RN10|Tela 02| |
| |03|O sistema exibe o contador "Exibindo X de Y processos" quando ao menos um filtro estiver ativo.|RN10|Tela 02| | |03|O sistema exibe o contador "Exibindo X de Y processos" quando ao menos um filtro estiver ativo.|RN10|Tela 02| |
| |03.1|Caso o filtro não retorne resultados, o sistema exibe a mensagem: "Nenhum processo encontrado para os filtros aplicados".|RN10|Tela 02| | |03.1|Caso o filtro não retorne resultados, o sistema exibe a mensagem: "Nenhum processo encontrado. Ajuste os filtros ou clique em ''Limpar filtros'' para ver todos os processos.".|RN10|Tela 02| |
| |04|O sistema renderiza os cards paginados do conjunto filtrado.|RN02|Tela 02| | |04|O sistema renderiza os cards paginados do conjunto filtrado.|RN02|Tela 02| |
| |05|Para cada card, o sistema exibe: N° Processo (link), Relator, Procurador, Assunto, Ementa, badge "Julgado" (quando aplicável) e botão "Assistir gravação" (quando disponível).|RN01, RN04, RN05, RN09|Tela 02| | |05|Para cada card, o sistema exibe: ordem na pauta, N° Processo (link), Relator, Assunto, Interessados, Ementa, badge "Julgado" (quando aplicável), badge "Sigiloso" (quando aplicável) e botão "Assistir gravação" (quando disponível).|RN01, RN04, RN05, RN09, RN16, RN17, RN18|Tela 02| |
| | |05.2|Em processo sigiloso, o N° Processo é exibido sem link e a ementa e os interessados são omitidos.|RN16|Tela 02| |
| |05.1|Campos ausentes são exibidos como "Não informado".|RN04|Tela 02| | |05.1|Campos ausentes são exibidos como "Não informado".|RN04|Tela 02| |
| |
| |
| ^Passo^Ação^Regra^Tela| | ^Passo^Ação^Regra^Tela| |
| |01|O usuário seleciona um valor em qualquer campo da barra de filtros (Relator, Procurador, Colegiado ou Texto livre).| |Tela 02| | |01|O usuário seleciona um valor em qualquer campo da barra de filtros (Relator da Pauta ou Texto livre).| |Tela 02| |
| |02|O sistema aplica os filtros cumulativamente (AND), sem nova chamada à API.|RN10|Tela 02| | |02|O sistema aplica os filtros cumulativamente (AND), sem nova chamada à API.|RN10|Tela 02| |
| |03|O sistema reseta a paginação para a página 1.|RN02|Tela 02| | |03|O sistema reseta a paginação para a página 1.|RN02|Tela 02| |
| |04|O sistema atualiza o contador "Exibindo X de Y processos".|RN10|Tela 02| | |04|O sistema atualiza o contador "Exibindo X de Y processos".|RN10|Tela 02| |
| |04.1|Caso nenhum processo atenda ao filtro, o sistema exibe a mensagem: "Nenhum processo encontrado para os filtros aplicados".|RN10|Tela 02| | |04.1|Caso nenhum processo atenda ao filtro, o sistema exibe a mensagem: "Nenhum processo encontrado. Ajuste os filtros ou clique em ''Limpar filtros'' para ver todos os processos.".|RN10|Tela 02| |
| |05|O sistema exibe o botão "Limpar filtros".|RN10|Tela 02| | |05|O sistema exibe o botão "Limpar filtros".|RN10|Tela 02| |
| |
| ^Passo^Ação^Regra^Tela| | ^Passo^Ação^Regra^Tela| |
| |01|O usuário clica no número do processo no card.| |Tela 02| | |01|O usuário clica no número do processo no card.| |Tela 02| |
| |02|O sistema abre `/processos/[autuacaoId]` em nova aba (RF-002).|RN01|–| | |02|O sistema abre `/processos/[autuacaoId]` na mesma aba (RF-002).|RN01|–| |
| | |02.1|Caso o processo seja sigiloso, o número não possui link e nenhuma navegação ocorre.|RN16|Tela 02| |
| |
| ==== Fluxo 10 - Assistir Gravação do Processo ==== | ==== Fluxo 10 - Assistir Gravação do Processo ==== |
| ^Passo^Ação^Regra^Tela| | ^Passo^Ação^Regra^Tela| |
| |01|O usuário clica no botão "Assistir gravação" dentro do card do processo.|RN09|Tela 02| | |01|O usuário clica no botão "Assistir gravação" dentro do card do processo.|RN09|Tela 02| |
| |02|O sistema verifica o tipo da gravação vinculada ao processo.|RN09| | | |02|O sistema exibe o reprodutor com a gravação vinculada ao processo, a partir do link retornado pela API.|RN09|Tela 02| |
| |02.1|Caso `gravacao.tipo === "YOUTUBE"`: o sistema abre modal com `<iframe>` embed do [[:pres:gerti:gestao_de_ativos:portal:youtube|YouTube]].|RN09|Tela 02| | |
| |02.2|Caso `gravacao.tipo === "ARQUIVO"`: o sistema abre `<video>` em modal ou link direto para o arquivo `.mp4`.|RN09|Tela 02| | |
| |
| ==== Fluxo 11 - Trocar Sessão no Mesmo Dia ==== | ==== Fluxo 11 - Trocar Sessão no Mesmo Dia ==== |
| ^Passo^Ação^Regra^Tela| | ^Passo^Ação^Regra^Tela| |
| |01|O usuário aciona o botão "Baixar Ata" exibido no banner de ata quando a situação for `ELABORADA`.|RN13|Tela 02| | |01|O usuário aciona o botão "Baixar Ata" exibido no banner de ata quando a situação for `ELABORADA`.|RN13|Tela 02| |
| |02|O sistema abre o link do PDF da ata em nova aba ou realiza download do arquivo.|RN13|–| | |02|O sistema realiza o download do arquivo da ata.|RN13|–| |
| |
| ===== RN – Regras de Negócio ===== | ===== RN – Regras de Negócio ===== |
| |
| ^ID^Descrição| | ^ID^Descrição| |
| |RN01|**Link para Detalhamento do Processo** – O N° Processo exibido no card deve ser um hiperlink que abre o detalhamento do processo (RF-002) em nova aba. O link utiliza o `autuacaoId` como identificador: `href="/processos/[autuacaoId]" target="_blank"`.| | |RN01|**Link para Detalhamento do Processo** – O N° Processo exibido no card deve ser um hiperlink que abre o detalhamento do processo (RF-002) **na mesma aba**. O link utiliza o `autuacaoId` como identificador: `href="/processos/[autuacaoId]"`. Em processo sigiloso o link é suprimido e o número é exibido como texto (RN16).| |
| |RN02|**Paginação dos Processos** – A lista de cards é sempre paginada. Padrão: 20 itens por página; seletor com opções: 10, 20 ou 50. O total reflete o conjunto filtrado, não o total bruto. A paginação reseta para a página 1 ao aplicar ou alterar qualquer filtro.| | |RN02|**Paginação dos Processos** – A lista de cards é sempre paginada. Padrão: 20 itens por página; seletor com opções: 10, 20 ou 50. O total reflete o conjunto filtrado, não o total bruto. A paginação reseta para a página 1 ao aplicar ou alterar qualquer filtro.| |
| |RN03|**Sessões Canceladas e Inativas são Ocultas** – Sessões com status Cancelada (`C`) ou Inativa (`I`) não são exibidas no calendário nem acessíveis via detalhe. Somente sessões com status Ativa (`A`) ou Encerrada (`E`) são exibidas.| | |RN03|**Sessões Canceladas e Inativas são Ocultas** – Sessões com status Cancelada (`C`) ou Inativa (`I`) não são exibidas no calendário nem acessíveis via detalhe. Somente sessões com status Ativa (`A`) ou Encerrada (`E`) são exibidas.| |
| |RN04|**Valor Padrão para Campos Ausentes** – Quando um campo obrigatório do card (Relator, Procurador, N° Processo, Assunto, Ementa) não estiver disponível, o sistema exibe o texto "Não informado". O campo nunca é exibido vazio ou como `null`.| | |RN04|**Valor Padrão para Campos Ausentes** – Quando um campo obrigatório do card (Relator, N° Processo, Assunto, Ementa, Interessados) não estiver disponível, o sistema exibe o texto "Não informado". A mesma regra vale para as datas opcionais do cabeçalho da sessão (Data de Abertura, Data de Fechamento e Data de Divulgação). O campo nunca é exibido vazio ou como `null`. \\ **Exceção:** em processo sigiloso, ementa e interessados vêm vazios por restrição legal e **não** recebem o texto "Não informado" — são omitidos (RN16).| |
| |RN05|**Badge "Julgado" — Condicional por Processo** – O badge "Julgado" é exibido no card somente quando o campo `julgado` retornado pelo Catálogo de Serviços for `true`. Quando `false`, o badge é omitido. O badge nunca é exibido como placeholder vazio.| | |RN05|**Badge "Julgado" — Condicional por Processo** – O badge "Julgado" é exibido no card somente quando o campo `julgado` retornado pelo Catálogo de Serviços for `true`. Quando `false`, o badge é omitido. O badge nunca é exibido como placeholder vazio.| |
| |RN06|**Distinção Visual Obrigatória por Plataforma** – A cor do badge no calendário e a legenda são obrigatórias e permanecem visíveis na tela: \\ Azul (`–primary`) = Sessão Presencial \\ Verde (`–success`) = Videoconferência \\ Laranja (`–complementary`) = Votação Simultânea (Plenário Virtual).| | |RN06|**Distinção Visual Obrigatória por Plataforma** – A cor do badge no calendário e a legenda são obrigatórias e permanecem visíveis na tela: \\ Azul (`–primary`) = Sessão Presencial \\ Verde (`–success`) = Videoconferência \\ Laranja (`–complementary`) = Votação Simultânea (Plenário Virtual).| |
| |RN07|**Navegação entre Sessões Desabilitada sem Destino** – Os botões "Sessão anterior" e "Próxima sessão" ficam desabilitados (`disabled`) quando não existe sessão anterior ou seguinte, respectivamente. Botão desabilitado não possui link.| | |RN07|**Navegação entre Sessões Desabilitada sem Destino** – Os botões "Sessão anterior" e "Próxima sessão" ficam desabilitados (`disabled`) quando não existe sessão anterior ou seguinte, respectivamente. Botão desabilitado não possui link.| |
| |RN08|**Banner de Sessão Cancelada no Detalhe** – Quando a sessão possuir status Cancelada, o sistema exibe um banner de aviso "Sessão Cancelada" no topo da página de detalhe.| | |RN08|**Data sem Sessão Disponível** – Quando a data consultada não possuir sessão disponível, o sistema exibe a mensagem "Nenhuma sessão encontrada para esta data", sem cabeçalho e sem lista de processos. A regra alcança o caso de a única sessão do dia estar Cancelada: a API retorna vazio para sessão cancelada, portanto ela não chega a ser exibida no detalhe (RN03). Data em **formato inválido** não recai nesta regra — exibe a página de erro padrão.| |
| |RN09|**Gravação Vinculada por Processo** – O botão "Assistir gravação" é exibido no card somente quando há gravação disponível para aquele processo. Quando não há gravação, o botão é omitido completamente, sem placeholder. A gravação pode ser do tipo [[:pres:gerti:gestao_de_ativos:portal:youtube|YouTube]] (abre modal com embed) ou arquivo `.mp4` (abre modal com `<video>`).| | |RN09|**Gravação Vinculada por Processo** – O botão "Assistir gravação" é exibido no card somente quando há gravação disponível para aquele processo. Quando não há gravação, o botão é omitido completamente, sem placeholder. A API retorna **sempre o link da gravação** vinculada ao processo (ex.: ''https://videos.tce.go.gov.br/2025/11-25/12-11-2025/202200010052845.mp4''); ao acionar o botão, o sistema exibe o reprodutor com essa gravação. Não há distinção de tipo a tratar na interface.| |
| |RN10|**Filtros Cumulativos com Escopo de Texto** – Os filtros de Relator, Procurador, Colegiado e Texto livre são cumulativos (AND). O filtro de texto realiza busca parcial e case-insensitive nos campos N° Processo, Assunto e Ementa simultaneamente. O contador "Exibindo X de Y processos" é exibido quando ao menos um filtro estiver ativo. O botão "Limpar filtros" é visível apenas com filtro ativo.| | |RN10|**Filtros Cumulativos com Escopo de Texto** – Os filtros de Relator da Pauta e Texto livre são cumulativos (AND) e se aplicam aos processos da sessão exibida. **Não há filtro de procurador** (RN18). O **Colegiado não é filtrável**: uma sessão pertence a um único colegiado, e o campo é exibido preenchido e bloqueado com o colegiado da sessão. O filtro de texto realiza busca parcial e case-insensitive nos campos N° Processo, Interessados, Assunto e Ementa simultaneamente. O contador "Exibindo X de Y processos" é exibido quando ao menos um filtro estiver ativo. O botão "Limpar filtros" é visível apenas com filtro ativo.| |
| |RN11|**Fundamentação Legal Fixa** – O cabeçalho da sessão exibe obrigatoriamente o texto fixo: **"PAUTA (art. 150, Incisos I a VI, RI-TCE)"**.| | |RN11|**Fundamentação Legal Fixa** – O cabeçalho da sessão exibe obrigatoriamente o texto fixo: **"PAUTA (art. 150, Incisos I a VI, RI-TCE)"**.| |
| |RN12|**Membros — Funções Exibidas** – O painel de membros exibe exclusivamente nome e função. O campo `tituloMembro` retornado pelo Catálogo de Serviços já contém a função com a forma de gênero correta ("Relator" / "Relatora", "Secretário" / "Secretária"). Funções exibidas: Presidente, Relator(a), Procurador e Secretário(a). A função Procurador Substituto (`PS`) não é exibida.| | |RN12|**Membros — Funções Exibidas** – O painel de membros exibe exclusivamente **nome e função**, e o nome é apresentado sem tratamento ou cargo ("Aldemário Araújo Castro", não "Proc. Dr. Aldemário Araújo Castro"): o cargo é o próprio rótulo de função, ao lado. \ O campo `tituloMembro` retornado pelo Catálogo de Serviços já contém a função com a forma de gênero correta ("Relator" / "Relatora", "Secretário" / "Secretária"). \ **Funções exibidas: Presidente, Relator(a), Procurador e Secretário(a)** — somente estas quatro. \ **Nenhum membro é omitido da composição**: as cadeiras substitutas integram a sessão e são apresentadas sob a função que exercem, e não sob a de substituto: \ • Conselheiro Substituto (`CS`) e Substituto de Sessão (`AS`) → **Relator(a)**, por serem registrados na `PLD_MEMBRO` como relatores da pauta do processo (RN17); \ • Procurador Substituto (`PS`) → **Procurador**. \ Ou seja, os rótulos "Conselheiro Substituto", "Substituto de Sessão" e "Procurador Substituto" **não são exibidos**; os membros que os possuem, sim.| |
| |RN13|**Ata de Julgamento — Três Situações e Download via Endpoint** – O banner de ata exibe estado e ação conforme a situação: \\ ''AGUARDANDO_SESSAO'' — banner azul claro, sem ação \\ ''EM_ELABORACAO'' — banner amarelo, sem ação \\ ''ELABORADA'' — banner verde, botão "Baixar Ata". \\ O download é realizado via ''GET /api/arquivo/downloadblob/PLD_ATA/text_ataass_b/PLDATA_ID/{token}/{PLDATA_ID}'' (Catálogo de Serviços). O botão é exibido apenas quando a situação for ''ELABORADA'' e o ''PLDATA_ID'' estiver disponível. \\ **Pendências em aberto:** \\ — O endpoint atual de sessão não retorna o ''PLDATA_ID''; a API do catálogo precisa ser atualizada para expor esse campo. \\ — O mecanismo de geração e validade do ''token'' presente na URL não está documentado; é necessário investigar como obtê-lo. \\ — A API não possui campo que indique explicitamente que a ata da sessão está pronta; esse indicador (''ELABORADA'') precisa ser incluído na resposta do endpoint.| | |RN13|**Ata de Julgamento — Três Situações e Download do Arquivo** – O banner de ata exibe estado e ação conforme a situação: \\ ''AGUARDANDO_SESSAO'' — banner azul claro, sem ação \\ ''EM_ELABORACAO'' — banner amarelo, sem ação \\ ''ELABORADA'' — banner verde, com botão "Baixar Ata" e a **data de elaboração** exibida no formato ''dd/MM/yyyy''. \\ O endpoint ''GET /api/pauta/sessoes-completas/{dia}/{mes}/{ano}'' retorna, para cada sessão do dia, a **situação** da ata, a **data de elaboração** e os dados do **arquivo** (''PLDATA_ID'' e ''token''). \\ O download é realizado via ''GET /api/arquivo/downloadblob/PLD_ATA/text_ataass_b/PLDATA_ID/{token}/{PLDATA_ID}'' (Catálogo de Serviços), montado a partir desses dados. O acionamento do botão **baixa o arquivo** — não abre nova aba. \\ O botão é exibido apenas quando a situação for ''ELABORADA'' e o arquivo estiver disponível. \\ **Resíduo:** a validade do ''token'' não está documentada. Enquanto não houver comportamento definido para token expirado, esse caso não gera cenário de teste (PD-06).| |
| |RN14|**Troca de Sessão no Mesmo Dia sem Alteração de URL** – Ao clicar em um chip "Outras Sessões do Dia", o sistema carrega os dados da nova sessão sem alterar a URL do navegador. A URL só muda ao navegar para outro dia via botões "Sessão anterior" / "Próxima sessão".| | |RN14|**Troca de Sessão no Mesmo Dia sem Alteração de URL** – Ao clicar em um chip "Outras Sessões do Dia", o sistema carrega os dados da nova sessão sem alterar a URL do navegador. A URL só muda ao navegar para outro dia via botões "Sessão anterior" / "Próxima sessão".| |
| |RN15|**Link de Transmissão para Videoconferência** – Quando a sessão for do tipo Videoconferência e possuir link de transmissão disponível, o sistema exibe o link "Assistir transmissão" no cabeçalho da sessão.| | |RN15|**Link de Transmissão para Videoconferência** – Quando a sessão for do tipo Videoconferência e possuir link de transmissão disponível, o sistema exibe o link "Assistir transmissão" no cabeçalho da sessão.| |
| | |RN16|**Processo Sigiloso na Pauta** – Quando `Processo.ehProcessoSigiloso` for `true`, o card exibe o badge **"Sigiloso"** e preserva os dados públicos do item de pauta: \\ **Exibidos:** N° Processo (como texto, **sem link**), Assunto (`situacaoProcesso`), ordem na pauta e badge "Julgado" quando aplicável. \\ **Não exibidos:** ementa (retornada como string vazia) e interessados (`nomesInteressados` retornado como array vazio). Estes campos são omitidos e **não** recebem o texto "Não informado" da RN04. \\ O badge existe para que a ausência desses campos seja lida como restrição legal, e não como falta de cadastro. A supressão do link evita conduzir o usuário à tela de erro do RF-002, que não exibe processo sigiloso.| |
| | |RN17|**Relator da Pauta e Relator do Processo são Campos Distintos** – O relator exibido na pauta e o conselheiro registrado no processo **não são o mesmo campo**. \ **Relator da pauta** — origem ''PLD_MEMBRO'', alcançado pelo vínculo ''VPLD_PROCESSOS_SESSAO_PAUTA.PLDMESS_ID'' → ''VPLD_MEMBROS_CAD_SESSAO.PLDMESS_ID''. É a cadeira que relata o processo **naquela sessão** e é o único relator exibido na pauta. \ **Relator do processo** — origem ''PRO_AUTUACAO.GERUSUA_ID_CONSEL'', vinculado desde a autuação. É atributo do processo e é exibido no detalhamento do processo (RF-002); **não integra o contrato da pauta**. \ A substituição de cadeira já vem **resolvida na origem**: o retorno entrega a cadeira que efetivamente relata e não informa que houve substituição. A pauta, portanto, **não exibe marcador de substituição** nem desdobra o relator em dois campos. \ Consequência para a interface: o relator oferecido no filtro, o exibido no card e o listado na composição da sessão são sempre a mesma cadeira, resolvida por ''PLDMESS_ID'' — nunca pelo nome.| |
| | |RN18|**Procurador na Pauta é o da Sessão** – Na pauta, o procurador é exclusivamente o **procurador da sessão** (''PLD_MEMBRO.INDR_FUNCAO_A = R'' ou ''PS''), membro da composição, e é exibido apenas na composição da sessão. \ **Não é exibido no card do processo** e **não é filtrável**: seu valor é único dentro da sessão, de modo que filtrar por ele devolveria a pauta inteira. \ O **procurador do processo** (''VWEB_PROCDADOSGERAIS.PROCURADOR'' / ''PRO_AUTUACAO.GERUSUA_ID_PROCURADOR'') é atributo da autuação e permanece no detalhamento do processo (RF-002), não integrando o contrato da pauta. \ A barra de filtros da Tela 02 é composta por: Relator da Pauta, identificador de Colegiado bloqueado e busca livre.| |
| | |RN19|**Ordem da Pauta é Agrupada por Relator** – Cada item de pauta possui uma **ordem sequencial**, exibida no card. A pauta é ordenada **por relator**: os processos de uma mesma cadeira ocupam uma **faixa contígua** de ordem — as ordens 1 a 10 pertencem ao relator X, 11 a 15 ao relator Y, e assim sucessivamente. \ **Sequência dos relatores** — segue a coluna ''ORDEM'' de ''VPLD_MEMBROS_CAD_SESSAO'' (precedência protocolar da composição da sessão), desempatada por ''DATA_ENTRADACARGO_D'' (antiguidade no cargo). \ **Exceção — Presidente por último:** quando o Presidente da sessão relata, seus processos ocupam a **última faixa** da listagem, ainda que sua ''ORDEM'' na composição seja ''01''. A exceção alcança apenas a função ''P'' na sessão: Auditor e Auditor Substituto (''A''/''AS'') permanecem na sequência normal, posicionados pela ''ORDEM''. \ **Ordem dentro de cada relator** — ''NUMR_ORDEM_ASSUNTO'' (ordem protocolar por matéria, de ''PLD_ORDEMASSUNTO''), depois ''DESC_ASSUNTO_A'' e ''CODG_PROCESSO_ORDEM''. \ **Origem do número exibido** — o número da ordem é um **contador sequencial atribuído após a ordenação** (''DtoAutuacao.OrdemLista'' → campo ''ordem'' da API). Não é o ''NUMR_ORDEM_ASSUNTO'': este é a ordem protocolar da matéria e **se repete** entre processos de mesmo assunto, não servindo como número de ordem do item. \ A ordem é exibida inclusive em **processo sigiloso**, por ser dado público do item de pauta (RN16). \ A ordem é atributo do item de pauta, não do processo: o mesmo processo pode ocupar ordens distintas em sessões distintas. \ **Escopo:** a regra vale exclusivamente para a **listagem de processos**. O painel "Membros da Sessão" (RN12) usa a ''ORDEM'' pura, com o Presidente encabeçando a composição — são duas ordenações distintas para finalidades distintas. \ **Origem no legado:** o portal atual implementa a exceção do Presidente no JavaScript, em duas passadas — primeiro os membros com ''tituloMembro != "Presidente"'', depois o Presidente; o site MVC percorre ''Model[CONSELHEIRO_RELATOR]'' e em seguida ''Model[PRESIDENTE]''. A regra não estava documentada e se perdeu na reescrita da consulta de processos, sendo restaurada em 2026-08-28. \ **Datas de regressão:** 31/01/2022 (quatro sessões, dois Presidentes relatando), 25/04/2022 (Presidente por último na Primeira Câmara) e 23/04/2025 (Presidente sem processos — ordem segue a composição). Nenhuma delas isolada é suficiente para validar a regra.| |
| |
| ===== Integrações ===== | ===== Integrações ===== |
| |''/api/pauta/sessao/{dia}/{mes}/{ano}'' |GET|''dia'' (int, path), ''mes'' (int, path), ''ano'' (int, path) — todos obrigatórios|Calendário + Detalhe|Sessões do dia com: ''nomeCamara'', ''tipoSessao'', ''dataSessao'', ''horarioSessao'', ''informacaoSessao'', ''alertaSessao'', ''definicaoPauta'', ''membros'' (nome + título), ''processos'' (incl. ''julgado: boolean'', ''assunto'', ''ementa'', ''situacaoProcesso''). Retorna 204 quando sem dados.| | |''/api/pauta/sessao/{dia}/{mes}/{ano}'' |GET|''dia'' (int, path), ''mes'' (int, path), ''ano'' (int, path) — todos obrigatórios|Calendário + Detalhe|Sessões do dia com: ''nomeCamara'', ''tipoSessao'', ''dataSessao'', ''horarioSessao'', ''informacaoSessao'', ''alertaSessao'', ''definicaoPauta'', ''membros'' (nome + título), ''processos'' (incl. ''julgado: boolean'', ''assunto'', ''ementa'', ''situacaoProcesso''). Retorna 204 quando sem dados.| |
| |''/api/pauta/videos/{dia}/{mes}/{ano}'' |GET|''dia'' (int, path), ''mes'' (int, path), ''ano'' (int, path) — todos obrigatórios|Detalhe|**Fonte primária de gravações por processo.** Retorna ''[[:pres:gerti:gestao_de_ativos:portal:informacoespautasessaoapi|InformacoesPautaSessaoApi]][]''com os processos que possuem vídeo. O vínculo com os processos de ''/api/pauta/sessao'' é feito pelo campo ''Processo.id''. Processos sem correspondência recebem ''gravacao = null'' e o botão "Assistir gravação" é omitido. Retorna 204 quando sem gravações.| | |''/api/pauta/videos/{dia}/{mes}/{ano}'' |GET|''dia'' (int, path), ''mes'' (int, path), ''ano'' (int, path) — todos obrigatórios|Detalhe|**Fonte primária de gravações por processo.** Retorna ''[[:pres:gerti:gestao_de_ativos:portal:informacoespautasessaoapi|InformacoesPautaSessaoApi]][]''com os processos que possuem vídeo. O vínculo com os processos de ''/api/pauta/sessao'' é feito pelo campo ''Processo.id''. Processos sem correspondência recebem ''gravacao = null'' e o botão "Assistir gravação" é omitido. Retorna 204 quando sem gravações.| |
| | |''/api/pauta/sessoes-completas/{dia}/{mes}/{ano}'' |GET|''dia'' (int, path), ''mes'' (int, path), ''ano'' (int, path) — todos obrigatórios|Detalhe|**Fonte da ata de julgamento.** Endpoint criado em 2026-08-25. Retorna as sessões do dia completas, incluindo os dados da ata: **situação**, **data de elaboração** e **arquivo** (''PLDATA_ID'' e ''token''), que alimentam o banner e o download da RN13. \ **A confirmar:** se substitui ''/api/pauta/sessao'' e ''/api/pauta/videos'' ou se convive com eles (PD-06).| |
| |
| Respostas de erro comuns a todos os endpoints: | Respostas de erro comuns a todos os endpoints: |
| ^Campo^Origem Oracle^Observação| | ^Campo^Origem Oracle^Observação| |
| |''PLDSESS_ID'' (sessaoId)|''PLD_SESSAO.PLDSESS_ID'' |Identificador da sessão — necessário para navegação e vínculo de dados.| | |''PLDSESS_ID'' (sessaoId)|''PLD_SESSAO.PLDSESS_ID'' |Identificador da sessão — necessário para navegação e vínculo de dados.| |
| |''INDR_STATUS_A'' (status)|''PLD_SESSAO.INDR_STATUS_A'' |Status estruturado: A=Ativa, E=Encerrada, C=Cancelada, I=Inativa (RN09).| | |''INDR_STATUS_A'' (status)|''PLD_SESSAO.INDR_STATUS_A'' |Status estruturado: A=Ativa, E=Encerrada, C=Cancelada, I=Inativa (RN03).| |
| |''NUMR_SESSAO_N'' |''PLD_SESSAO.NUMR_SESSAO_N'' |Número sequencial da sessão.| | |''NUMR_SESSAO_N'' |''PLD_SESSAO.NUMR_SESSAO_N'' |Número sequencial da sessão.| |
| |''DATA_ABERTURA_D'', ''DATA_FECHAMENTO_D'', ''DATA_DIVULGACAO_D'' |''PLD_SESSAO'' |Datas complementares do ciclo de vida da sessão.| | |''DATA_ABERTURA_D'', ''DATA_FECHAMENTO_D'', ''DATA_DIVULGACAO_D'' |''PLD_SESSAO'' |Datas complementares do ciclo de vida da sessão.| |
| |''plataforma'' derivada|''INDR_TIPO_A'' + campo de plataforma em ''PLD_SESSAO'' |Base para distinção visual (RN07).| | |''plataforma'' derivada|''PLD_SESSAO.INDR_VIRTUAL_A'' |Base para distinção visual (RN06). Sessão estruturada: N=Presencial, V=Videoconferência / S=Virtual| |
| |''linkTransmissao'' |Campo de plataforma/videoconferência em ''PLD_SESSAO'' |Exibido no cabeçalho quando sessão é Videoconferência (RN20).| | |''linkTransmissao'' |Campo de plataforma/videoconferência em ''PLD_SESSAO'' |Exibido no cabeçalho quando sessão é Videoconferência (RN15).| |
| |''PROAUTU_ID'' (autuacaoId por processo)|''VPLD_PROCESSOS_SESSAO_PAUTA.PROAUTU_ID'' |Usado no link para RF-002 (RN01).| | |''PROAUTU_ID'' (autuacaoId por processo)|''VPLD_PROCESSOS_SESSAO_PAUTA.PROAUTU_ID'' |Usado no link para RF-002 (RN01).| |
| |''INDR_ENTRADA_A'', ''INDR_SAIDA_A'' por processo|''VPLD_PROCESSOS_SESSAO_PAUTA'' |Tipo de entrada/saída do processo na pauta.| | |''INDR_ENTRADA_A'', ''INDR_SAIDA_A'' por processo|''VPLD_PROCESSOS_SESSAO_PAUTA'' |Tipo de entrada/saída do processo na pauta.| |
| |IDs de navegação (sessão anterior / próxima)|Query por ''DATA_SESSAO_D'' em ''PLD_SESSAO'' |Alimenta botões de navegação (RN08, RN18).| | |IDs de navegação (sessão anterior / próxima)|Query por ''DATA_SESSAO_D'' em ''PLD_SESSAO'' |Alimenta botões de navegação (RN07).| |
| |Ata de julgamento (''situacao'', ''url'', ''dataElaboracao'')|Tabela/view de ata — a mapear|Alimenta banner de ata (RN17).| | |Ata de julgamento (''situacao'', ''dataElaboracao'', ''PLDATA_ID'', ''token'')|''PLD_ATA'' |Retornada por ''/api/pauta/sessoes-completas''; alimenta o banner de ata e o download do arquivo (RN13).| |
| |
| — //Gerado com: documentar-funcionalidade-v1.md// \\ | ===== Histórico de Revisões ===== |
| — //Revisado por: Paulo Ricardo Amorim Silva - pramorim@tce.go.gov.br// | |
| |
| | ^Data^Alteração^Motivo| |
| | |2026-08-24|RN01 — link do processo passou de nova aba para a **mesma aba**; link suprimido em processo sigiloso|Decisão de Requisitos (PD-12, CA25)| |
| | |2026-08-24|RN04 — fallback "Não informado" estendido às datas opcionais do cabeçalho; exceção para processo sigiloso|PD-07 e PD-14| |
| | |2026-08-24|RN08 — deixou de descrever o banner "Sessão Cancelada"; passou a reger a **data sem sessão disponível**|A API retorna vazio para sessão cancelada; o banner era inalcançável (PD-02)| |
| | |2026-08-24|RN09 — removida a distinção entre gravação do YouTube e arquivo `.mp4`|A API retorna sempre o link da gravação (PD-08)| |
| | |2026-08-24|RN10 e Tela 02 — Colegiado deixou de ser filtro selecionável; passou a campo fixo da sessão|Uma sessão pertence a um único colegiado (PD-10)| |
| | |2026-08-24|**RN16 acrescentada** — tratamento de processo sigiloso na pauta|Comportamento não documentado, apesar de ser item de cobertura obrigatória do Guia de Critérios de Aceite (PD-14)| |
| | |2026-08-24|Fluxo 02.2.1, Fluxos 06.3.1 e 07.4.1, Tela 01 — mensagens ao usuário transcritas literalmente|Textos não constavam ou constavam truncados (PD-03, PD-05)| |
| | |2026-08-24|Fluxo 04.02 — badge passa o `sessaoId`; sem ele, abre a primeira sessão do dia|Substitui a regra de URL base comum a todos os badges do dia (PD-09)| |
| | |2026-08-24|Fluxo 04.04.2 desdobrado em 04.2 (data sem sessão → mensagem) e 04.3 (data inválida → erro padrão)|O 404 cobria dois casos distintos (PD-11)| |
| | |2026-08-24|Fluxos 05.1.1, 09.02 e 10.02 alinhados às decisões acima|Consistência com RN01, RN08 e RN09| |
| | |2026-08-24|Corrigidas referências cruzadas inexistentes: RN17, RN18 e RN20, e RN07/RN09 fora de contexto na tabela Oracle|As RN citadas não existem nesta especificação| |
| | |2026-08-25|RN13 — removidas as pendências em aberto; o novo endpoint `/api/pauta/sessoes-completas/{dia}/{mes}/{ano}` passou a retornar situação, data de elaboração e arquivo da ata. Fluxo 14.02 passou a **download direto**, e o banner Elaborada passou a exibir a data de elaboração|Task de desenvolvimento do `PLDATA_ID` concluída (PD-06)| |
| | |2026-08-25|RN17 acrescentada — relator da pauta e relator do processo são campos distintos, resolvidos por ''PLDMESS_ID''|Decisão de Requisitos: relator no filtro = relator no card = relator na composição| |
| | |2026-08-25|**RN18 acrescentada** — o procurador da pauta é o da sessão, exibido só na composição, não filtrável; procurador do processo permanece no RF-002|Valor único na sessão torna o filtro inócuo; a distinção de escopo vinha da RN17| |
| | |2026-08-25|RN10 alterada — filtro de procurador revogado; busca livre passou a cobrir Interessados|Decorrência da RN18 e da inclusão dos interessados no card| |
| | |2026-08-25|RN04 alterada — Procurador saiu da lista de campos obrigatórios do card; Interessados entrou|O card deixou de exibir procurador e passou a exibir interessados| |
| | |2026-08-25|RN17 alterada — a pauta exibe apenas o relator da pauta, em campo único; relator do processo permanece no RF-002 e a substituição não é sinalizada|O retorno já entrega a cadeira relatora resolvida e omite a substituição| |
| | |2026-08-26|**RN19 acrescentada** — ordem do item de pauta exibida no card, com a pauta agrupada por relator em faixas contíguas|A ordem já vinha no retorno e a RN16 já a citava entre os dados exibidos, mas nenhuma regra definia sua apresentação nem o critério de ordenação| |
| | |2026-08-26|RN12 alterada — explicitado que nenhum membro é omitido da composição: `CS`/`AS` são exibidos como Relator(a) e `PS` como Procurador; nome do membro sem tratamento ou cargo|A redação anterior ("a função Procurador Substituto não é exibida") admitia duas leituras — rótulo omitido ou membro omitido. Decisão de Requisitos: o membro consta, o rótulo de substituto não| |
| | |
| | — //Gerado com: documentar-funcionalidade-v1.md// \\ |
| | — //Revisado por: Paulo Ricardo Amorim Silva - pramorim@tce.go.gov.br// \\ |
| | — //Atualizado em 2026-08-25 pelas respostas às pendências registradas em `testes/pendencias-e-divergencias.md` (PD-06, PD-14 e PD-15)// |
| |