Type Alias NotificationModel

NotificationModel:
    | SignalOpenedNotification
    | SignalClosedNotification
    | PartialProfitAvailableNotification
    | PartialLossAvailableNotification
    | BreakevenAvailableNotification
    | PartialProfitCommitNotification
    | PartialLossCommitNotification
    | BreakevenCommitNotification
    | AverageBuyCommitNotification
    | ActivateScheduledCommitNotification
    | TrailingStopCommitNotification
    | TrailingTakeCommitNotification
    | CancelScheduledCommitNotification
    | ClosePendingCommitNotification
    | OrderSyncOpenNotification
    | OrderSyncCloseNotification
    | OrderSyncCheckNotification
    | OrderContinueCheckNotification
    | OrderStopCheckNotification
    | OrderFillOpenNotification
    | OrderFillCloseNotification
    | OrderRejectOpenNotification
    | OrderRejectCloseNotification
    | RiskRejectionNotification
    | SignalScheduledNotification
    | SignalCancelledNotification
    | InfoErrorNotification
    | CriticalErrorNotification
    | ValidationErrorNotification
    | StrategyPauseNotification
    | SignalInfoNotification

Root discriminated union of all notification types. Type discrimination is done via the type field.

function handleNotification(notification: NotificationModel) {
switch (notification.type) {
case "signal.opened":
console.log(`Position opened: ${notification.signalId}`);
break;
case "signal.closed":
console.log(`PNL: ${notification.pnlPercentage}%`);
break;
case "partial.loss":
if (notification.level >= 30) {
console.warn("High loss alert!");
}
break;
case "risk.rejection":
console.error(`Signal rejected: ${notification.rejectionNote}`);
break;
}
}