Skip to main content

framework_cqrs_lib/cqrs/models/views/
command_handler_view.rs

1use 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