@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
53 lines • 1.77 kB
TypeScript
import type { SoftDelete } from "./soft-delete.interface";
/**
* Extensão da interface {@link SoftDelete} com metadados adicionais sobre exclusão lógica.
*
* @remarks
* Esta interface adiciona informações contextuais sobre quem executou a exclusão e o motivo,
* útil para auditoria e rastreabilidade mais detalhadas. Use esta interface quando precisar
* de controle mais granular sobre o processo de soft delete.
*
* @example
* ```typescript
* const usuario: SoftDeleteExtended = {
* active: false,
* exclusionDate: new Date("2024-01-12"),
* deletedBy: "admin@anpd.gov.br",
* deletionReason: "Usuário solicitou exclusão de conta"
* }
* ```
*
* @see SoftDelete
* @public
*/
export interface SoftDeleteExtended extends SoftDelete {
/**
* Identificador do usuário que executou a exclusão lógica.
*
* @remarks
* Pode ser um ID, email ou username, dependendo da implementação do sistema de autenticação.
*/
deletedBy?: string;
/**
* Motivo ou justificativa para a exclusão lógica.
*
* @remarks
* Campo útil para auditoria e conformidade, permitindo rastrear por que um registro foi desativado.
*/
deletionReason?: string;
/**
* Data em que a entidade foi restaurada (reativada) após exclusão lógica.
*
* @remarks
* Útil para rastrear ciclos de ativação/desativação. Deve ser limpo quando `active` é definido como `false`.
*/
restoredAt?: Date | null;
/**
* Identificador do usuário que restaurou a entidade.
*
* @remarks
* Complementa `restoredAt` para auditoria completa do ciclo de vida da entidade.
*/
restoredBy?: string;
}
//# sourceMappingURL=soft-delete-extended.interface.d.ts.map