pub mod commands;
pub mod dto;
pub mod handlers;
pub mod queries;
pub mod shared;
pub use commands::{
BatchGenerateFramesCommand, CloseSessionCommand, CompleteStreamCommand, CreateSessionCommand,
CreateStreamCommand, GenerateFramesCommand, StartStreamCommand,
};
pub use queries::{
FramesResponse, GetActiveSessionsQuery, GetSessionHealthQuery, GetSessionQuery,
GetSessionStatsQuery, GetStreamFramesQuery, GetStreamQuery, GetStreamsForSessionQuery,
GetSystemStatsQuery, HealthResponse, SearchSessionsQuery, SessionFilters, SessionResponse,
SessionSortField, SessionStatsResponse, SessionsResponse, SortOrder, StreamResponse,
StreamsResponse, SystemStatsResponse,
};
pub use shared::AdjustmentUrgency;
pub type ApplicationResult<T> = Result<T, ApplicationError>;
#[derive(Debug, thiserror::Error)]
pub enum ApplicationError {
#[error("Domain error: {0}")]
Domain(#[from] crate::domain::DomainError),
#[error("Validation error: {0}")]
Validation(String),
#[error("Authorization error: {0}")]
Authorization(String),
#[error("Concurrency error: {0}")]
Concurrency(String),
#[error("Not found: {0}")]
NotFound(String),
#[error("Conflict: {0}")]
Conflict(String),
#[error("Application logic error: {0}")]
Logic(String),
}