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