//! Command types for IAM domain operations. //! //! Following the `NewXxx` / command pattern from clean architecture, //! these types encapsulate the input data for create/update operations //! on domain entities. They decouple presentation DTOs from the entity //! mutation surface and provide a clear boundary for validation. /// Command to create a new session. /// /// Carries only the data needed to construct a session entity — the /// service generates the UUID and timestamp internally. #[derive(Debug, Clone)] pub struct NewSession { /// Human-readable session title. pub title: String, } impl From for NewSession { fn from(title: String) -> Self { Self { title } } } impl From<&str> for NewSession { fn from(title: &str) -> Self { Self { title: title.to_string(), } } }