backbone_support/exports/
events.rs1use serde::{Deserialize, Serialize};
9use chrono::{DateTime, Utc};
10
11use super::types::*;
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct IssueCreatedEvent {
20 pub id: IssueId,
21 pub data: IssueDto,
22 pub occurred_at: DateTime<Utc>,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct IssueUpdatedEvent {
28 pub id: IssueId,
29 pub data: IssueDto,
30 pub occurred_at: DateTime<Utc>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct IssueDeletedEvent {
36 pub id: IssueId,
37 pub occurred_at: DateTime<Utc>,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct ServiceLevelAgreementCreatedEvent {
47 pub id: ServiceLevelAgreementId,
48 pub data: ServiceLevelAgreementDto,
49 pub occurred_at: DateTime<Utc>,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
54pub struct ServiceLevelAgreementUpdatedEvent {
55 pub id: ServiceLevelAgreementId,
56 pub data: ServiceLevelAgreementDto,
57 pub occurred_at: DateTime<Utc>,
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62pub struct ServiceLevelAgreementDeletedEvent {
63 pub id: ServiceLevelAgreementId,
64 pub occurred_at: DateTime<Utc>,
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize)]
73pub struct ServiceLevelPriorityCreatedEvent {
74 pub id: ServiceLevelPriorityId,
75 pub data: ServiceLevelPriorityDto,
76 pub occurred_at: DateTime<Utc>,
77}
78
79#[derive(Debug, Clone, Serialize, Deserialize)]
81pub struct ServiceLevelPriorityUpdatedEvent {
82 pub id: ServiceLevelPriorityId,
83 pub data: ServiceLevelPriorityDto,
84 pub occurred_at: DateTime<Utc>,
85}
86
87#[derive(Debug, Clone, Serialize, Deserialize)]
89pub struct ServiceLevelPriorityDeletedEvent {
90 pub id: ServiceLevelPriorityId,
91 pub occurred_at: DateTime<Utc>,
92}
93
94#[derive(Debug, Clone, Serialize, Deserialize)]
100pub struct WarrantyClaimCreatedEvent {
101 pub id: WarrantyClaimId,
102 pub data: WarrantyClaimDto,
103 pub occurred_at: DateTime<Utc>,
104}
105
106#[derive(Debug, Clone, Serialize, Deserialize)]
108pub struct WarrantyClaimUpdatedEvent {
109 pub id: WarrantyClaimId,
110 pub data: WarrantyClaimDto,
111 pub occurred_at: DateTime<Utc>,
112}
113
114#[derive(Debug, Clone, Serialize, Deserialize)]
116pub struct WarrantyClaimDeletedEvent {
117 pub id: WarrantyClaimId,
118 pub occurred_at: DateTime<Utc>,
119}
120
121#[derive(Debug, Clone, Serialize, Deserialize)]
127#[serde(tag = "type")]
128pub enum SupportEvent {
129 IssueCreated(IssueCreatedEvent),
130 IssueUpdated(IssueUpdatedEvent),
131 IssueDeleted(IssueDeletedEvent),
132 ServiceLevelAgreementCreated(ServiceLevelAgreementCreatedEvent),
133 ServiceLevelAgreementUpdated(ServiceLevelAgreementUpdatedEvent),
134 ServiceLevelAgreementDeleted(ServiceLevelAgreementDeletedEvent),
135 ServiceLevelPriorityCreated(ServiceLevelPriorityCreatedEvent),
136 ServiceLevelPriorityUpdated(ServiceLevelPriorityUpdatedEvent),
137 ServiceLevelPriorityDeleted(ServiceLevelPriorityDeletedEvent),
138 WarrantyClaimCreated(WarrantyClaimCreatedEvent),
139 WarrantyClaimUpdated(WarrantyClaimUpdatedEvent),
140 WarrantyClaimDeleted(WarrantyClaimDeletedEvent),
141}
142
143#[derive(Debug, Clone, Serialize, Deserialize)]
145pub struct SupportEventMetadata {
146 pub module: &'static str,
147 pub version: &'static str,
148}
149
150impl Default for SupportEventMetadata {
151 fn default() -> Self {
152 Self {
153 module: "support",
154 version: "1.0",
155 }
156 }
157}
158
159