UNPKG

@anpdgovbr/shared-types

Version:

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

79 lines 2.57 kB
import type { UUID } from "../base"; import type { EmailContatoDto } from "./email-contato.dto"; import type { TelefoneContatoDto } from "./telefone-contato.dto"; import type { TipoPessoaEnum } from "../enums/tipo-pessoa.enum"; /** * Representa um Encarregado pelo tratamento de dados pessoais (Data Protection Officer - DPO). * * @remarks * - Atualizado na versão 0.2.0 para refletir o contrato da API Quarkus de Controladores. * - Os vínculos com controladores são resolvidos por endpoints específicos da API Quarkus. * - Um mesmo controlador pode ter múltiplos encarregados, e um encarregado pode servir mais de um controlador. * * ## Migração da API NestJS para Quarkus (v0.2.0) * - IDs agora são UUID (`string`) * - Campos obrigatórios: `nome`, `tipo`, `cpf`, `externo`, `emails`, `telefones` * - Contatos passam a ser arrays (`EmailContatoDto[]`, `TelefoneContatoDto[]`) * - Campos removidos: `controladorId`, `controladorEmpresaExternaId`, `email` e `telefone` singulares * * @example * ```typescript * const encarregado: EncarregadoDto = { * nome: "Maria Silva", * tipo: TipoPessoaEnum.PESSOA_NATURAL, * cpf: "12345678900", * externo: false, * emails: [{ email: "maria@empresa.com.br" }], * telefones: [{ codigoPais: "+55", telefone: "61999999999" }] * } * ``` * * @since 0.2.0 */ export interface EncarregadoDto { /** * Identificador único do encarregado (UUID v4). * * @remarks Campo opcional em criação, obrigatório nas respostas da API. */ id?: UUID; /** * Nome completo do encarregado de dados pessoais. */ nome: string; /** * Tipo do encarregado (pessoa natural ou jurídica). */ tipo: TipoPessoaEnum; /** * CPF do encarregado. * * @remarks Obrigatório mesmo quando o encarregado for pessoa jurídica. */ cpf: string; /** * CNPJ do encarregado quando atuar como pessoa jurídica. */ cnpj?: string; /** * Conjunto de e-mails de contato oficiais do encarregado. */ emails: EmailContatoDto[]; /** * Conjunto de telefones de contato oficiais do encarregado. */ telefones: TelefoneContatoDto[]; /** * Indica se o encarregado atua como empresa externa (prestador de serviço). */ externo: boolean; /** * Indicador de atividade (soft delete). */ active?: boolean; /** * Data de exclusão lógica quando `active` for `false`. */ exclusionDate?: Date | string | null; } //# sourceMappingURL=encarregado.dto.d.ts.map