UNPKG

@pashoo2/clean-architecture-boilerplate

Version:
21 lines (20 loc) 1.32 kB
import { IDomainEventBus } from '../../events/interfaces/domainEventBus'; import { IEventsList } from '../../events/interfaces/events'; import { TIdentityValueObject } from '../../valueObjects/interfaces/identityValueObject'; import { BaseDomainEntityDeleteEvent } from '../../events/classes/baseDomainEntityDeleteEvent'; import { BaseDomainEntityCreateEvent } from '../../events/classes/baseDomainEntityConstructEvent'; import { IServiceGeneratorIdentifierUnique } from '../../services/interfaces/domain/generators/identifiers'; export interface IBaseEntityParameters<Id extends TIdentityValueObject> { id: Id; isDeleted: boolean; } export declare type TBaseEntityEventsListCommonEvents<EntityId extends TIdentityValueObject, EntityType extends string> = { [BaseDomainEntityDeleteEvent.eventName]: BaseDomainEntityDeleteEvent<EntityId, string>; [BaseDomainEntityCreateEvent.eventName]: BaseDomainEntityCreateEvent<EntityId, EntityType>; }; export interface IBaseEntityEventsList<EntityId extends TIdentityValueObject, EntityType extends string> extends TBaseEntityEventsListCommonEvents<EntityId, EntityType>, IEventsList { } export interface IBaseEntityServices<E extends IEventsList> { domainEventBus: IDomainEventBus<E>; generateUniqueIdentifierString: IServiceGeneratorIdentifierUnique; }