Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
pres:gerti:gestao_de_ativos:portal:er_011 [09/04/2026 11:45] – pramorimpres:gerti:gestao_de_ativos:portal:er_011 [28/08/2026 19:41] (atual) – pramorim
Linha 1: Linha 1:
-====== RF-011 — Pautas e Sessões de Julgamento ======+====== [ER_011] Requisitos - Pautas e Sessões de Julgamento ======
  
-**Descrição:** Disponibiliza ao público um calendário mensal de sessões de julgamento do TCE-GO com distinção visual por tipo de plataforma, e o detalhamento da pauta de cada sessão com filtros, paginação, gravações e navegação entre sessões. +**Descrição**: Funcionalidade que disponibiliza ao público um calendário mensal de sessões de julgamento do TCE-GO, com distinção visual obrigatória entre sessões Presenciais, Videoconferência e Votação Simultânea (Plenário Virtual). Permite ao usuário navegar entre meses, acessar o detalhamento de cada sessão com os processos dispostos em cards, aplicar filtros, visualizar a ata de julgamento e assistir às gravações vinculadas por processo. A fundamentação legal da pauta observa o **art. 150, Incisos I a VI, do Regimento Interno do TCE-GO (RI-TCE)**.
- +
-**Menu / Local de Acesso:** Calendário de Sessões — rotas ``/pautas`` (calendário) e ``/pautas/[DATA]`` (detalhe da sessão) +
- +
----+
  
 +**Menu / Local de acesso**: Portal TCE-GO | Pautas e Sessões de Julgamento | `/pautas` (calendário) · `/pautas/[DATA]` (detalhe da sessão)
 ===== Atores ===== ===== Atores =====
  
-^ Nível ^ Perfil ^ Autenticação ^ Abrangência ^ +^Nível^Perfil^Autenticação^Abrangência| 
-| Público | Advogado, Jurisdicionado (orgão fiscalizado)| Não requerida | Acesso irrestrito ao calendário e detalhe das sessões | +|**PÚBLICO** |Cidadãos, Órgãos fiscalizados, Partes Processuais|Não obrigatória|Consulta do calendário mensal de sessões e visualização do detalhamento de pautas, processos, membros, ata de julgamento e gravações disponíveis.|
- +
----+
  
 ===== Telas ===== ===== Telas =====
  
-==== Tela 01 — Calendário de Sessões (`/pautas`) ====+==== Tela 01 - Calendário de Sessões (`/pautas`) ====
  
-^ Elemento ^ Tipo ^ Descrição ^ +{{:pres:gerti:gestao_de_ativos:portal:pasted:20260410-124027.png}}
-| Cabeçalho | Banner | Título "Pautas e Sessões de Julgamento" — fundo azul institucional (``--primary``) | +
-| Navegação de mês | Botões | ``< Mês Anterior`` e ``Próximo Mês >`` — disparam nova consulta à API | +
-| Grade do calendário | Grade | Semanas × Dias do mês corrente | +
-| Indicador de dia com sessão | Badge(s) | Um badge colorido por sessão do dia; múltiplos badges empilhados quando há mais de uma sessão | +
-| Legenda | Componente fixo | Exibida permanentemente abaixo (ou ao lado) do calendário; três cores: Azul (Presencial), Verde (Videoconferência), Laranja (Votação Simultânea) | +
-| Estado loading | Skeleton | Exibido durante chamada à API | +
-| Estado empty | Mensagem | Exibido quando nenhuma sessão existe no mês consultado | +
-| Estado error | Mensagem | Exibido em falha inesperada de API |+
  
-**Cores dos badges:**+Tela responsável por exibir o calendário mensal de sessões de julgamento com distinção visual por tipo de plataforma.
  
