import { type DisplayTx } from '@hcengineering/activity' import core, { type Class, type Doc, type Hierarchy, type Ref, type Tx, type TxCreateDoc, type TxCUD, type TxMixin, TxProcessor, type TxUpdateDoc } from '@hcengineering/core' /** * @public */ export type ActivityKey = string /** * @public */ export function activityKey (objectClass: Ref>, txClass: Ref>): ActivityKey { return objectClass + ':' + txClass } export function newDisplayTx ( tx: TxCUD, hierarchy: Hierarchy, isOwnTx: boolean, originTx: TxCUD = tx ): DisplayTx { const createTx = hierarchy.isDerived(tx._class, core.class.TxCreateDoc) ? (tx as TxCreateDoc) : undefined return { tx, isOwnTx, txes: [], createTx, updateTx: hierarchy.isDerived(tx._class, core.class.TxUpdateDoc) ? (tx as TxUpdateDoc) : undefined, updated: false, removed: false, mixin: false, mixinTx: hierarchy.isDerived(tx._class, core.class.TxMixin) ? (tx as TxMixin) : undefined, doc: createTx !== undefined ? TxProcessor.createDoc2Doc(createTx) : undefined, originTx } }