framework_cqrs_lib/cqrs/models/views/
command_handler_view.rs1use serde::{Deserialize, Serialize};
2
3use crate::cqrs::models::views::LinkView;
4
5#[derive(Serialize, Deserialize, Clone, Debug)]
6pub struct ApiView<T>
7where
8 T: Serialize + Clone,
9{
10 #[serde(rename = "type")]
11 pub r#type: String,
12 pub id: String,
13 pub attributes: AttributesEvent<T>,
14 pub relationships: Relationships,
15 pub links: LinkView,
16}
17
18#[derive(Serialize, Deserialize, Clone, Debug)]
19pub struct AttributesEvent<T>
20where
21 T: Serialize + Clone,
22{
23 #[serde(flatten)]
24 pub attributes: T,
25}
26
27#[derive(Serialize, Deserialize, Clone, Debug)]
28pub struct Relationships {
29 #[serde(rename = "_entity")]
30 pub entity: DataWrapper,
31}
32
33#[derive(Serialize, Deserialize, Clone, Debug)]
34pub struct DataWrapper {
35 pub data: DataRS,
36 pub links: RelatedLinks,
37}
38
39#[derive(Serialize, Deserialize, Clone, Debug)]
40pub struct RelatedLinks {
41 pub related: String,
42}
43
44
45#[derive(Serialize, Deserialize, Clone, Debug)]
46pub struct DataRS {
47 #[serde(rename = "type")]
48 pub r#type: String,
49 pub id: String,
50}
51
52