-^ Cor ^ Token ^ Tipo de Sessão ^ Código Legado ^ +^Elemento^Tipo^Obrigatório^Valores Possíveis^Valor Padrão^Observação| 
-| Azul | ``--primary`` | Sessão Presencial | ``INDR_TIPO_A = 'O'`` ou ``'X'`` — plataforma presencial | +|Cabeçalho da Página|Texto estático|Sim|"Pautas e Sessões de Julgamento"|–|Exibido em fundo azul (`–primary`).| 
-| Verde | ``--success`` (~#16A34A) | Videoconferência | Plataforma videoconferência | +|Navegação de Mês/Ano|Componente de Navegação|Sim|Botões "< Mês Anterior" e "Próximo Mês >"|Mês/Ano corrente|Atualiza apenas o calendário, sem reload da página (RN06).| 
-| Laranja | ``--complementary`` (~#F17300) | Votação Simultânea (Plenário Virtual) | ``INDR_TIPO_A = 'E'`` (Extraordinária Administrativa) |+|Grade do Calendário|Componente de Calendário|Sim|Semanas × Dias do mês selecionado|–|Dias sem sessão exibidos com aparência neutra; dias com sessão exibem badge(s) colorido(s).| 
 +|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).| 
 +|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.|
  
-**Combinações possíveis de sessões em um mesmo dia:**+==== Tela 02 - Detalhe da Sessão (`/pautas/[DATA]`) ====
  
-^ Sessão ^ Colegiado ^ Tipo ^ +{{:pres:gerti:gestao_de_ativos:portal:pasted:20260410-125224.png}}{{:pres:gerti:gestao_de_ativos:portal:pasted:20260410-125409.png}}
-| Primeira Câmara — Ordinária | ``PRIMEIRA_CAMARA`` | ``ORDINARIA`` | +
-| Segunda Câmara — Ordinária | ``SEGUNDA_CAMARA`` | ``ORDINARIA`` | +
-| Tribunal Pleno — Ordinária | ``TRIBUNAL_PLENO`` | ``ORDINARIA`` | +
-| Tribunal Pleno — Extraord. Administrativa | ``TRIBUNAL_PLENO`` | ``EXTRAORDINARIA_ADMINISTRATIVA`` |+
  
---- +Tela responsável por exibir o detalhamento completo de uma sessão: cabeçalho, chips de sessões do dia, ata de julgamento, filtros e cards de processos.
- +
-==== Tela 02 — Detalhe da Sessão (`/pautas/[DATA]`) ====+
  
 **Cabeçalho da Sessão:** **Cabeçalho da Sessão:**
  
-^ Campo UI ^ Campo Oracle / Legado ^ Formato ^ +^Elemento^Fonte^Campo / Origem^Obrigatório^Observação| 
-| Colegiado | ``INDR_COLEGIADO_A`` | "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 | ``INDR_TIPO_A`` | "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 | derivado de ``INDR_TIPO_A`` + campo plataforma | "Presencial", "Videoconferência" ou "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 | ``INDR_STATUS_A`` | "Ativa" / "Encerrada" / "Cancelada" / "Inativa" | +|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 | ``NUMR_SESSAO_N`` | Numérico | +|Número da Sessão|Oracle|`PLD_SESSAO.NUMR_SESSAO_N`|Sim|–| 
-| Data da Sessão | ``DATA_SESSAO_D`` | ``dd/MM/yyyy HH:mm`` | +|Data da Sessão|Catálogo (`/api/pauta/sessao`)|`dataSessao` + `horarioSessao` → formato `dd/MM/yyyy HH:mm`|Sim|–| 
-| Data de Abertura | ``DATA_ABERTURA_D`` | ``dd/MM/yyyy HH:mm`` | +|Data de Abertura|Oracle|`PLD_SESSAO.DATA_ABERTURA_D` — formato `dd/MM/yyyy HH:mm`|Não|–| 
-| Data de Fechamento | ``DATA_FECHAMENTO_D`` | ``dd/MM/yyyy HH:mm`` | +|Data de Fechamento|Oracle|`PLD_SESSAO.DATA_FECHAMENTO_D` — formato `dd/MM/yyyy HH:mm`|Não|–| 
-| Data de Divulgação | ``DATA_DIVULGACAO_D`` | ``dd/MM/yyyy HH:mm`` | +|Data de Divulgação|Oracle|`PLD_SESSAO.DATA_DIVULGACAO_D` — formato `dd/MM/yyyy HH:mm`|Não|–| 
-| Total de Processos | Calculado no front | Contagem de itens em ``Processos`` | +|Total de Processos|Catálogo (`/api/pauta/sessao`)|Calculado a partir de `processosCamaraSessao` de todos os membros|Sim|–| 
-| Membros | ``VPLD_MEMBROS_CAD_SESSAO`` | Link "ver membros" — abre modal/painel lateral | +|Membros|Catálogo (`/api/pauta/sessao`)|`Membro.nomeMembro` + `Membro.tituloMembro`|Sim|Link "ver membros" abre modal/painel lateral (RN12).| 
-| Fundamentação Legal | Texto fixo | "PAUTA (art. 150, Incisos I a VI, RI-TCE)" |+|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, 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).| 
 +|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).|
  
-**Modal/Painel de Membros:**+**Ata de Julgamento:**
  
