@nivinjoseph/n-domain
Version:
Domain Driven Design and Event Sourcing based framework for business layer implementation
28 lines • 1.09 kB
TypeScript
import { Serializable } from "@nivinjoseph/n-util";
import { AggregateState } from "./aggregate-state.js";
import { DomainEventData } from "./domain-event-data.js";
import { AggregateRoot } from "./aggregate-root.js";
import { DomainContext } from "./domain-context.js";
export declare abstract class DomainEvent<T extends AggregateState> extends Serializable<DomainEventData> {
private _aggregateId;
private _id;
private _userId;
private readonly _name;
private readonly _occurredAt;
private _version;
private readonly _isCreatedEvent;
get aggregateId(): string;
get id(): string;
get userId(): string;
get name(): string;
get partitionKey(): string;
get refId(): string;
abstract get refType(): string;
get occurredAt(): number;
get version(): number;
get isCreatedEvent(): boolean;
constructor(data: DomainEventData);
apply(aggregate: AggregateRoot<T, DomainEvent<T>>, domainContext: DomainContext, state: T): void;
protected abstract applyEvent(state: T): void;
}
//# sourceMappingURL=domain-event.d.ts.map