Diferenças

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

Link para esta página de comparações

Próxima revisão
Revisão anterior
pres:gerti:gestao_de_ativos:portal:er_011 [09/04/2026 11:44] – criada pramorimpres:gerti:gestao_de_ativos:portal:er_011 [10/04/2026 12:59] (atual) – [Campos Complementares — Oracle Direto (legado)] pramorim
Linha 1: Linha 1:
-====== RF-011 — Pautas e Sessões de Julgamento ======+====== [ER_011] Requisitos - Pautas e Sessões de Julgamento ======
  
-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 navegação entre sessões.+**Descrição**: Funcionalidade que disponibiliza ao público um calendário mensal de sessões de julgamento do TCE-GOcom distinção visual obrigatória entre sessões PresenciaisVideoconferência 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 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 Visitante | 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`) ==== 
 +{{:pres:gerti:gestao_de_ativos:portal:pasted:20260410-124027.png}}
  
-^ Elemento ^ Tipo ^ Descrição ^ +Tela responsável por exibir o calendário mensal de sessões de julgamento com distinção visual por tipo de plataforma.
-| 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:**+^Elemento^Tipo^Obrigatório^Valores Possíveis^Valor Padrão^Observação| 
 +|Cabeçalho da Página|Texto estático|Sim|"Pautas e Sessões de Julgamento"|–|Exibido em fundo azul (`--primary`).| 
 +|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).| 
 +|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|Mensagem informativa|–|Exibido quando nenhuma sessão existe no mês consultado.| 
 +|Estado de Carregamento|Skeleton animado|Condicional|–|–|Exibido durante a chamada à API.|
  
-^ Cor ^ Token ^ Tipo de Sessão ^ Código Legado ^ +==== Tela 02 Detalhe da Sessão (`/pautas/[DATA]`) ====
-| Azul | ``--primary`` | Sessão Presencial | ``INDR_TIPO_A = 'O'`` ou ``'X'`` — plataforma presencial | +
-| Verde | ``--success`` (~#16A34A) | Videoconferência | Plataforma videoconferência | +
-| Laranja | ``--complementary`` (~#F17300| Votação Simultânea (Plenário Virtual) | ``INDR_TIPO_A 'E'`` (Extraordinária Administrativa) |+
  
-**Combinações possíveis de sessões em um mesmo dia:**+{{:pres:gerti:gestao_de_ativos:portal:pasted:20260410-125224.png}} 
 +{{:pres:gerti:gestao_de_ativos:portal:pasted:20260410-125409.png}}
  
-^ Sessão ^ Colegiado ^ Tipo ^ +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.
-| 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 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|Catálogo (`/api/pauta/sessao`)|Derivado de `tipoSessao` + `informacaoSessao`|Sim|"Presencial" "Videoconferência" "Virtual (Votação Simultânea — Plenário Virtual)".
-| Situação | ``INDR_STATUS_A`| "Ativa" / "Encerrada" / "Cancelada" / "Inativa"+|Situação|Oracle|`PLD_SESSAO.INDR_STATUS_A`|Sim|"Ativa" / "Encerrada" / "Cancelada" / "Inativa". Sessão Cancelada exibe banner de aviso (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 `processosCamaraSessaode 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 (ex.: sessão cancelada) (RN08).| 
 +|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 encerradaata em preparo|Amarelo (`amber-50`)|Nenhuma.
-Procurador | ``R``, ``PS`` | +|Ata — Elaborada|`ELABORADA`|Ata finalizada com URL disponível|Verde (`green-50`)|Botão "Baixar Ata" (link para PDF) (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`` +|Procurador|Seleção (`<select>`)|`procurador`|Lista de procuradores únicos da sessão corrente.
-| Colegiado / Plenário | ``<select>`` | Primeira Câmara / Segunda Câmara / Tribunal Pleno | ``colegiado`` +|Colegiado / Plenário|Seleção (`<select>`)|`colegiado`|Opções: Primeira Câmara / Segunda Câmara / Tribunal Pleno.
-| Texto livre | ``<input>`Busca parcial, case-insensitive | ``numeroProcesso`` + ``assunto`` + ``ementa`|+|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).| 
 +|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).
-| 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).
-| Relator | ``RELATOR`` (via ``VPLD_MEMBROS_CAD_SESSAO``| Sim | "Não informado"+|Relator|Catálogo (`/api/pauta/sessao`)|`Membro.nomeMembrocom função Relator|Sim|"Não informado" (RN04).
-| Procurador | membro com ``INDR_FUNCAO_A = 'R'`` ou ``'PS'`` | Sim | "Não informado"+|Procurador|Catálogo (`/api/pauta/sessao`)|`Membro.nomeMembrocom função Procurador|Sim|"Não informado" (RN04).
-Indicador "Julgado" | ``INDR_ESTADO_A = 'J'`` | Condicional | Badge omitido se não julgado | +|Badge "Julgado"|Catálogo (`/api/pauta/sessao`)|`Processo.julgado(boolean)|Condicional|Badge omitido quando `julgado = false` (RN05).
-| Botão "Assistir gravação" | ``gravacao`` por processo | Condicional | Botão omitido se ``gravacao === null`` |+|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).| 
 +|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 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 — Navegação entre Meses ====+==== Fluxo 02 - Renderizar Calendário ====
  
 ^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 mensagem informativa de mês sem sessões. |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 — Acesso ao Detalhe da Sessão ====+==== Fluxo 03 - Navegar entre Meses ====
  
 ^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 aciona o botão "Mês Anterior" ou "Próximo Mês".| |Tela 01| 