-^ Função Exibida ^ Código Legado (``INDR_FUNCAO_A``) ^ +^Elemento^Situação^Condição^Cor do Banner^Ação Disponível| 
-| Presidente | ``P`` | +|Ata — Aguardando Sessão|`AGUARDANDO_SESSAO`|Data da sessão ainda não chegou|Azul claro (`blue-50`)|Nenhuma.| 
-| Relator / Relatora | ``C``, ``A``, ``AS``, ``CS`` | +|Ata — Em Elaboração|`EM_ELABORACAO`|Sessão encerrada, ata em preparo|Amarelo (`amber-50`)|Nenhuma.| 
-| Procurador | ``R``, ``PS`` | +|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).|
-| Secretário / Secretária | ``S`` |+
  
-**Barra de Filtros:**+**Barra de Filtros (client-side):**
  
-^ Filtro ^ Tipo ^ Opções ^ Campo Filtrado ^ +^Filtro^Tipo^Campo Filtrado^Observação| 
-| Relator | ``<select>`` | Lista de relatores únicos da sessão | ``relator`` | +|Relator|Seleção (`<select>`)|`relator`|Lista de relatores únicos da sessão corrente.| 
-| Procurador | ``<select>`` | Lista de procuradores únicos | ``procurador`` | +|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 | ``<select>`` | Primeira Câmara / Segunda Câmara / Tribunal Pleno | ``colegiado`` | +|Texto livre|Campo Texto (`<input>`)|`numeroProcesso` + `assunto` + `ementa`|Busca parcial, case-insensitive (RN10).| 
-| Texto livre | ``<input>`` | Busca parcial, case-insensitive | ``numeroProcesso`` + ``assunto`` + ``ementa`` |+|Contador de resultados|Texto informativo|–|"Exibindo X de Y processos" — exibido quando algum filtro estiver ativo (RN10).| 
 +|Botão "Limpar filtros"|Botão|–|Visível apenas quando ao menos um filtro estiver ativo. Paginação reseta para página 1 ao aplicar qualquer filtro (RN02, RN10).|
  
 **Card de Processo:** **Card de Processo:**
  
-^ Campo ^ Campo Legado ^ Obrigatório ^ Fallback ^ +^Campo^Fonte^Campo / Origem^Obrigatório^Fallback| 
-| N° Processo (link externo) | ``CODG_PROCESSO_N`` | Sim | "Não informado" | +|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 | ``DESC_ASSUNTO_A`` | Sim | "Não informado" | +|Assunto|Catálogo (`/api/pauta/sessao`)|`Processo.assunto`|Sim|"Não informado" (RN04).| 
-| Ementa | ``TextoEmenta`` (via ``DtoPauta``) | Sim | "Não informado" | +|Ementa|Catálogo (`/api/pauta/sessao`)|`Processo.ementa`|Sim|"Não informado" (RN04). Em processo sigiloso, omitida (RN16).| 
-| Relator | ``RELATOR`` (via ``VPLD_MEMBROS_CAD_SESSAO``) | Sim | "Não informado" | +|Relator|Catálogo (`/api/pauta/sessao`)|`Membro.nomeMembro` com função Relator|Sim|"Não informado" (RN04).| 
-| Procurador | membro com ``INDR_FUNCAO_A = 'R'`` ou ``'PS'`` | Sim | "Não informado" | +|Badge "Julgado"|Catálogo (`/api/pauta/sessao`)|`Processo.julgado` (boolean)|Condicional|Badge omitido quando `julgado = false` (RN05).| 
-| Indicador "Julgado" | ``INDR_ESTADO_A = 'J'`` | Condicional | Badge omitido se não julgado | +|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).| 
-| Botão "Assistir gravação" | ``gravacao`` por processo | Condicional | Botão omitido se ``gravacao === null`` |+|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).|
  
-**Ata de Julgamento:**+**Navegação entre Sessões:**
  
-^ Situação ^ Condição ^ Cor do Banner ^ Ação Disponível ^ +^Elemento^Tipo^Observação| 
-| ``AGUARDANDO_SESSAO`` | Data da sessão não chegou | Azul claro (``blue-50``) | Nenhuma | +|Botão "Sessão anterior"|Botão com link|Exibido no topo e na base da página. Desabilitado (`disabled`) quando não há sessão anterior (RN07).| 
-| ``EM_ELABORACAO`` | Sessão encerrada, ata em preparo | Amarelo (``amber-50``) | Nenhuma | +|Botão "Próxima sessão"|Botão com link|Exibido no topo e na base da página. Desabilitado (`disabled`) quando não há próxima sessão (RN07).|
-| ``ELABORADA`` | Ata finalizada com URL | Verde (``green-50``) | Botão "Baixar Ata" (link para PDF) | +
- +
----+
  
 ===== Fluxos ===== ===== Fluxos =====
  
