import { UpdateEvent } from "./event/UpdateEvent"; import { RemoveEvent } from "./event/RemoveEvent"; import { InsertEvent } from "./event/InsertEvent"; /** * Classes that implement this interface are subscribers that subscribe for the specific events in the ORM. */ export interface EntitySubscriberInterface { /** * Returns the class of the entity to which events will listen. * If this method is omitted, then subscriber will listen to events of all entities. */ listenTo?(): Function; /** * Called after entity is loaded from the database. */ afterLoad?(entity: Entity): Promise | void; /** * Called before entity is inserted to the database. */ beforeInsert?(event: InsertEvent): Promise | void; /** * Called after entity is inserted to the database. */ afterInsert?(event: InsertEvent): Promise | void; /** * Called before entity is updated in the database. */ beforeUpdate?(event: UpdateEvent): Promise | void; /** * Called after entity is updated in the database. */ afterUpdate?(event: UpdateEvent): Promise | void; /** * Called before entity is removed from the database. */ beforeRemove?(event: RemoveEvent): Promise | void; /** * Called after entity is removed from the database. */ afterRemove?(event: RemoveEvent): Promise | void; }