-|02|Sistema navega para ``/pautas/[DATA]`` (todos os badges do mesmo dia utilizam a mesma URL)| |Tela 02| +|02|O sistema executa nova chamada `GET /api/pautas/calendario?mes={mm}&ano={yyyy}com o mês/ano correspondente.| |Tela 01
-|03|Sistema exibe skeleton animado (estado ``loading``)| |Tela 02| +|03|sistema atualiza apenas o componente do calendário, sem reload da página.|RN06|Tela 01
-|04|Sistema executa ``GET /api/pautas/[DATA]``| |Tela 02+|04|sistema executa o **[[#fluxo_02_-_renderizar_calendario|Fluxo 02]]** com os dados do novo mês.| | |
-|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.2|API retorna ``not found`` → sistema executa ``notFound()`` (HTTP 404)|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| +
-|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 04 — Filtro de Processos ====+==== Fluxo 04 - Acessar Detalhe de Sessão ====
  
 ^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 usuário clica em um badge de sessão em um dia do calendário.| |Tela 01
-|02|Sistema aplica filtros client-side (``useMemo``) sem nova chamada à API|RN12|Tela 02| +|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| 
-|03|Sistema exibe contador "Exibindo X de Y processos" abaixo da barra de filtros|RN12|Tela 02| +|03|O sistema exibe o estado de carregamento (skeleton animado).| |Tela 02| 
-|04|Sistema exibe botão "Limpar filtros" (visível apenas quando há filtro ativo)| |Tela 02+|04|O sistema executa `GET /api/pautas/[DATA]`.| | | 
-|05|Sistema reseta paginação para página 1|RN11|Tela 02| +|04.1|Caso chamada retorne sucesso, o sistema executa o **[[#fluxo_05_-_renderizar_detalhe_da_sessao|Fluxo 05]]**.| | | 
-|05.1|Filtros sem resultado → sistema exibe mensagem: "Nenhum processo encontrado para os filtros aplicados"|Tela 02+|04.2|Caso DATA seja inválida ou não possua sessão, o sistema retorna 404 (`notFound()`).| |Tela 02|
-|06|Usuário clica em "Limpar filtros" → sistema remove todos os filtros ativos e restaura lista completa paginada| |Tela 02|+
  
---- 
  
-==== Fluxo 05 — Troca de Sessão no Mesmo Dia ====+==== Fluxo 05 - Renderizar Detalhe da Sessão ====
  
 ^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 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| 
-|02|Sistema executa ``GET /api/pautas/[DATA]?sessaoId={id}`` sem alterar URL do navegador|RN19|Tela 02| +|01.1|Caso a sessão possua status Cancelada, o sistema exibe banner de aviso "Sessão Cancelada".|RN08|Tela 02| 
-|03|Sistema atualiza o estado local: cabeçalho da sessão, Ata de Julgamentofiltros cards de processos|RN05, RN17|Tela 02|+|01.2|Caso a sessão seja do tipo Videoconferência e possua `linkTransmissao` preenchido, o sistema exibe o link "Assistir transmissãono cabeçalho.|RN15|Tela 02| 
 +|02|O sistema verifica 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 — Acesso ao Processo via Card ====+==== Fluxo 06 - Listar Cards de Processos ====
  
 ^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 sistema recupera a lista completa de processos da sessão retornada pela API.| |Tela 02| 
-|02|Sistema abre ``/processos/[autuacaoId]`` em nova aba (integração com RF-002)|RN01|Tela 02|+|02|O sistema aplica os filtros ativos (relator, procurador, colegiado, 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.1|Caso o filtro não retorne resultados, o sistema exibe a mensagem: "Nenhum processo encontrado para os filtros aplicados".|RN10|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.1|Campos ausentes são exibidos como "Não informado".|RN04|Tela 02|
  
---- 
  
-==== Fluxo 07 — Exibição e Acesso à Gravação por Processo ====+==== Fluxo 07 - Aplicar Filtros nos Cards ====
  
 ^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 seleciona um valor em qualquer campo da barra de filtros (Relator, Procurador, Colegiado ou Texto livre).| |Tela 02| 
-|01.1|``gravacao === null`` → sistema omite botão "Assistir gravação" no card do processo|RN10|Tela 02| +|02|sistema aplica os filtros cumulativamente (AND), sem nova chamada à API.|RN10|Tela 02| 
-|01.2|``gravacao !== null`` → sistema exibe botão "Assistir gravação" com ícone ``Play`` (Lucide) no card|RN10|Tela 02| +|03|sistema reseta a paginação para a página 1.|RN02|Tela 02| 
-|02|Usuário clica em "Assistir gravação"| |Tela 02| +|04|O sistema atualiza o contador "Exibindo X de Y processos".|RN10|Tela 02| 
-|02.1|``gravacao.tipo === "YOUTUBE"`` → sistema abre modal com ``<iframe>`` embed do YouTube| |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| 
-|02.2|``gravacao.tipo === "ARQUIVO"`` → sistema abre modal com ``<video>`` ou link direto para arquivo ``.mp4``| |Tela 02|+|05|sistema exibe botão "Limpar filtros".|RN10|Tela 02|
  
---- 
  
-==== Fluxo 08 — Navegação entre Sessões ====+==== Fluxo 08 - Limpar Filtros ====
  
 ^Passo^Ação^Regra^Tela| ^Passo^Ação^Regra^Tela|
-|01|Sistema exibe botões "← Sessão anteriore "Próxima sessão →" no topo e na base da página|RN08|Tela 02| +|01|O usuário aciona o botão "Limpar filtros".| |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 remove todos os valores de filtro ativos.|RN10|Tela 02| 
-|01.2|Não há próxima sessão → botão "Próxima sessão →" exibido como ``disabled`` (sem link)|RN08|Tela 02| +|03|O sistema reseta a paginação para a página 1.|RN02|Tela 02| 
-|02|Usuário clica em "← Sessão anterior" ou "Próxima sessão →"| |Tela 02| +|04|O sistema oculta o botão "Limpar filtros".|RN10|Tela 02| 
-|02.1|Sessão destino é única no dia → sistema navega para ``/pautas/[DATA]``|RN18|Tela 02| +|05|sistema exibe a lista completa de cards da sessão.|RN02|Tela 02|
-|02.2|Sessão destino possui múltiplas sessões no dia → sistema navega para ``/pautas/[DATA]?sessaoId={id}``|RN18|Tela 02|+
  
---- 
  
-==== Fluxo 09 — Exibição da Ata de Julgamento ====+==== Fluxo 09 - Acessar Detalhamento de Processo ====
  
 ^Passo^Ação^Regra^Tela| ^Passo^Ação^Regra^Tela|
-|01|Sistema verifica o campo ``situacao`` da ``AtaJulgamento`` retornado pela API|RN17|Tela 02| +|01|O usuário clica no número do processo no card.| |Tela 02| 
-|01.1|``situacao === "AGUARDANDO_SESSAO"`` → sistema exibe banner azul claro (``blue-50``) sem ação disponível|RN17|Tela 02| +|02|sistema abre `/processos/[autuacaoId]` em nova aba (RF-002).|RN01||
-|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|+
  
---- 
  
-==== Fluxo 10 — Membros da Sessão ====+==== Fluxo 10 - Assistir Gravação do Processo ====
  
 ^Passo^Ação^Regra^Tela| ^Passo^Ação^Regra^Tela|
-|01|Usuário clica em "ver membrosno cabeçalho da sessão| |Tela 02| +|01|O usuário clica no botão "Assistir gravaçãodentro do card do processo.|RN09|Tela 02| 
-|02|Sistema abre modal/painel lateral com lista de membros da sessão|RN15|Tela 02+|02|O sistema verifica o tipo da gravação vinculada ao processo.|RN09| | 
-|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| +|02.1|Caso `gravacao.tipo === "YOUTUBE"`: o sistema abre modal com `<iframe>embed do YouTube.|RN09|Tela 02| 
-|04|Sistema omite funções internas não mapeadas (exibe somentePresidente, Relator/a, Procurador, Secretário/a)|RN15|Tela 02|+|02.2|Caso `gravacao.tipo === "ARQUIVO"`o sistema abre `<video>` em modal ou link direto para o arquivo `.mp4`.|RN09|Tela 02|
  
