@kingdom-sdk/core
Version:
Core module to design DDD applications in TypeScript
32 lines (31 loc) • 930 B
TypeScript
import { Props } from '../../interfaces/Props';
export interface IEntity<Id_T> {
id?: Id_T;
version?: number;
isDiscarded?: boolean;
registeredAt?: Date;
updatedAt?: Date;
}
export declare abstract class Entity<Id_T> implements IEntity<Id_T> {
private _id;
private _version;
private _isDiscarded;
private _registeredAt;
private _updatedAt;
constructor(id: Id_T, version: number, isDiscarded: boolean, registeredAt: Date, updatedAt: Date);
protected check_not_discarded(): void;
protected baseRepr(identifier: string, props?: Props): string;
abstract toString(): string;
toHash(): string;
equals(other: any): boolean;
get id(): Id_T;
set id(value: Id_T);
get version(): number;
get isDiscarded(): boolean;
get registeredAt(): Date;
get updatedAt(): Date;
get props(): Props;
update(): void;
private _update;
discard(): void;
}