@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
47 lines • 1.65 kB
TypeScript
/**
* Marca uma entidade como habilitada ou desabilitada logicamente (soft delete).
*
* Essa interface é utilizada para implementar o padrão de exclusão lógica em entidades persistidas,
* evitando a remoção física do registro no banco de dados. Permite controlar se uma entidade está ativa
* ou foi desativada, além de registrar a data de exclusão lógica.
*
* @remarks
* - Em operações de leitura, recomenda-se filtrar apenas entidades com `active = true`.
* - Em operações de exclusão, apenas defina `active = false` e preencha `exclusionDate` com a data da exclusão lógica.
* - A partir da versão 0.2.0, `exclusionDate` aceita `string` (formato ISO 8601) além de `Date` para compatibilidade com APIs REST.
*
* @example
* ```typescript
* // Com Date
* const usuario1: SoftDelete = {
* active: false,
* exclusionDate: new Date("2024-01-12")
* }
*
* // Com string ISO 8601 (retornado pela API)
* const usuario2: SoftDelete = {
* active: false,
* exclusionDate: "2024-01-12T10:30:00Z"
* }
* ```
*
* @public
*/
export interface SoftDelete {
/**
* Indica se a entidade está ativa (`true`) ou desativada (`false`).
*
* @defaultValue true
*/
active: boolean;
/**
* Data em que a entidade foi desativada logicamente.
*
* Deve ser preenchida apenas quando `active` for definido como `false`.
* Aceita tanto objetos `Date` quanto strings no formato ISO 8601 retornadas pela API (ex.: "2024-01-12T10:30:00Z").
*
* @defaultValue null
*/
exclusionDate?: Date | string | null;
}
//# sourceMappingURL=soft-delete.interface.d.ts.map