@anpdgovbr/shared-types
Version:
Biblioteca central de tipos TypeScript compartilhados para os projetos da ANPD (BETA)
50 lines • 1.67 kB
TypeScript
import type { BaseEntity } from "./base-entity.interface";
import type { AuditContext } from "./audit-context.interface";
/**
* Representa uma entidade auditável com metadados de criação e atualização.
*
* ## Quando usar `AuditedEntity`:
*
* | Situação | Usar `AuditedEntity`? |
* |----------------------------------|------------------------|
* | Modelo persistido com logs | ✅ Sim |
* | DTO de leitura (Output) | ✅ Se contiver auditoria |
* | DTO de criação (Input) | ❌ Não |
* | Logs (ex: `AuditLog`) | ❌ Não (ele é o log) |
* | Tipos de referência (CNAE, Setor)| ✅ Se tiver `criadoEm`/`active` |
*
* @remarks
* Esta interface deve ser utilizada para entidades que necessitam de controle de auditoria,
* incluindo informações sobre quando foram criadas e atualizadas.
*
* @see BaseEntity
* @see AuditContext
*
* @example
* ```typescript
* class Usuario implements AuditedEntity {
* id: string;
* criadoEm: Date;
* atualizadoEm: Date;
* criadoPor: string;
* atualizadoPor: string;
* }
* ```
*/
export interface AuditedEntity extends BaseEntity, AuditContext {
/**
* Data e hora em que a entidade foi criada.
*
* @remarks
* Este campo é preenchido automaticamente pelo sistema ao persistir a entidade.
*/
criadoEm?: Date;
/**
* Data e hora da última atualização da entidade.
*
* @remarks
* Atualizado sempre que a entidade sofre alguma modificação relevante.
*/
atualizadoEm?: Date;
}
//# sourceMappingURL=audited-entity.interface.d.ts.map