20: Update PriceAlarmDefinition to support expressions

This commit is contained in:
2026-06-27 18:55:32 +02:00
parent 39486fe168
commit 08fe8cca5e
@@ -9,7 +9,7 @@ public record PriceAlarmDefinition(
int id, int id,
JupiterPerpsAsset asset, JupiterPerpsAsset asset,
PriceDirection direction, PriceDirection direction,
BigDecimal target, String targetExpression,
AlarmTrigger trigger, AlarmTrigger trigger,
ΩsecondsΩ triggerGracePeriod, ΩsecondsΩ triggerGracePeriod,
AlarmSeverity severity, AlarmSeverity severity,
@@ -18,12 +18,13 @@ public record PriceAlarmDefinition(
public PriceAlarmDefinition { public PriceAlarmDefinition {
Objects.requireNonNull(asset, "asset"); Objects.requireNonNull(asset, "asset");
Objects.requireNonNull(direction, "direction"); Objects.requireNonNull(direction, "direction");
Objects.requireNonNull(target, "target"); Objects.requireNonNull(targetExpression, "targetExpression");
Objects.requireNonNull(trigger, "trigger"); Objects.requireNonNull(trigger, "trigger");
Objects.requireNonNull(severity, "severity");
Objects.requireNonNull(note, "note"); Objects.requireNonNull(note, "note");
if (target.signum() < 0) { if (targetExpression.isBlank()) {
throw new IllegalArgumentException("Target price cannot be negative (was: " + target.signum() + ")!"); throw new IllegalArgumentException("Target expression cannot be blank");
} }
if (triggerGracePeriod < 0) { if (triggerGracePeriod < 0) {