UNPKG

@anpdgovbr/shared-types

Version:

Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)

155 lines 6.7 kB
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