@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
155 lines • 6.7 kB
TypeScript
import type { EnumData } from "../interfaces/enum-data.interface";
import type { ControladorDto } from "./controlador.dto";
import type { ResponsavelDto } from "./responsavel.dto";
import type { StatusInterno } from "../enums/status-interno.enum";
import type { BaseEntity } from "../base";
/**
* @interface ProcessoInput
* @description
* Representa os dados necessários para criação ou atualização de um processo.
*
* Usada principalmente como payload em formulários ou APIs REST.
*
* ⚠️ Não contém identificador (`id`) nem metadados como `criadoEm`.
*
* @property {boolean} [anonimo] Indica se o processo é anônimo.
* @property {number} [contatoPrevioId] Identificador do contato prévio relacionado.
* @property {string} [dataConclusao] Data de conclusão do processo (formato ISO).
* @property {string} dataCriacao Data de criação do processo (formato ISO).
* @property {string} [dataEnvioPedido] Data de envio do pedido (formato ISO).
* @property {number} [evidenciaId] Identificador da evidência associada.
* @property {number} [encaminhamentoId] Identificador do encaminhamento.
* @property {number} [formaEntradaId] Identificador da forma de entrada.
* @property {string} numero Número do processo.
* @property {string} [observacoes] Observações adicionais.
* @property {number} [pedidoManifestacaoId] Identificador do pedido de manifestação.
* @property {number} [prazoPedido] Prazo do pedido em dias.
* @property {string} [requerente] Nome do requerente.
* @property {number} [requeridoFinalId] Identificador do controlador final.
* @property {number} [requeridoId] Identificador do controlador requerido.
* @property {number} responsavelId Identificador do responsável.
* @property {string} [resumo] Resumo do processo.
* @property {number} [situacaoId] Identificador da situação.
* @property {StatusInterno} [statusInterno] Status interno do processo.
* @property {string[]} [temaRequerimento] Temas do requerimento.
* @property {number} [tipoReclamacaoId] Identificador do tipo de reclamação.
* @property {"PETICAO_TITULAR" | "DENUNCIA_LGPD"} [tipoRequerimento] Tipo do requerimento.
*/
export interface ProcessoInput {
anonimo?: boolean;
contatoPrevioId?: number;
dataConclusao?: string;
dataCriacao: string;
dataEnvioPedido?: string;
evidenciaId?: number;
encaminhamentoId?: number;
formaEntradaId?: number;
numero: string;
observacoes?: string;
pedidoManifestacaoId?: number;
prazoPedido?: number;
requerente?: string;
requeridoFinalId?: number;
requeridoId?: number;
responsavelId: number;
resumo?: string;
situacaoId?: number;
statusInterno?: StatusInterno;
temaRequerimento?: string[];
tipoReclamacaoId?: number;
tipoRequerimento?: "PETICAO_TITULAR" | "DENUNCIA_LGPD";
}
/**
* @interface ProcessoOutput
* @extends BaseEntity
* @description
* Representa um processo completo, com dados resolvidos de relacionamento e metadados.
*
* Estende `BaseEntity`, portanto inclui `id`.
*
* ## Uso comum:
* - Respostas de APIs REST
* - Visualização detalhada na UI
*
* ## Campos resolvidos:
* - `formaEntrada`, `situacao`, `encaminhamento`, etc. são representados via `EnumData`
* - `requerido`, `responsavel`, `requeridoFinal` usam DTOs próprios
*
* @property {string} numero Número do processo.
* @property {Date} dataCriacao Data de criação do processo.
* @property {string} [requerente] Nome do requerente.
* @property {EnumData} [formaEntrada] Forma de entrada do processo.
* @property {ResponsavelDto} responsavel Responsável pelo processo.
* @property {ControladorDto} [requerido] Controlador requerido.
* @property {EnumData} [situacao] Situação do processo.
* @property {EnumData} [encaminhamento] Encaminhamento do processo.
* @property {EnumData} [pedidoManifestacao] Pedido de manifestação.
* @property {EnumData} [contatoPrevio] Contato prévio relacionado.
* @property {EnumData} [evidencia] Evidência associada.
* @property {boolean} [anonimo] Indica se o processo é anônimo.
* @property {string} [observacoes] Observações adicionais.
* @property {EnumData} [tipoReclamacao] Tipo de reclamação.
* @property {StatusInterno} [statusInterno] Status interno do processo.
* @property {string[]} temaRequerimento Temas do requerimento.
* @property {"PETICAO_TITULAR" | "DENUNCIA_LGPD"} [tipoRequerimento] Tipo do requerimento.
* @property {string} [resumo] Resumo do processo.
* @property {Date} [dataConclusao] Data de conclusão do processo.
* @property {Date} [dataEnvioPedido] Data de envio do pedido.
* @property {number} [prazoPedido] Prazo do pedido em dias.
* @property {ControladorDto} [requeridoFinal] Controlador final.
*/
export interface ProcessoOutput extends BaseEntity {
numero: string;
dataCriacao: Date;
requerente?: string;
formaEntrada?: EnumData;
responsavel: ResponsavelDto;
requerido?: ControladorDto;
situacao?: EnumData;
encaminhamento?: EnumData;
pedidoManifestacao?: EnumData;
contatoPrevio?: EnumData;
evidencia?: EnumData;
anonimo?: boolean;
observacoes?: string;
tipoReclamacao?: EnumData;
statusInterno?: StatusInterno;
temaRequerimento: string[];
tipoRequerimento?: "PETICAO_TITULAR" | "DENUNCIA_LGPD";
resumo?: string;
dataConclusao?: Date;
dataEnvioPedido?: Date;
prazoPedido?: number;
requeridoFinal?: ControladorDto;
}
/**
* @interface ProcessoImportacao
* @description
* Representa uma linha do arquivo CSV importado.
*
* Esse tipo é usado para mapear o conteúdo bruto da importação de processos antes de converter para `ProcessoInput`.
*
* ## Observações:
* - Campos como `situacaoNome` e `formaEntradaNome` são mapeados para IDs posteriormente.
* - `anonimoStr` é convertido para boolean.
*
* @property {string} responsavelNome Nome do responsável.
* @property {string} numeroProcesso Número do processo.
* @property {string} dataCriacao Data de criação do processo (formato ISO).
* @property {string} situacaoNome Nome da situação.
* @property {string} formaEntradaNome Nome da forma de entrada.
* @property {string} anonimoStr Valor textual indicando anonimato.
* @property {string | null} requerenteNome Nome do requerente ou null.
* @property {StatusInterno} statusInterno Status interno do processo.
*/
export interface ProcessoImportacao {
responsavelNome: string;
numeroProcesso: string;
dataCriacao: string;
situacaoNome: string;
formaEntradaNome: string;
anonimoStr: string;
requerenteNome: string | null;
statusInterno: StatusInterno;
}
//# sourceMappingURL=processo.dto.d.ts.map