systemprompt_models/notifications/
simulate.rs1use schemars::JsonSchema;
7use serde::{Deserialize, Serialize};
8use systemprompt_identifiers::{NotificationRuleId, UserId};
9
10use super::attention::{Attention, AttentionReason};
11use super::event::NotificationEvent;
12use super::route::RoutePlan;
13
14#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, JsonSchema)]
16pub struct SimulateRequest {
17 pub event: NotificationEvent,
18}
19
20#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
22pub struct SimulateResponse {
23 pub plan: RoutePlan,
24 pub decisions: Vec<SimulatedRecipient>,
25}
26
27#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
29pub struct SimulatedRecipient {
30 pub user: UserId,
31 pub attention: Option<Attention>,
32 pub reason: AttentionReason,
33 pub matched_rules: Vec<NotificationRuleId>,
34 pub withheld_reason: Option<String>,
35}