-==== Fluxo 01 — Acesso ao Calendário ====+==== Fluxo 01 - Acessar Calendário de Sessões (Fluxo Principal) ====
  
 ^Passo^Ação^Regra^Tela| ^Passo^Ação^Regra^Tela|
-|01|Usuário acessa ``/pautas``| |Tela 01| +|01|O usuário acessa a rota `/pautas`.| |Tela 01| 
-|02|Sistema exibe skeleton animado (estado ``loading``)| |Tela 01| +|02|O sistema exibe o estado de carregamento (skeleton animado).| |Tela 01| 
-|03|Sistema executa ``GET /api/pautas/calendario?mes={mm}&ano={yyyy}`` com mês/ano correntes| |Tela 01| +|03|O sistema executa `GET /api/pautas/calendario?mes={mm}&ano={yyyy}` com o mês/ano corrente como padrão.| |Tela 01| 
-|03.1|API retorna sucesso → sistema renderiza grade do calendário com badges coloridos por tipo de sessão|RN03, RN07|Tela 01| +|03.1|Caso a chamada retorne sucesso, o sistema executa o **[[#fluxo_02_-_renderizar_calendario|Fluxo 02]]** .| | | 
-|03.2|API retorna sucesso e nenhuma sessão no mês → sistema exibe estado ``empty`` com mensagem informativa| |Tela 01| +|03.2|Caso a chamada retorne erro, o sistema exibe estado de erro genérico.| |Tela 01|
-|03.3|API retorna erro → sistema exibe estado ``error`` com mensagem genérica de falha| |Tela 01| +
-|04|Sistema exibe legenda persistente de cores abaixo (ou ao lado) do calendário|RN07|Tela 01|+
  
---- +==== Fluxo 02 - Renderizar Calendário ====
- +
-==== Fluxo 02 — Navegação entre Meses ====+
  
 ^Passo^Ação^Regra^Tela| ^Passo^Ação^Regra^Tela|
-|01|Usuário clica em ``< Mês Anterior`` ou ``Próximo Mês >``| |Tela 01| +|01|O sistema recebe a lista de sessões do mês retornada pela API.| | | 
-|02|Sistema executa nova chamada ``GET /api/pautas/calendario?mes={mm}&ano={yyyy}`` sem reload de página| |Tela 01| +|02|O sistema verifica se há sessões no mês consultado.| | | 
-|03|Sistema atualiza a grade do calendário com os dados do novo mês|RN03, RN07|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| 
 +|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.1|Quando um mesmo dia possui múltiplas sessões, o sistema exibe um badge por sessão, empilhados ou em linha.|RN06|Tela 01| 
 +|05|O sistema exibe a legenda obrigatória de cores abaixo ou ao lado do calendário.|RN06|Tela 01| 
 +|06|O sistema aguarda interação do usuário.| |Tela 01|
  
----+==== Fluxo 03 - Navegar entre Meses ==== 
 + 
 +^Passo^Ação^Regra^Tela| 
 +|01|O usuário aciona o botão "Mês Anterior" ou "Próximo Mês".| |Tela 01| 
 +|02|O sistema executa nova chamada `GET /api/pautas/calendario?mes={mm}&ano={yyyy}` com o mês/ano correspondente.| |Tela 01| 
 +|03|O sistema atualiza apenas o componente do calendário, sem reload da página.|RN06|Tela 01| 
 +|04|O sistema executa o **[[#fluxo_02_-_renderizar_calendario|Fluxo 02]]**com os dados do novo mês.| | |
  
-==== Fluxo 03 — Acesso ao Detalhe da Sessão ====+==== Fluxo 04 - Acessar Detalhe de Sessão ====
  
 ^Passo^Ação^Regra^Tela| ^Passo^Ação^Regra^Tela|
-|01|Usuário clica em um dia com badge(s) de sessão no calendário| |Tela 01| +|01|O usuário clica em um badge de sessão em um dia do calendário.| |Tela 01| 
-|02|Sistema navega para ``/pautas/[DATA]`` (todos os badges do mesmo dia utilizam a mesma URL)| |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|Sistema exibe skeleton animado (estado ``loading``)| |Tela 02| +|03|O sistema exibe o estado de carregamento (skeleton animado).| |Tela 02| 
-|04|Sistema executa ``GET /api/pautas/[DATA]``| |Tela 02| +|04|O sistema executa `GET /api/pautas/[DATA]`.| | | 
-|04.1|API retorna sucesso → sistema exibe cabeçalho da sessão + Ata de Julgamento + filtros + cards de processos paginados|RN05, RN14, RN17|Tela 02| +|04.1|Caso a chamada retorne sucesso, o sistema executa o **[[#fluxo_05_-_renderizar_detalhe_da_sessao|Fluxo 05]]**.| | | 
-|04.2|API retorna ``not found`` → sistema executa ``notFound()`` (HTTP 404)| |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|Sessão com ``INDR_STATUS_A = 'C'`` (Cancelada) → sistema exibe banner/alerta "Sessão Cancelada" no cabeçalho|RN09|Tela 02| +|04.3|Caso a DATA esteja em formato inválido, o sistema exibe a página de erro padrão.| |Tela 02|
-|05|Sistema exibe chips clicáveis "Outras Sessões do Dia" para cada sessão presente na data|RN19|Tela 02| +
-|06|Sistema exibe navegação "Sessão anterior" / "Próxima sessão" no topo e na base da página|RN08, RN18|Tela 02|+
  
----+==== Fluxo 05 - Renderizar Detalhe da Sessão ====
  
-==== Fluxo 04 — Filtro de Processos ====+^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.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| 
 +|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| 
 +|03|O sistema exibe a seção de Ata de Julgamento conforme a situação da ata.|RN13|Tela 02| 
 +|04|O sistema exibe a barra de filtros.|RN10|Tela 02| 
 +|05|O sistema executa o **[[#fluxo_06_-_listar_cards_de_processos|Fluxo 06]]**para renderizar os cards de processos.| | | 
 +|06|O sistema exibe os botões de navegação "Sessão anterior" e "Próxima sessão".|RN07|Tela 02| 
 + 
 +==== Fluxo 06 - Listar Cards de Processos ====
  
 ^Passo^Ação^Regra^Tela| ^Passo^Ação^Regra^Tela|
-|01|Usuário seleciona valor em ``<select>`` de Relator, Procurador ou Colegiado, ou digita texto no campo de busca livre|RN12, RN13|Tela 02| +|01|O sistema recupera a lista completa de processos da sessão retornada pela API.| |Tela 02| 
-|02|Sistema aplica filtros client-side (``useMemo``) sem nova chamada à API|RN12|Tela 02| +|02|O sistema aplica os filtros ativos (relator da pauta, texto livre) de forma cumulativa.|RN10|Tela 02| 
-|03|Sistema exibe contador "Exibindo X de Y processos" abaixo da barra de filtros|RN12|Tela 02| +|03|O sistema exibe o contador "Exibindo X de Y processos" quando ao menos um filtro estiver ativo.|RN10|Tela 02| 
-|04|Sistema exibe botão "Limpar filtros" (visível apenas quando há filtro ativo)| |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| 
-|05|Sistema reseta a paginação para página 1|RN11|Tela 02| +|04|O sistema renderiza os cards paginados do conjunto filtrado.|RN02|Tela 02| 
-|05.1|Filtros sem resultado → sistema exibe mensagem: "Nenhum processo encontrado para os filtros aplicados"| |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| 
-|06|Usuário clica em "Limpar filtros" → sistema remove todos os filtros ativos e restaura a lista completa paginada| |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|
  
----+==== Fluxo 07 - Aplicar Filtros nos Cards ====
  
-==== Fluxo 05 — Troca de Sessão no Mesmo Dia ====+^Passo^Ação^Regra^Tela| 
 +|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| 
 +|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.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| 
 + 
 +==== Fluxo 08 - Limpar Filtros ====
  
 ^Passo^Ação^Regra^Tela| ^Passo^Ação^Regra^Tela|
-|01|Usuário clica em chip "Outras Sessões do Dia" (ex.: "Primeira Câmara — Ordinária")|RN19|Tela 02| +|01|O usuário aciona o botão "Limpar filtros".| |Tela 02| 
-|02|Sistema executa ``GET /api/pautas/[DATA]?sessaoId={id}`` sem alterar a URL do navegador|RN19|Tela 02| +|02|O sistema remove todos os valores de filtro ativos.|RN10|Tela 02| 
-|03|Sistema atualiza o estado local: cabeçalho da sessão, Ata de Julgamento, filtros e cards de processos|RN05, RN17|Tela 02|+|03|O sistema reseta a paginação para a página 1.|RN02|Tela 02| 
 +|04|O sistema oculta o botão "Limpar filtros".|RN10|Tela 02| 
 +|05|O sistema exibe a lista completa de cards da sessão.|RN02|Tela 02|
  
----+==== Fluxo 09 - Acessar Detalhamento de Processo ====
  
-==== Fluxo 06 — Acesso ao Processo via Card ====+^Passo^Ação^Regra^Tela| 
 +|01|O usuário clica no número do processo no card.| |Tela 02| 
 +|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 ====
  
 ^Passo^Ação^Regra^Tela| ^Passo^Ação^Regra^Tela|
-|01|Usuário clica no número do processo no card|RN01|Tela 02| +|01|O usuário clica no botão "Assistir gravação" dentro do card do processo.|RN09|Tela 02| 
-|02|Sistema abre ``/processos/[autuacaoId]`` em nova aba (integração com RF-002)|RN01|Tela 02|+|02|O sistema exibe o reprodutor com a gravação vinculada ao processo, a partir do link retornado pela API.|RN09|Tela 02|
  
----+==== Fluxo 11 - Trocar Sessão no Mesmo Dia ====
  
-==== Fluxo 07 — Exibição e Acesso à Gravação por Processo ====+^Passo^Ação^Regra^Tela| 
 +|01|O usuário clica em um chip "Outras Sessões do Dia".| |Tela 02| 
 +|02|O sistema executa `GET /api/pautas/[DATA]?sessaoId={id}` com o identificador da sessão selecionada.|RN14|Tela 02| 
 +|03|O sistema atualiza o estado local da tela sem alterar a URL do navegador.|RN14|Tela 02| 
 +|04|O sistema executa o **[[#fluxo_05_-_renderizar_detalhe_da_sessao|Fluxo 05]]**com os dados da nova sessão.| | | 
 + 
 +==== Fluxo 12 - Navegar entre Sessões ====
  
 ^Passo^Ação^Regra^Tela| ^Passo^Ação^Regra^Tela|
-|01|Sistema verifica o campo ``gravacao`` de cada processo na resposta da API|RN10|Tela 02| +|01|O usuário aciona o botão "Sessão anterior" ou "Próxima sessão".|RN07|Tela 02| 
-|01.1|``gravacao === null`` → sistema omite botão "Assistir gravação" no card do processo|RN10|Tela 02| +|02|O sistema verifica se a sessão destino existe.|RN07| | 
-|01.2|``gravacao !== null`` → sistema exibe botão "Assistir gravação" com ícone ``Play`` (Lucide) no card|RN10|Tela 02| +|02.1|Caso o botão esteja desabilitado (`disabled`), nenhuma ação é executada.|RN07| | 
-|02|Usuário clica em "Assistir gravação"| |Tela 02| +|03|O sistema verifica a quantidade de sessões no dia destino.| | | 
-|02.1|``gravacao.tipo === "YOUTUBE"`` → sistema abre modal com ``<iframe>`` embed do YouTube| |Tela 02| +|03.1|Caso o dia destino possua apenas uma sessão, o sistema navega para `/pautas/[DATA]`.| |Tela 02| 
-|02.2|``gravacao.tipo === "ARQUIVO"`` → sistema abre modal com ``<video>`` ou link direto para o arquivo ``.mp4``| |Tela 02|+|03.2|Caso o dia destino possua múltiplas sessões, o sistema navega para `/pautas/[DATA]?sessaoId={id}`.| |Tela 02| 
 +|04|O sistema executa o **[[#fluxo_04_-_acessar_detalhe_de_sessao|Fluxo 04]]**para carregar o detalhe da sessão destino.| | |
  
----+==== Fluxo 13 - Visualizar Membros da Sessão ==== 
 + 
 +^Passo^Ação^Regra^Tela| 
 +|01|O usuário aciona o link "ver membros" no cabeçalho da sessão.| |Tela 02| 
 +|02|O sistema abre modal/painel lateral com a lista de membros.|RN12|Tela 02| 
 +|03|O sistema exibe exclusivamente nome (`nomeMembro`) e função (`tituloMembro`) de cada membro, conforme retornado pelo Catálogo de Serviços.|RN12|Tela 02|
  
-==== Fluxo 08 — Navegação entre Sessões ====+==== Fluxo 14 - Baixar Ata de Julgamento ====
  
 ^Passo^Ação^Regra^Tela| ^Passo^Ação^Regra^Tela|
-|01|Sistema exibe botões "← Sessão anterior" e "Próxima sessão →" no topo e na base da página|RN08|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| 
-|01.1|Não há sessão anterior → botão "← Sessão anterior" exibido como ``disabled`` (sem link)|RN08|Tela 02| +|02|O sistema realiza o download do arquivo da ata.|RN13|–|
-|01.2|Não há próxima sessão → botão "Próxima sessão →" exibido como ``disabled`` (sem link)|RN08|Tela 02| +
-|02|Usuário clica em "← Sessão anterior" ou "Próxima sessão →"| |Tela 02| +
-|02.1|Sessão destino é única no dia → sistema navega para ``/pautas/[DATA]``|RN18|Tela 02| +
-|02.2|Sessão destino possui múltiplas sessões no dia → sistema navega para ``/pautas/[DATA]?sessaoId={id}``|RN18|Tela 02|+
  
----+===== RN – Regras de Negócio =====
  
-==== Fluxo 09 — Exibição da Ata de Julgamento ====+^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) **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.| 
 +|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, 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.| 
 +|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.| 
 +|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 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 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)"**.| 
 +|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 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".| 
 +|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.|
  
-^Passo^Ação^Regra^Tela| +===== Integrações =====
-|01|Sistema verifica o campo ``situacao`` da ``AtaJulgamento`` retornado pela API|RN17|Tela 02| +
-|01.1|``situacao === "AGUARDANDO_SESSAO"`` → sistema exibe banner azul claro (``blue-50``) sem ação disponível|RN17|Tela 02| +
-|01.2|``situacao === "EM_ELABORACAO"`` → sistema exibe banner amarelo (``amber-50``) sem ação disponível|RN17|Tela 02| +
-|01.3|``situacao === "ELABORADA"`` → sistema exibe banner verde (``green-50``) com botão "Baixar Ata" (link para PDF)|RN17|Tela 02| +
-|02|Usuário clica em "Baixar Ata" → sistema abre URL do PDF da ata (campo ``url`` da ``AtaJulgamento``)|RN17|Tela 02|+
  
----+==== Catálogo de Serviços TCE-GO ====
  
-==== Fluxo 10 — Membros da Sessão ====+Base URL: ''[[https://catalogodeservicos.tce.go.gov.br|https://catalogodeservicos.tce.go.gov.br]]''
  
-^Passo^Ação^Regra^Tela| +^Endpoint^Método^Parâmetros^Usado em^Dados obtidos| 
-|01|Usuário clica em "ver membros" no cabeçalho da sessão| |Tela 02| +|''/api/pauta/datas/{mes}/{ano}'' |GET|''mes'' (int, path, obrigatório), ''ano'' (int, path, obrigatório)|Calendário|Lista de dias com sessão: ''dia'' (int) + ''titulo'' (string descritivo). Retorna 404 quando não há sessões no período.| 
-|02|Sistema abre modal/painel lateral com lista de membros da sessão|RN15|Tela 02| +|''/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.| 
-|03|Sistema exibe nome e função de cada membro; forma (Relator/Relatora, Secretário/Secretária) segue ``INDR_SEXO_A`` (``M``/``F``)|RN15|Tela 02| +|''/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.| 
-|04|Sistema omite funções internas não mapeadas (exibe somente: Presidente, Relator/a, Procurador, Secretário/a)|RN15|Tela 02|+|''/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: 
 + 
 +^Código^Descrição| 
 +|400|Parâmetros inválidos — ''[[:pres:gerti:gestao_de_ativos:portal:resultrequest|ResultRequest]]''com detalhes do erro.| 
 +|500|Erro inesperado no servidor — ''[[:pres:gerti:gestao_de_ativos:portal:resultrequest|ResultRequest]]''com detalhes do erro.| 
 + 
 +==== Campos Complementares — Oracle Direto (legado) ==== 
 + 
 +Campos **não disponíveis** no Catálogo de Serviços; obtidos diretamente via ''[[:pres:gerti:gestao_de_ativos:portal:repositoriodesessao|RepositorioDeSessao]]'' / Oracle: 
 + 
 +^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.| 
 +|''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.| 
 +|''DATA_ABERTURA_D'', ''DATA_FECHAMENTO_D'', ''DATA_DIVULGACAO_D'' |''PLD_SESSAO'' |Datas complementares do ciclo de vida da sessão.| 
 +|''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 (RN15).| 
 +|''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.| 
 +|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'', ''dataElaboracao'', ''PLDATA_ID'', ''token'')|''PLD_ATA'' |Retornada por ''/api/pauta/sessoes-completas''; alimenta o banner de ata e o download do arquivo (RN13).|
  
----+===== Histórico de Revisões =====
  
-===== RN — Regras de Negócio =====+^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|
  
-^ Regra ^ Descrição ^ +— //Gerado com: documentar-funcionalidade-v1.md// \\ 
-| RN01 | **N° Processo é link para RF-002** — O número do processo no card deve ser um link ``<a href="/processos/[autuacaoId]" target="_blank">`` que abre o detalhamento do processo em nova aba (integração com RF-002) | +— //Revisado por: Paulo Ricardo Amorim Silva - pramorim@tce.go.gov.br// \\ 
-| RN02 | **Paginação obrigatória** — Lista de processos paginada por padrão em 20 itens/página; seletor de itens por página: 10 / 20 / 50; total reflete o conjunto após aplicação dos filtros ativos, não o total bruto | +— //Atualizado em 2026-08-25 pelas respostas às pendências registradas em `testes/pendencias-e-divergencias.md` (PD-06, PD-14 e PD-15)//
-| RN03 | **Sessões CANCELADAS e INATIVAS excluídas do calendário** — Apenas sessões com ``INDR_STATUS_A IN ('A', 'E')`` (Ativa e Encerrada) são exibidas no calendário | +
-| RN04 | **Itens de pauta Transferidos, Excluídos e Extraordinários ocultos** — Processos com ``INDR_ESTADO_A IN ('T', 'E', 'X')`` são filtrados na query e não aparecem nos cards | +
-| RN05 | **Campo ausente exibe "Não informado"** — Aplica-se a: Relator, Procurador, N° Processo, Assunto e Ementa | +
-| RN06 | **Indicador "Julgado" exibido somente em processos julgados** — Badge visível apenas quando ``INDR_ESTADO_A = 'J'`` ou campo equivalente de status julgado; omitido nos demais casos | +
-| RN07 | **Distinção visual obrigatória por tipo de plataforma** — Cor de fundo do badge do dia no calendário e legenda persistente na tela devem sempre diferenciar: Presencial (azul ``--primary``), Videoconferência (verde ``--success``), Votação Simultânea (laranja ``--complementary``) | +
-| RN08 | **Navegação entre sessões desabilitada quando inexistente** — Botão "← Sessão anterior" ou "Próxima sessão →" exibido como ``disabled`` sem link quando não há sessão anterior/seguinte disponível | +
-| RN09 | **Sessão Cancelada exibe banner de aviso no detalhe** — Quando ``INDR_STATUS_A = 'C'``, sistema exibe badge/alerta "Sessão Cancelada" no cabeçalho da Tela 02 | +
-| RN10 | **Gravação exibida apenas quando disponível, por processo** — Botão "Assistir gravação" é omitido no card quando ``gravacao === null``; exibido individualmente por processo quando preenchido | +
-| RN11 | **Paginação sempre ativa no detalhe** — Cards paginados mesmo quando a lista possui ≤ 20 itens; qualquer alteração nos filtros reseta a paginação para a página 1 | +
-| RN12 | **Filtros são cumulativos e client-side** — Todos os filtros ativos são combinados por operador AND; não disparam nova chamada à API; contador "Exibindo X de Y processos" reflete o conjunto filtrado | +
-| RN13 | **Filtro de texto busca em N° Processo, Assunto e Ementa** — Busca parcial, case-insensitive, nos campos ``numeroProcesso``, ``assunto`` e ``ementa`` simultaneamente | +
-| RN14 | **Fundamentação legal exibida no cabeçalho da sessão** — Texto fixo: "PAUTA (art. 150, Incisos I a VI, RI-TCE)" | +
-| RN15 | **Membros exibem somente nome e função** — Funções permitidas: Presidente (``P``), Relator/a (``C``, ``A``, ``AS``, ``CS``), Procurador (``R``, ``PS``), Secretário/a (``S``); forma de gênero segue ``INDR_SEXO_A``; demais funções internas são omitidas | +
-| RN16 | **Processos listados como cards, não como tabela** — Layout de card com ementa expandível; não utilizar grade tabular para a listagem de processos | +
-| RN17 | **Ata de Julgamento exibe estado atual da sessão** — Três situações possíveis: ``AGUARDANDO_SESSAO`` (banner azul, sem ação), ``EM_ELABORACAO`` (banner amarelo, sem ação), ``ELABORADA`` (banner verde, botão "Baixar Ata" com link para PDF) | +
-| RN18 | **Navegação entre sessões usa datas, não IDs** — URLs seguem o padrão ``/pautas/[DATA]`` (sessão única no dia) ou ``/pautas/[DATA]?sessaoId={id}`` (múltiplas sessões no dia) | +
-| RN19 | **Troca de sessão no mesmo dia é client-side** — Chips "Outras Sessões do Dia" não alteram a URL do navegador; atualizam apenas o estado local via nova chamada ``GET /api/pautas/[DATA]?sessaoId={id}`` | +
-| RN20 | **Sessão de Videoconferência exibe link de transmissão** — Quando ``plataforma === "VIDEOCONFERENCIA"`` e campo ``linkTransmissao`` estiver preenchido, sistema exibe link "Assistir transmissão" no cabeçalho da sessão |+
  
  • pres/gerti/gestao_de_ativos/portal/er_011.1775735158.txt.gz
  • Última modificação: 09/04/2026 11:45
  • por pramorim