pjson_rs/application/
mod.rs

1//! Application layer - Use cases and orchestration
2//!
3//! Implements CQRS pattern with separate command and query handlers.
4//! Orchestrates domain logic and infrastructure concerns.
5
6pub mod commands;
7pub mod dto;
8pub mod handlers;
9pub mod queries;
10pub mod services;
11
12pub use commands::*;
13pub use handlers::{CommandHandler, QueryHandler};
14pub use queries::*;
15
16/// Application Result type
17pub type ApplicationResult<T> = Result<T, ApplicationError>;
18
19/// Application-specific errors
20#[derive(Debug, thiserror::Error)]
21pub enum ApplicationError {
22    #[error("Domain error: {0}")]
23    Domain(#[from] crate::domain::DomainError),
24
25    #[error("Validation error: {0}")]
26    Validation(String),
27
28    #[error("Authorization error: {0}")]
29    Authorization(String),
30
31    #[error("Concurrency error: {0}")]
32    Concurrency(String),
33
34    #[error("Not found: {0}")]
35    NotFound(String),
36
37    #[error("Conflict: {0}")]
38    Conflict(String),
39
40    #[error("Application logic error: {0}")]
41    Logic(String),
42}