1use serde::{Deserialize, Serialize};
2
3use crate::{Envelope, EventId, ServiceId, TriggerAction, WasmResponse, WavsSignature, WorkflowId};
4
5#[derive(Serialize, Deserialize, Clone, Debug)]
7pub struct Submission {
8 pub trigger_action: TriggerAction,
9 pub operator_response: WasmResponse,
10 pub event_id: EventId,
11 pub envelope: Envelope,
12 pub envelope_signature: WavsSignature,
13}
14
15impl Submission {
16 pub fn label(&self) -> String {
17 format!(
18 "Submission(service_id: {}, workflow_id: {}, event_id: {})",
19 self.service_id(),
20 self.workflow_id(),
21 self.event_id
22 )
23 }
24 pub fn service_id(&self) -> &ServiceId {
25 &self.trigger_action.config.service_id
26 }
27
28 pub fn workflow_id(&self) -> &WorkflowId {
29 &self.trigger_action.config.workflow_id
30 }
31}