Diligências — the shared action catalogue
Source: src/lib/inquiry-action-types.ts (~900 lines), rendered by InquiryActionsList and
ActionLandingDrawer.
Two phases embed this engine — Inquérito Prévio with
phase="PRELIMINARY_INQUIRY" and Fase de Prova with phase="EVIDENCE_PHASE".
It is the single best-built part of the PoC and the part a rebuild should copy most faithfully.
The shape
Each action type is an ActionTypeConfig declaring:
| Key | Meaning |
|---|---|
substeps | the mini-workflow, each with fields and requiredFields |
fields | typed field definitions — text · textarea · date · datetime · select · switch, with options, rows, required |
deliverableTitle / deliverableSections | the document the diligência produces |
usesQuestions | whether the type gets the question/answer array |
suggestedQuestions | pre-loaded prompts, hearings only |
infoFields | which fields surface on the summary card |
This is the only declarative field schema in the PoC — everywhere else the fields are
hand-written JSX. It is also the only place required means anything before save.
Every type ends with an Encerramento substep carrying Observações finais and a required
Data/hora de encerramento.
1. Inquirição de Testemunha → Ata da Inquirição
| Substep | Inputs |
|---|---|
| Preparação | Testemunha * · Função / Departamento · Relação com os factos · Data prevista * · Local / Modo (Presencial · Remoto) · Notas preparatórias |
| Identificação | Nome completo * · Função * · Departamento · Antiguidade · Relação com o arguido · Relação com os factos |
| Advertência | Foi explicado o objeto da inquirição? * · Foi advertida do dever de verdade? * · Aceitou prestar declarações? * (three switches) · Observações |
| Perguntas | question/answer array — 6 suggested questions pre-loaded |
| Encerramento | Observações finais · A testemunha quis acrescentar algo? · Data/hora de encerramento * |
The three switches in Advertência are the procedural-validity record for the hearing: object
explained, duty of truth warned, consent given. They are booleans with no timestamp and no
signature.
2. Audição do Trabalhador → Ata da Audição
| Substep | Inputs |
|---|---|
| Preparação | Trabalhador * · Função / Departamento · Data prevista * · Local / Modo · Notas preparatórias |
| Identificação | Nome completo * · Função * · Departamento · Nº de colaborador |
| Contexto da audição | Foi explicado o contexto da audição? * (switch) · Finalidade da audição · O trabalhador foi informado dos seus direitos? (switch) · Observações |
| Perguntas | question/answer array |
| Encerramento | Observações finais · O trabalhador quis acrescentar algo? · Data/hora * |
3. Auto de Declarações do Arguido → Auto de Declarações do Arguido
| Substep | Inputs |
|---|---|
| Preparação | Arguido * · Função / Departamento · Data prevista * · Referência à Nota de Culpa * · Forma de convocatória · Notas preparatórias · Local / Modo |
| Identificação e direitos | Nome completo * · Função · Departamento · Foram explicados ao arguido os seus direitos de defesa? * · Está presente advogado/mandatário? * · Nome do advogado/mandatário · Observações |
| Declarações | question/answer array |
| Diligências requeridas pelo arguido | Diligências/prova requeridas · Decisão do instrutor sobre as diligências requeridas |
| Encerramento | Observações finais · O arguido quis acrescentar algo? · Data/hora * |
The richest type, and the only one that models the defence's rights explicitly. Referência à Nota de Culpa is a free-text string ("Ex: NC de dd/mm/aaaa") rather than a link to the Nota de Culpa deliverable that exists in the same case.
Its Diligências requeridas pelo arguido substep also duplicates what
Resposta do Arguido and Fase de Prova already record —
a third place where requested diligences and their rulings live, with no reconciliation between
the three.
4. Recolha Documental → Nota de Recolha Documental
| Substep | Inputs |
|---|---|
| Origem da documentação | Fonte documental * · Departamento / sistema de origem · Pessoa de contacto · Data da recolha |
| Identificação dos documentos | Lista de documentos * (one per line) · Tipo de documento · Período abrangido |
| Upload / associação | Descrição dos ficheiros associados · Nº total de ficheiros |
| Descrição / contexto | Contexto da recolha * · Relevância para o inquérito · Responsável |
| Encerramento | Observações finais · Data/hora * |
Nº total de ficheiros is typed by hand as text, and Upload / associação only asks for a
description of the associated files — the substep named after uploading does not upload
anything. Chain-of-custody is therefore prose.
5. Análise Documental → Nota de Análise Documental
| Substep | Inputs |
|---|---|
| Seleção do documento | Documento analisado * · Referência / localização · Data da análise · Responsável pela análise |
| Objeto da análise | Objeto da análise * · Âmbito |
| Análise / observações | Observações da análise * (6 rows) · Pontos relevantes identificados |
| Conclusões preliminares | Conclusões preliminares * · Recomendações |
| Encerramento | Observações finais · Data/hora * |
6. Pedido de Informação Interna → Registo do Pedido / Resposta Interna
| Substep | Inputs |
|---|---|
| Identificação do destinatário | Área / departamento destinatário * · Pessoa de contacto · Data do pedido · Responsável pelo pedido |
| Objeto do pedido | Objeto do pedido * · Justificação / contexto |
| Registo do pedido | Forma de envio (Email · Ofício · Verbal · Outro) · Referência do pedido · Notas adicionais |
| Registo da resposta | Data da resposta · Resumo da resposta * · Relevância da resposta · Documentos recebidos |
| Encerramento | Observações finais · Data/hora * |
7. Nota do Instrutor → Nota Interna
| Substep | Inputs |
|---|---|
| Identificação da nota | Título * · Data · Autor |
| Objeto / tema | Tema / objeto * · Âmbito / delimitação |
| Conteúdo | Conteúdo / apreciação * (8 rows) |
| Conclusão / síntese | Conclusão * · Observações finais |
| Encerramento | Data/hora de encerramento * |
8. Outro / Diligência Livre → Registo da Diligência
| Substep | Inputs |
|---|---|
| Identificação | Título * · Data · Responsável |
| Objeto | Objeto / descrição * |
| Conteúdo / execução | Detalhes da execução * · Anexos (descrição) |
| Resultado | Resultado * · Observações |
| Encerramento | Observações finais · Data/hora * |
Rebuild implication
Keep this catalogue. The substep decomposition, the procedural switches and the per-type
deliverable are real domain knowledge, and the declarative SubstepFieldDef shape is close to
what a server-side schema wants to be.
Three things to change on the way through:
Autor,Responsável,Pessoa de contactoandNome do advogadoare all free text. They should be user or party references where the person is in the system.Referência à Nota de Culpashould be a foreign key, not a typed string.Upload / associaçãoshould actually associate files, so the evidence chain stops being a description of itself.
Related
- Inquérito Prévio · Fase de Prova — the two hosts
- Witness limits — declared in the domain, unenforced here
- Deliverable subsystems