---- 
  
-===== RN — Regras de Negócio =====+==== Fluxo 11 - Trocar Sessão no Mesmo Dia ====
  
-Regra Descrição +^Passo^Ação^Regra^Tela| 
-RN01 | **N° Processo é link para RF-002** — 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) +|01|O usuário clica em um chip "Outras Sessões do Dia".| |Tela 02| 
-| 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 50total reflete o conjunto após aplicação dos filtros ativos, não o total bruto | +|02|O sistema executa `GET /api/pautas/[DATA]?sessaoId={id}` com o identificador da sessão selecionada.|RN14|Tela 02| 
-| RN03 | **Sessões CANCELADAS 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 +|03|O sistema atualiza o estado local da tela sem alterar a URL do navegador.|RN14|Tela 02| 
-| 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 +|04|O sistema executa o **[[#fluxo_05_-_renderizar_detalhe_da_sessao|Fluxo 05]]** com os dados da nova sessão.| | | 
-RN05 | **Campo ausente exibe "Não informado"** — Aplica-se a: Relator, Procurador, N° Processo, Assunto 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 diferenciarPresencial (azul ``--primary``), Videoconferência (verde ``--success``), Votação Simultânea (laranja ``--complementary``) | +==== Fluxo 12 - Navegar entre Sessões ==== 
-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 +^Passo^Ação^Regra^Tela| 
-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 +|01|O usuário aciona o botão "Sessão anterior" ou "Próxima sessão".|RN07|Tela 02| 
-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 | +|02|O sistema verifica se a sessão destino existe.|RN07| | 
-| 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 | +|02.1|Caso o botão esteja desabilitado (`disabled`), nenhuma ação é executada.|RN07| | 
-| RN13 | **Filtro de texto busca em N° Processo, Assunto Ementa** — Busca parcial, case-insensitivenos campos ``numeroProcesso````assunto`` ``ementa`` simultaneamente | +|03|O sistema verifica a quantidade de sessões no dia destino.| | | 
-RN14 | **Fundamentação legal exibida no cabeçalho da sessão** — Texto fixo: "PAUTA (art. 150, Incisos I a VI, RI-TCE)"+|03.1|Caso o dia destino possua apenas uma sessão, o sistema navega para `/pautas/[DATA]`.| |Tela 02| 
-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 | +|03.2|Caso o dia destino possua múltiplas sessões, o sistema navega para `/pautas/[DATA]?sessaoId={id}`.| |Tela 02| 
-| 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 +|04|O sistema executa o **[[#fluxo_04_-_acessar_detalhe_de_sessao|Fluxo 04]]** para carregar o detalhe da sessão destino.| | | 
-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 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}`` +==== Fluxo 13 - Visualizar Membros da Sessão ==== 
-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 |+ 
 +^Passo^Ação^Regra^Tela| 
 +|01|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 14 - Baixar Ata de Julgamento ==== 
 + 
 +^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| 
 +|02|O sistema abre o link do PDF da ata em nova aba ou realiza download do arquivo.|RN13|–| 
 + 
 + 
 +===== RN – Regras de Negócio ===== 
 + 
 +^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"`.
 +|RN02|**Paginação dos Processos** – A lista de cards é sempre paginada. Padrão: 20 itens por página; seletor com opções: 1020 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 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, AssuntoEmenta) não estiver disponível, o sistema exibe o texto "Não informado". O campo nunca é exibido vazio ou como `null`.
 +|RN05|**Badge "Julgado" — Condicional por Processo** – O badge "Julgado" é exibido no card somente quando o campo `julgadoretornado 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 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" "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 Canceladasistema exibe um banner de aviso "Sessão Cancelada" no topo da página de detalhe.
 +|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 YouTube (abre modal com embed) ou arquivo `.mp4(abre modal com `<video>`).
 +|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° ProcessoAssunto 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. O campo `tituloMembroretornado 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: PresidenteRelator(a), Procurador e Secretário(a). A função Procurador Substituto (`PS`) não é exibida.
 +|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 ''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.
 +|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.| 
 + 
 +===== Integrações ===== 
 + 
 +==== Catálogo de Serviços TCE-GO ==== 
 + 
 +Base URL: ''https://catalogodeservicos.tce.go.gov.br'' 
 + 
 +^Endpoint^Método^Parâmetros^Usado em^Dados obtidos^ 
 +|''/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.| 
 +|''/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 ''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.| 
 + 
 +Respostas de erro comuns a todos os endpoints: 
 + 
 +^Código^Descrição^ 
 +|400|Parâmetros inválidos — ''ResultRequest'' com detalhes do erro.| 
 +|500|Erro inesperado no servidor — ''ResultRequest'' com detalhes do erro.| 
 + 
 +==== Campos Complementares — Oracle Direto (legado) ==== 
 + 
 +Campos **não disponíveis** no Catálogo de Serviços; obtidos diretamente via ''RepositorioDeSessao'' / Oracle: 
 + 
 +^Campo^Origem Oracle^Observação^ 
 +|''PLDSESS_ID'' (sessaoId)|''PLD_SESSAO.PLDSESS_ID''|Identificador da sessão — necessário para navegação vínculo de dados.| 
 +|''INDR_STATUS_A'' (status)|''PLD_SESSAO.INDR_STATUS_A''|Status estruturado: A=Ativa, E=Encerrada, C=Cancelada, I=Inativa (RN09).| 
 +|''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|''INDR_TIPO_A''campo de plataforma em ''PLD_SESSAO''|Base para distinção visual (RN07).| 
 +|''linkTransmissao''|Campo de plataforma/videoconferência em ''PLD_SESSAO''|Exibido no cabeçalho quando sessão é Videoconferência (RN20).| 
 +|''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 (RN08, RN18).| 
 +|Ata de julgamento (''situacao'', ''url'', ''dataElaboracao'')|Tabela/view de ata — a mapear|Alimenta banner de ata (RN17).| 
 + 
 +--- 
 +//Gerado com: documentar-funcionalidade-v1.md// \\ 
 +--- 
 +//Revisado por: Paulo Ricardo Amorim Silva - pramorim@tce.go.gov.br//
  
  • pres/gerti/gestao_de_ativos/portal/er_011.1775735056.txt.gz
  • Última modificação: 09/04/2026 11:44
  • por pramorim