pjson_rs/application/commands/
mod.rs1use crate::application::dto::{PriorityDto, SessionIdDto, StreamIdDto};
4use crate::domain::{aggregates::stream_session::SessionConfig, entities::stream::StreamConfig};
5use serde::{Deserialize, Serialize};
6use serde_json::Value as JsonValue;
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct CreateSessionCommand {
11 pub config: SessionConfig,
12 pub client_info: Option<String>,
13 pub user_agent: Option<String>,
14 pub ip_address: Option<String>,
15}
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct ActivateSessionCommand {
20 pub session_id: SessionIdDto,
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct CreateStreamCommand {
26 pub session_id: SessionIdDto,
27 pub source_data: JsonValue,
28 pub config: Option<StreamConfig>,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize)]
33pub struct StartStreamCommand {
34 pub session_id: SessionIdDto,
35 pub stream_id: StreamIdDto,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
40pub struct GenerateFramesCommand {
41 pub session_id: SessionIdDto,
42 pub stream_id: StreamIdDto,
43 pub priority_threshold: PriorityDto,
44 pub max_frames: usize,
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize)]
49pub struct CompleteStreamCommand {
50 pub session_id: SessionIdDto,
51 pub stream_id: StreamIdDto,
52 pub checksum: Option<String>,
53}
54
55#[derive(Debug, Clone, Serialize, Deserialize)]
57pub struct FailStreamCommand {
58 pub session_id: SessionIdDto,
59 pub stream_id: StreamIdDto,
60 pub error: String,
61}
62
63#[derive(Debug, Clone, Serialize, Deserialize)]
65pub struct CancelStreamCommand {
66 pub session_id: SessionIdDto,
67 pub stream_id: StreamIdDto,
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize)]
72pub struct UpdateStreamConfigCommand {
73 pub session_id: SessionIdDto,
74 pub stream_id: StreamIdDto,
75 pub config: StreamConfig,
76}
77
78#[derive(Debug, Clone, Serialize, Deserialize)]
80pub struct CloseSessionCommand {
81 pub session_id: SessionIdDto,
82}
83
84#[derive(Debug, Clone, Serialize, Deserialize)]
86pub struct BatchGenerateFramesCommand {
87 pub session_id: SessionIdDto,
88 pub priority_threshold: PriorityDto,
89 pub max_frames: usize,
90}
91
92#[derive(Debug, Clone, Serialize, Deserialize)]
94pub struct AdjustPriorityThresholdCommand {
95 pub session_id: SessionIdDto,
96 pub new_threshold: PriorityDto,
97 pub reason: String,
98}