UNPKG

@anpdgovbr/shared-types

Version:

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

47 lines 1.65 kB
/** * 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